[dpdk-dev] [PATCH v10 3/3] iFPGA: Add Intel FPGA BUS Rawdev Driver

Xu, Rosen rosen.xu at intel.com
Thu May 10 15:31:29 CEST 2018


Hi Thomas and Bruce,

To improve PR speed we involved AVX-512, but AVX-512 is not available in all IA platforms,
besides this after we have tested several times, using AVX-512 only improve 1 ms.
So this patch we don't use it.

> -----Original Message-----
> From: Zhang, Tianfei
> Sent: Wednesday, May 09, 2018 23:58
> To: Richardson, Bruce <bruce.richardson at intel.com>
> Cc: Thomas Monjalon <thomas at monjalon.net>; Xu, Rosen
> <rosen.xu at intel.com>; dev at dpdk.org; Zhang, Roy Fan
> <roy.fan.zhang at intel.com>; Doherty, Declan <declan.doherty at intel.com>;
> shreyansh.jain at nxp.com; Yigit, Ferruh <ferruh.yigit at intel.com>; Ananyev,
> Konstantin <konstantin.ananyev at intel.com>; Liu, Song <song.liu at intel.com>;
> Wu, Hao <hao.wu at intel.com>; gaetan.rivet at 6wind.com; Wu, Yanglong
> <yanglong.wu at intel.com>
> Subject: RE: [dpdk-dev] [PATCH v10 3/3] iFPGA: Add Intel FPGA BUS Rawdev
> Driver
> 
> 
> 
> > -----Original Message-----
> > From: Richardson, Bruce
> > Sent: Wednesday, May 9, 2018 11:37 PM
> > To: Zhang, Tianfei <tianfei.zhang at intel.com>
> > Cc: Thomas Monjalon <thomas at monjalon.net>; Xu, Rosen
> > <rosen.xu at intel.com>; dev at dpdk.org; Zhang, Roy Fan
> > <roy.fan.zhang at intel.com>; Doherty, Declan <declan.doherty at intel.com>;
> > shreyansh.jain at nxp.com; Yigit, Ferruh <ferruh.yigit at intel.com>;
> > Ananyev, Konstantin <konstantin.ananyev at intel.com>; Liu, Song
> > <song.liu at intel.com>; Wu, Hao <hao.wu at intel.com>;
> > gaetan.rivet at 6wind.com; Wu, Yanglong <yanglong.wu at intel.com>
> > Subject: Re: [dpdk-dev] [PATCH v10 3/3] iFPGA: Add Intel FPGA BUS
> > Rawdev Driver
> >
> > On Wed, May 09, 2018 at 04:33:45PM +0100, Zhang, Tianfei wrote:
> > >
> > >
> > > > -----Original Message-----
> > > > From: Thomas Monjalon [mailto:thomas at monjalon.net]
> > > > Sent: Wednesday, May 9, 2018 10:47 PM
> > > > To: Xu, Rosen <rosen.xu at intel.com>
> > > > Cc: dev at dpdk.org; Zhang, Roy Fan <roy.fan.zhang at intel.com>;
> > > > Doherty, Declan <declan.doherty at intel.com>; Richardson, Bruce
> > > > <bruce.richardson at intel.com>; shreyansh.jain at nxp.com; Yigit,
> > > > Ferruh <ferruh.yigit at intel.com>; Ananyev, Konstantin
> > > > <konstantin.ananyev at intel.com>; Zhang, Tianfei
> > > > <tianfei.zhang at intel.com>; Liu, Song <song.liu at intel.com>; Wu, Hao
> > > > <hao.wu at intel.com>; gaetan.rivet at 6wind.com; Wu, Yanglong
> > > > <yanglong.wu at intel.com>
> > > > Subject: Re: [dpdk-dev] [PATCH v10 3/3] iFPGA: Add Intel FPGA BUS
> > > > Rawdev Driver
> > > >
> > > > 09/05/2018 09:43, Xu, Rosen:
> > > > > From: Rosen Xu <rosen.xu at intel.com>
> > > > >
> > > > > Add Intel FPGA BUS Rawdev Driver which is based on librte_rawdev
> > > > > library.
> > > > >
> > > > > Signed-off-by: Rosen Xu <rosen.xu at intel.com>
> > > > > Signed-off-by: Yanglong Wu <yanglong.wu at intel.com>
> > > > > Signed-off-by: Tianfei Zhang <tianfei.zhang at intel.com>
> > > > > Acked-by: Shreyansh Jain <shreyansh.jain at nxp.com>
> > > >
> > > > I have a compilation error:
> > > > 	drivers/raw/ifpga_rawdev/base/ifpga_fme_pr.c:10:15: error:
> > > > 	instruction requires: AVX-512 ISA
> > > >
> > > > because of vmovdqu64:
> > > >
> > > > #if defined(RTE_ARCH_X86_64)
> > > > static inline void copy512(const void *src, void *dst) {
> > > >     asm volatile("vmovdqu64 (%0), %%zmm0;"
> > > >              "vmovntdq %%zmm0, (%1);"
> > > >              :
> > > >              : "r"(src), "r"(dst)); } #else static inline void
> > > > copy512(const void *src, void *dst) {
> > > >     UNUSED(src);
> > > >     UNUSED(dst);
> > > >     WARN_ON(1);
> > > > }
> > > > #endif
> > > >
> > > > I suggest to fix it quickly without waiting a v11 with this:
> > > >
> > > > static inline void copy512(const void *src, void *dst) { #ifdef
> > > > CC_SUPPORT_AVX512F
> > > >     asm volatile("vmovdqu64 (%0), %%zmm0;"
> > > >              "vmovntdq %%zmm0, (%1);"
> > > >              :
> > > >              : "r"(src), "r"(dst)); #else
> > > >     UNUSED(src);
> > > >     UNUSED(dst);
> > > >     WARN_ON(1);
> > > > #endif
> > > > }
> > > >
> > > > It does not make any runtime detection, but it's better than previously.
> > > >
> > >
> > > Which linux distribution are you use? We can compile it on Ubuntu
> > > 16.04
> > and RHEL 7.4.
> > > We will fix it on V11.
> > >
> >
> > This shows up with meson builds for non-avx-512 architectures using clang.
> > The makefile has the following snippet that doesn't have an equivalent
> > in the meson.build file.
> >
> >  26 ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y)$
> >  27 >-------CFLAGS_ifpga_fme_pr.o += -march=knl$
> >  28 endif$
> >
> > However, it does also bring up the questions as to the unconditional
> > use of
> > AVX-512 code? What happens if this code is run on a system without
> > AVX-512 support?
> 
> This function is for SKY MCP platform (Xeon + FPGA integrated chip) which
> can accelerate the PR (partial reconfiguration ) function on FPGA.
> So the SKY support the AVX-512 instruction set.


More information about the dev mailing list