Comments (10)
from gemx.
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.
from gemx.
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.
from gemx.
from gemx.
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?
from gemx.
I tried the steps you mentioned, and it works on F1 for me.
Can you check following items:
- if you copied the generated out_hw/xbinst to the out_hw/ directory on F1?
- if you have setup the env correctly? Below is the content of the run.sh I used to run this command
source /opt/Xilinx/SDx/2017.1.rte/setup.sh
pushd out_hw/xbinst
export SDACCEL_TIMELINE_REPORT=true
export SDACCEL_DEVICE_PROFILE=true
export LD_LIBRARY_PATH=$PWD/../../lib/opencv:$PWD/../../lib:$LD_LIBRARY_PATH
GEMX_HOST_DIR=../../out_host
GEMX_HW_DIR=../
${GEMX_HOST_DIR}/gemx_api_gemm.exe ${GEMX_HW_DIR}/gemx.awsxclbin 512 512 512
popd
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.
from gemx.
Thanks for your reply. But I can not find /lib/opencv on aws f1 instance
from gemx.
you can remove /lib/opencv from the LD_LIBRARY_PATH, it should still work.
from gemx.
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.
from gemx.
please sync your master branch with the repository first. After that, please follow the steps below to run cpu emulation for SPMV implementation.
- run settings64.sh / settings64.csh to set up the SDx 2017.4 environment
- navigate to gemx/
- run
make clean
- run
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.
from gemx.
Related Issues (12)
- Issues running with SDAccel 2018.3
- Why Multi_Instruction API doesn't support fp32?
- xblas_gemv implementation HOT 2
- Problem with compiling Gemx HOT 1
- multiple definition of `kernelOpLow' HOT 2
- can't get correct frequency HOT 3
- Measure the time of each step HOT 3
- Problem compiling Gemx HOT 2
- param:compiler.acceleratorBinaryContent="dcp" or "bitstream" HOT 7
- how to use gemx library HOT 3
- xclbin_get_freq.pl: command not found HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gemx.