Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

multiple definition of `kernelOpLow' #3

Open
luckyteddy opened this issue Mar 14, 2018 · 2 comments
Open

multiple definition of `kernelOpLow' #3

luckyteddy opened this issue Mar 14, 2018 · 2 comments

Comments

@luckyteddy
Copy link

luckyteddy commented Mar 14, 2018

I build the hw failed. So I tried cpu_emu.
make run_cpu_em SDA_FLOW=sw_em GEMX_ddrWidth=32 GEMX_argInstrWide=1 GEMX_gemmMBlocks=8 GEMX_gemmKBlocks=8 GEMX_gemmNBlocks=8 GEMX_numKernels=4 GEMX_runGemv=0 GEMX_runTransp=0 GEMX_runGemm=1 GEMX_part=ku115 GEMX_kernelHlsFreq=250 GEMX_kernelVivadoFreq=300 GEMX_useURAM=1 GEMX_vivadoFlow=EXP XILINX_SDX=/opt/Xilinx/SDx/2017.2

And here is the error info in linking.

****** xocc v2017.2_sdx (64-bit)
**** SW Build 1972098 on Wed Aug 23 11:34:38 MDT 2017
** Copyright 1986-2017 Xilinx, Inc. All Rights Reserved.

INFO: [XOCC 60-629] Linking for software emulation target
INFO: [XOCC 60-895] Target platform: /opt/Xilinx/SDx/2017.2/platforms/xilinx_xil-accel-rd-ku115_4ddr-xpr_4_0/xilinx_xil-accel-rd-ku115_4ddr-xpr_4_0.xpfm
INFO: [XOCC 60-423] Target device: xilinx:xil-accel-rd-ku115:4ddr-xpr:4.0
WARNING: [XOCC 60-889] User-specified kernel frequency for ID 0 is the same as the default frequency 300 MHz, so it will be ignored
INFO: [XOCC 60-694] Validating user connections (map_connect)...
INFO: [XOCC 60-690] User connection 'kernel|gemxKernel_0|M_AXI_GMEMM' is valid
INFO: [XOCC 60-690] User connection 'core|OCL_REGION_0|M00_AXI' is valid
INFO: [XOCC 60-690] User connection 'kernel|gemxKernel_1|M_AXI_GMEMM' is valid
INFO: [XOCC 60-690] User connection 'core|OCL_REGION_0|M01_AXI' is valid
INFO: [XOCC 60-690] User connection 'kernel|gemxKernel_2|M_AXI_GMEMM' is valid
INFO: [XOCC 60-690] User connection 'core|OCL_REGION_0|M02_AXI' is valid
INFO: [XOCC 60-690] User connection 'kernel|gemxKernel_3|M_AXI_GMEMM' is valid
INFO: [XOCC 60-690] User connection 'core|OCL_REGION_0|M03_AXI' is valid
INFO: [XOCC 60-645] kernel flags are '-g -D GMEM_M=0 -D TEST_SDX=1 -D GEMX_dataType=short -D GEMX_dataEqIntType=short -D GEMX_ddrWidth=32 -D GEMX_argInstrWidth=1 -D GEMX_numInstr=16 -D GEMX_gemvkVectorBlocks=512 -D GEMX_gemvmVectorBlocks=512 -D GEMX_gemvmGroups=1 -D GEMX_gemmMBlocks=8 -D GEMX_gemmKBlocks=8 -D GEMX_gemmNBlocks=8 -D GEMX_fracBitsIn=0 -D GEMX_fracBitsOut=0 -D GEMX_macBits=32 -D GEMX_transpBlocks=1 -D GEMX_spmvWidth=8 -D GEMX_spmvkVectorBlocks=2048 -D GEMX_spmvMacGroups=4 -D GEMX_spmvColAddIdxBits=2 -D GEMX_spmvPadA=1 -D GEMX_spmvNumCblocks=1024 -D GEMX_spmvFloatPerDesc=4 -D GEMX_idxType=int32_t -D GEMX_nnzBlocks=8 -D GEMX_spmvKmaxBlocks=32768 -D GEMX_spmvMmaxBlocks=32768 -D GEMX_argPipeline=2 -D GEMX_part=ku115 -D GEMX_useURAM=1 -D GEMX_splitMesh=0 -D GEMX_runGemv=0 -D GEMX_runGemm=1 -D GEMX_runTransp=0 -D GEMX_runSpmv=0 -D GEMX_numKernels=4 -D GEMX_kernelId=3 -I /home/sdx/sdx/gemx/gemx/src -std=c++0x -g'
INFO: [XOCC 60-645] kernel flags are '-g -D GMEM_M=0 -D TEST_SDX=1 -D GEMX_dataType=short -D GEMX_dataEqIntType=short -D GEMX_ddrWidth=32 -D GEMX_argInstrWidth=1 -D GEMX_numInstr=16 -D GEMX_gemvkVectorBlocks=512 -D GEMX_gemvmVectorBlocks=512 -D GEMX_gemvmGroups=1 -D GEMX_gemmMBlocks=8 -D GEMX_gemmKBlocks=8 -D GEMX_gemmNBlocks=8 -D GEMX_fracBitsIn=0 -D GEMX_fracBitsOut=0 -D GEMX_macBits=32 -D GEMX_transpBlocks=1 -D GEMX_spmvWidth=8 -D GEMX_spmvkVectorBlocks=2048 -D GEMX_spmvMacGroups=4 -D GEMX_spmvColAddIdxBits=2 -D GEMX_spmvPadA=1 -D GEMX_spmvNumCblocks=1024 -D GEMX_spmvFloatPerDesc=4 -D GEMX_idxType=int32_t -D GEMX_nnzBlocks=8 -D GEMX_spmvKmaxBlocks=32768 -D GEMX_spmvMmaxBlocks=32768 -D GEMX_argPipeline=2 -D GEMX_part=ku115 -D GEMX_useURAM=1 -D GEMX_splitMesh=0 -D GEMX_runGemv=0 -D GEMX_runGemm=1 -D GEMX_runTransp=0 -D GEMX_runSpmv=0 -D GEMX_numKernels=4 -D GEMX_kernelId=2 -I /home/sdx/sdx/gemx/gemx/src -std=c++0x -g'
INFO: [XOCC 60-645] kernel flags are '-g -D GMEM_M=0 -D TEST_SDX=1 -D GEMX_dataType=short -D GEMX_dataEqIntType=short -D GEMX_ddrWidth=32 -D GEMX_argInstrWidth=1 -D GEMX_numInstr=16 -D GEMX_gemvkVectorBlocks=512 -D GEMX_gemvmVectorBlocks=512 -D GEMX_gemvmGroups=1 -D GEMX_gemmMBlocks=8 -D GEMX_gemmKBlocks=8 -D GEMX_gemmNBlocks=8 -D GEMX_fracBitsIn=0 -D GEMX_fracBitsOut=0 -D GEMX_macBits=32 -D GEMX_transpBlocks=1 -D GEMX_spmvWidth=8 -D GEMX_spmvkVectorBlocks=2048 -D GEMX_spmvMacGroups=4 -D GEMX_spmvColAddIdxBits=2 -D GEMX_spmvPadA=1 -D GEMX_spmvNumCblocks=1024 -D GEMX_spmvFloatPerDesc=4 -D GEMX_idxType=int32_t -D GEMX_nnzBlocks=8 -D GEMX_spmvKmaxBlocks=32768 -D GEMX_spmvMmaxBlocks=32768 -D GEMX_argPipeline=2 -D GEMX_part=ku115 -D GEMX_useURAM=1 -D GEMX_splitMesh=0 -D GEMX_runGemv=0 -D GEMX_runGemm=1 -D GEMX_runTransp=0 -D GEMX_runSpmv=0 -D GEMX_numKernels=4 -D GEMX_kernelId=0 -I /home/sdx/sdx/gemx/gemx/src -std=c++0x -g'
INFO: [XOCC 60-645] kernel flags are '-g -D GMEM_M=0 -D TEST_SDX=1 -D GEMX_dataType=short -D GEMX_dataEqIntType=short -D GEMX_ddrWidth=32 -D GEMX_argInstrWidth=1 -D GEMX_numInstr=16 -D GEMX_gemvkVectorBlocks=512 -D GEMX_gemvmVectorBlocks=512 -D GEMX_gemvmGroups=1 -D GEMX_gemmMBlocks=8 -D GEMX_gemmKBlocks=8 -D GEMX_gemmNBlocks=8 -D GEMX_fracBitsIn=0 -D GEMX_fracBitsOut=0 -D GEMX_macBits=32 -D GEMX_transpBlocks=1 -D GEMX_spmvWidth=8 -D GEMX_spmvkVectorBlocks=2048 -D GEMX_spmvMacGroups=4 -D GEMX_spmvColAddIdxBits=2 -D GEMX_spmvPadA=1 -D GEMX_spmvNumCblocks=1024 -D GEMX_spmvFloatPerDesc=4 -D GEMX_idxType=int32_t -D GEMX_nnzBlocks=8 -D GEMX_spmvKmaxBlocks=32768 -D GEMX_spmvMmaxBlocks=32768 -D GEMX_argPipeline=2 -D GEMX_part=ku115 -D GEMX_useURAM=1 -D GEMX_splitMesh=0 -D GEMX_runGemv=0 -D GEMX_runGemm=1 -D GEMX_runTransp=0 -D GEMX_runSpmv=0 -D GEMX_numKernels=4 -D GEMX_kernelId=1 -I /home/sdx/sdx/gemx/gemx/src -std=c++0x -g'
ERROR: [XOCC 17-1309] Gcc: /home/sdx/sdx/gemx/gemx/out_cpu_emu/_xocc_link_gemx_gemx.dir/impl/kernels/gemxKernel_2/gemxKernel_2/cpu_sources/gemx_kernel.cpp:50: multiple definition of kernelOpLow' ERROR: [XOCC 17-1309] Gcc: gemxKernel_3/gemxKernel_3.csim_cu.a(gemx_kernel.o):/home/sdx/sdx/gemx/gemx/out_cpu_emu/_xocc_link_gemx_gemx.dir/impl/kernels/gemxKernel_3/gemxKernel_3/cpu_sources/gemx_kernel.cpp:50: first defined here ERROR: [XOCC 17-1309] Gcc: /home/sdx/sdx/gemx/gemx/out_cpu_emu/_xocc_link_gemx_gemx.dir/impl/kernels/gemxKernel_0/gemxKernel_0/cpu_sources/gemx_kernel.cpp:50: multiple definition of kernelOpLow'
ERROR: [XOCC 17-1309] Gcc: gemxKernel_3/gemxKernel_3.csim_cu.a(gemx_kernel.o):/home/sdx/sdx/gemx/gemx/out_cpu_emu/_xocc_link_gemx_gemx.dir/impl/kernels/gemxKernel_3/gemxKernel_3/cpu_sources/gemx_kernel.cpp:50: first defined here
ERROR: [XOCC 17-1309] Gcc: /home/sdx/sdx/gemx/gemx/out_cpu_emu/_xocc_link_gemx_gemx.dir/impl/kernels/gemxKernel_1/gemxKernel_1/cpu_sources/gemx_kernel.cpp:50: multiple definition of kernelOpLow' ERROR: [XOCC 17-1309] Gcc: gemxKernel_3/gemxKernel_3.csim_cu.a(gemx_kernel.o):/home/sdx/sdx/gemx/gemx/out_cpu_emu/_xocc_link_gemx_gemx.dir/impl/kernels/gemxKernel_3/gemxKernel_3/cpu_sources/gemx_kernel.cpp:50: first defined here ERROR: [XOCC 60-398] g++ failed ERROR: [XOCC 60-626] Kernel link failed to complete ERROR: [XOCC 60-703] Failed to finish linking make[1]: *** [out_cpu_emu/gemx.xclbin] Error 1 make[1]: Leaving directory /home/sdx/sdx/gemx/gemx'
make: warning: Clock skew detected. Your build may be incomplete.

@luckyteddy
Copy link
Author

BTW, the platform is ku115 with 2017.2

@lisaliu1
Copy link

Hello, for sw_emu, it doesn't support multiple kernels. That's because the same kernel top modules are used multiple times. If you use hw_emu flow, it should work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants