Open liyb13 opened 6 years ago
Which version of SDx are you using? If you compile for vu9pf1, you should use SDx2017.1
string instruction afterrep' /tmp/cc8fJfho.s:6845: Error: expecting string instruction after rep' /tmp/cc8fJfho.s:16931: Error:
This error is caused by the lower version of binutils you are using. Can you run following command to check which version of binutils you are using. ld -v
Currently we use 2.26, if your version number is lower than that, you might need to upgrade your binutils.
Thanks for your help. I have successfully compile the project. I run it on AWS F1 and then get some results. It reports that kernel result does not match the reference.
Which command did you use to build .xclbin? And how do you test the .xclbin on F1? I will try to see if I can reproduce your results on my side.
Thanks for your reply. I did as the README.md (https://github.com/Xilinx/gemx):
Compiling and building the FPGA image: make run_hw SDA_FLOW=hw GEMX_ddrWidth=32 GEMX_gemmMBlocks=8 GEMX_gemmKBlocks=8 GEMX_gemmNBlocks=8 GEMX_numKernels=4 GEMX_runGemv=0 GEMX_runTransp=0 GEMX_runGemm=1 GEMX_part=vu9pf1 GEMX_kernelHlsFreq=250 GEMX_kernelVivadoFreq=300 GEMX_useURAM=1 GEMX_vivadoFlow=EXP
Compiling host code: make GEMX_ddrWidth=32 GEMX_gemmMBlocks=8 GEMX_gemmKBlocks=8 GEMX_gemmNBlocks=8 GEMX_numKernels=4 out_host/gemx_api_gemm.exe
AWS F1 test: source /opt/Xilinx/SDx/2017.1.rte/setup.sh gemx_api_gemm.exe gemx.awsxclbin 512 512 512
Report: Compared 262144 values: exact match 259072 within tolerance 135 mismatch 2937 INFO: accelerator kernel 0 result does NOT match the reference Compared 262144 values: exact match 241760 within tolerance 136 mismatch 20248 INFO: accelerator kernel 1 result does NOT match the reference Compared 262144 values: exact match 0 within tolerance 0 mismatch 262144 INFO: accelerator kernel 2 result does NOT match the reference Compared 262144 values: exact match 0 within tolerance 0 mismatch 262144 INFO: accelerator kernel 3 result does NOT match the reference
Another question: I think "gemx_api_gemm.exe gemx.awsxclbin 512 512 512" means the buffer size of A is 512*512. Then buffer A could store the 512*512*16bit. While the buffer size of A is GEMX_gemmMBlocks*GEMX_ddrWidth x GEMX_gemmKBlocks*GEMX_ddrWidth = 256*256. Should I modify the default values of variables?
I tried the steps you mentioned, and it works on F1 for me. Can you check following items:
regarding your question: the 512 512 and 512 mean the value for dimention M, K and N. the matrix multiplication is doing C = A * B, where A has dimension M x K, B has dimension K x N and C has dimension M x N the local buffer size for A, B and C is controlled by the setup of GEMX_gemmMBlocks, GEMX_gemmKBlocks ang GEMX_gemmNBlocks and GEMX_ddrWidth.
Thanks for your reply. But I can not find /lib/opencv on aws f1 instance
you can remove /lib/opencv from the LD_LIBRARY_PATH, it should still work.
Thanks. It is declaired that the GEMX supports sparse matrix multiplication. Would you please tell me the detailed procedures to run the simulation and implementation for the sparse mode. Many thanks.
please sync your master branch with the repository first. After that, please follow the steps below to run cpu emulation for SPMV implementation.
make clean
make run_cpu_em GEMX_ddrWidth=16 GEMX_argInstrWidth=1 GEMX_numKernels=1 GEMX_runGemv=0 GEMX_runGemm=0 GEMX_runTransp=0 GEMX_runSpmv=1 GEMX_dataType=float GEMX_part=ku115 GEN_BIN_PROGRAM="spmv 96 128 256 none A0 B0 C0 spmv 0 0 0 data/spmv/Rucci1.mtx.gz A1 B1 C1"
if you change "run_cpu_em" to "run_hw_em" and add "HWEMUGUI=1" then you can run hw emulation with GUI to deplay the waveform of the SPMV simulation results.
when I try to compile the gemm project, the following error happens: /tmp/cc8fJfho.s: Assembler messages: /tmp/cc8fJfho.s:318: Error: expecting string instruction after
rep' /tmp/cc8fJfho.s:386: Error: expecting string instruction after
rep' /tmp/cc8fJfho.s:6845: Error: expecting string instruction afterrep' /tmp/cc8fJfho.s:16931: Error: expecting string instruction after
rep' /tmp/cc8fJfho.s:21658: Error: expecting string instruction after `rep' make: *** [out_host/gemx_host.exe] Error 1