ContributionsMost RecentMost LikesSolutionsRe: OpenCL to OneAPI Dramatic change in Frequency and Performance Hello @BoonBengT_Altera , I apologize for the late response. Unfortunately, this is a domain specific program we are trying to create so using a oneAPI libraries for handling matrixes is not an option to my understanding. What we are trying to figure out is why the performance has dropped so significantly when converting our source code from OpenCL to OneAPI. If you are still available to help, it would be much appreciated as we are still struggling to find the source of the issue. If not and I must create a new post, please let me know. Thank you. Sincerely, Abenezer Wudenhe Re: Unable to synthesis FPGA executable using DPC++ Hello, Thank you for following up. Using different qsub methods lead to different results as shown below. # Unable to submit with the following command # recieve the following error from qsub -q batch@v-qsvr-fpga -l nodes=s001-n085:ppn=2 -d . ./batch_10.test_gemm.sh # qsub: submit error (Job exceeds queue resource limits MSG=cannot locate feasible nodes (nodes file is empty, all systems are busy, or no nodes have the requested feature)) # Submits but does not synthesise A10 ONEAPI FPGA # recieve the following error qsub -l nodes=arria10:ppn=2 -d . ./batch_10.test_gemm.sh # quartus_sh: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory # aoc: Quartus is not on the path! # aoc: Is Intel(R) Quartus(R) Prime software installed on your system and quartus bin directory added to PATH environment variable? # llvm-foreach: # dpcpp: error: fpga compiler command failed with exit code 1 (use -v to see invocation) I also believe that the issue may be with the layout and not the node itself, due to the error message from the original post i.e. Error (170077): Cannot place the following nodes Error (170077): Cannot place the following nodes Re: Unable to synthesis FPGA executable using DPC++ Hello BB, No I have not tried this method, thank you for the suggestion. I have been using the simple command below devcloud_login -b A10OAPI (walltime=12:00:00) batch.sh I will try using your method and report back. Just to note for anyone else who may be having a similar issue, I found that using the sycl-ls command for OneAPI A10 Nodes differs from node to node, and working ones will typically be able to show more devices in general. I am not sure what to make of this but found it interesting. # Inside A10 ONEAPI Node Where test FPGA synthesis worked $ sycl-ls [opencl:0] ACC : Intel(R) FPGA Emulation Platform for OpenCL(TM) 1.2 [2021.13.11.0.23_160000] [opencl:0] ACC : Intel(R) FPGA SDK for OpenCL(TM) 1.0 [2022.1] [opencl:1] ACC : Intel(R) FPGA SDK for OpenCL(TM) 1.0 [2022.1] [opencl:0] CPU : Intel(R) OpenCL 3.0 [2021.13.11.0.23_160000] [host:0] HOST: SYCL host platform 1.2 [1.2] # Inside A10 ONEAPI Node Where test FPGA synthesis failed $ sycl-ls [opencl:0] ACC : Intel(R) FPGA Emulation Platform for OpenCL(TM) 1.2 [2021.13.11.0.23_160000] [opencl:0] CPU : Intel(R) OpenCL 3.0 [2021.13.11.0.23_160000] [host:0] HOST: SYCL host platform 1.2 [1.2] OpenCL to OneAPI Dramatic change in Frequency and Performance Hello, I am attempting to reimplement an FPGA GEMM program from OpenCL to OneAPI. This however results in a very low frequency and high increase in Memory Bits after full FPGA synthesis. Can anyone provide some areas to look into that may be causing this? I believe my implementation follows the OpenCL implementation very closely. I have included the source kernel codes below with .cl extension for OpenCL and .h for OneAPI. Thank you for the help. Sincerely, Abenezer Wudenhe Unable to synthesis FPGA executable using DPC++ Hello, I am attepting to synthesis a FPGA execuitble for convolution using the A10 OneAPI FPGA Node/ It seems that I am unable to synthesis this project at it's current size. I have tried emulation with a smaller parameters and that is able to work. I use the following commands to compile to FPGA ```bash dpcpp oneapi-target-5-run.cpp -lz -lpthread -ldl -fintelfpga -fsycl -fsycl-device-code-split=off -DFPGA -Xshardware -Xsboard=intel_a10gx_pac:pac_a10 -o ./test.fpga ``` I have included the source files needed to build the FPGA executible using DPC++ for convolution. Any help would be appriciated. Thank you I submitted my bash script job with the following comand and outputs ```bash ######################################################################## ### Submitted batch.sh command ######################################################################## devcloud_login -b A10OAPI walltime=12:00:00 batch.sh ######################################################################## ### batch.sh.o ######################################################################## ######################################################################## # Date: Mon Jan 31 17:29:28 PST 2022 # Job ID: 1843614.v-qsvr-1.aidevcloud # User: u128916 # Resources: neednodes=s001-n090:ppn=2,nodes=s001-n090:ppn=2,walltime=12:00:00 ######################################################################## aoc: Warning RAM Utilization is at 171%! aoc: Compiling for FPGA. This process may take several hours to complete. Prior to performing this compile, be sure to check the reports to ensure the design will meet your performance targets. If the reports indicate performance targets are not being met, code edits may be required. Please refer to the oneAPI FPGA Optimization Guide for information on performance tuning applications for FPGAs. Error (20264): Placement failed to find a legal solution due to row legality failure. Error (170077): Cannot place the following nodes Error (170077): Cannot place the following nodes Error (23035): Tcl error: Error (23031): Evaluation of Tcl script compile_script.tcl unsuccessful Error: Quartus Prime Shell was unsuccessful. 2 errors, 0 warnings Error (23035): Tcl error: Error (23031): Evaluation of Tcl script build/entry.tcl unsuccessful Error: Quartus Prime Shell was unsuccessful. 2 errors, 0 warnings ######################################################################## # End of output for job 1843614.v-qsvr-1.aidevcloud # Date: Mon Jan 31 20:32:55 PST 2022 ######################################################################## ######################################################################## ### batch.sh.e ######################################################################## In file included from oneapi-target-5-run.cpp:33: ./conv.generated_oneapi_header.h:67:41: warning: comparison with NaN always evaluates to false in fast floating point modes [-Wtautological-constant-compare] inline bool is_nan_f32(float x) {return isnan(x);} ^~~~~~~~ ./conv.generated_oneapi_header.h:68:42: warning: comparison with NaN always evaluates to false in fast floating point modes [-Wtautological-constant-compare] inline bool is_nan_f64(double x) {return isnan(x);} ^~~~~~~~ ./conv.generated_oneapi_header.h:69:41: warning: comparison with infinity always evaluates to false in fast floating point modes [-Wtautological-constant-compare] inline bool is_inf_f32(float x) {return isinf(x);} ^~~~~~~~ ./conv.generated_oneapi_header.h:70:42: warning: comparison with infinity always evaluates to false in fast floating point modes [-Wtautological-constant-compare] inline bool is_inf_f64(double x) {return isinf(x);} ^~~~~~~~ 4 warnings generated. For more details, full Quartus compile output can be found in files quartuserr.tmp and quartus_sh_compile.log. Error: Compiler Error, not able to generate hardware llvm-foreach: dpcpp: error: fpga compiler command failed with exit code 1 (use -v to see invocation) ``` Re: Error enumerating AFCs: no driver available Hello, was this issue ever solved? I am having the same issue on devcloud nodes with Arria 10 OneAPI. Please let me know when possible. Thank you.