User Profile
User Widgets
Contributions
fpga programs are not running
Hi, it seems all my FPGA codes cannot run at the moment on the nodes with Arria 10 OneAPI. Depending if I directly run on the node (e.g. s001-n090) or through devcloud_login -b A10OAPI walltime=12:00:00 job1.sh I get error messages like: Error enumerating AFCs: not found Error enumerating AFCs: not found Error enumerating AFCs: not found Error enumerating AFCs: not found Segmentation fault or Error: Could not load board library /opt/intel/inteloneapi/intelfpgadpcpp/latest/board/intel_a10gx_pac/linux64/lib/libintel_opae_mmd.so (error_msg: libMPF.so: cannot open shared object file: No such file or directory) Failed to dynamically load board MMD /opt/intel/inteloneapi/intelfpgadpcpp/latest/board/intel_a10gx_pac/linux64/lib/libintel_opae_mmd.so I had similar problems before, but they seemed solved. It seems like there is no hardware attached. Is it OK to just run: ./executable or I need to do something first? Thanks in advance for your help.1.3KViews0likes2Commentsperformances on Arria 10
Hello, I would like to ask you a question about the performances on the FPGA board Arria 10. I'm using DPC++ and adapted the sample code of the matrix multiplication https://github.com/oneapi-src/oneAPI-samples/tree/master/DirectProgramming/DPC%2B%2B/DenseLinearAlgebra/matrix_mul to run on FPGAs, as described in https://pp4fpgas.readthedocs.io/en/latest/devcloud.html The kernel is the following: h.parallel_for(range(M, P), [=](auto index) { // Get global position in Y direction. int row = index[0]; // Get global position in X direction. int col = index[1]; float sum = 0.0f; // Compute the result of one element of c for (int i = 0; i < width_a; i++) { sum += a[row][i] * b[i][col]; } c[index] = sum; }); Changing the matrix size from 128 to 4096 and running the kernel on GPUs, CPUs and FPGAs I have observed the performance on Arria 10 is always below 1 GFlops, while on GPUs and CPUs I can reach far better performances. I've recently found in https://software.intel.com/content/www/us/en/develop/download/oneapi-fpga-optimization-guide.html (Section 4.2.2 ), that I probably need to specify the work group size manually, but I always get performances below 1 GFlops. Could you please tell me if I need to change some lines in the kernel or if I need to use particular compilation flags for optimization? Many thanks. Any suggestion is very welcome.1KViews0likes1CommentRe: cannot run on fpga hardware
Hello and thank you for your reply. Below you can find the Makefile that I am using to compile and execute. Makefile -------------------------------------------------------- TARGET_EMU = fpga_emu TARGET_HW = fpga_hardware TARGET_REPORT = fpga_report.a SRCS = src/template.cpp OBJS = $(SRCS:.cpp=.o) ETS = $(SRCS:.cpp=.d) CXX = dpcpp CXXFLAGS = -std=c++17 .PHONY: build build_emu build_hw report run_emu run_hw clean run .DEFAULT_GOAL := build_emu # Intel-supported FPGA cards FPGA_DEVICE_A10 = intel_a10gx_pac:pac_a10 FPGA_DEVICE_S10 = intel_s10sx_pac:pac_s10 FPGA_DEVICE = $(FPGA_DEVICE_A10) # Compile flags EMULATOR_FLAGS = -fintelfpga -DFPGA_EMULATOR HARDWARE_FLAGS = -fintelfpga -Xshardware -Xsboard=$(FPGA_DEVICE) #HARDWARE_FLAGS = -fintelfpga -Xshardware REPORT_FLAGS = $(HARDWARE_FLAGS) -fsycl-link # Build for FPGA emulator build: build_emu build_emu: $(TARGET_EMU) $(TARGET_EMU): $(SRCS) $(CXX) $(CXXFLAGS) $(EMULATOR_FLAGS) -o $@ $^ # Generate FPGA optimization report (without compiling all the way to hardware) report: $(TARGET_REPORT) $(TARGET_REPORT): $(SRCS) $(CXX) $(CXXFLAGS) $(REPORT_FLAGS) -o $@ $^ # Build for FPGA hardware build_hw: $(TARGET_HW) $(TARGET_HW): $(SRCS) $(CXX) $(CXXFLAGS) $(HARDWARE_FLAGS) -fintelfpga -o $@ $^ # Run on the FPGA emulator run: run_emu run_emu: $(TARGET_EMU) ./$(TARGET_EMU) # Run on the FPGA card run_hw: $(TARGET_HW) ./$(TARGET_HW) # Clean all clean: -$(RM) $(OBJS) $(TARGET_EMU) $(TARGET_HW) $(TARGET_REPORT) *.d -$(RM) -R *.prj -------------------------------------------------------------------- Then I use the following commands to compile and execute 1)make build_emu 2)make report 3)make build_hw 4)make run_emu 5)make run_hw The executables are compiled, but: if I try to run on the device through 5) I get the following Makefile:45: recipe for target 'fpga_hardware' failed if I login to a node with Arria 10 OneAPI and then run the executable through ./fpga_hardware I obtain: Error enumerating AFCs: not found Error enumerating AFCs: not found Error enumerating AFCs: not found Error enumerating AFCs: not found Segmentation fault Do you think I am doing some mistakes? I do not understand why, but everything was working until about a week ago. Thanks for you help. Best regards. PS: the commands 1), 2) ... 5) are executed through qsub -l nodes=1:fpga_compile:ppn=2 -d . job1.sh or qsub -l nodes=1:fpga_runtime:ppn=2 -d . job2.sh and the file job.sh look like #!/bin/bash cd /home/my_directory source /opt/intel/inteloneapi/setvars.sh make run_hw2.9KViews0likes2Commentscannot run on fpga hardware
Hello, I've recently noticed that programs previously running on the fpga hardware are no longer working. I've also tried to recompile but I get the same problem. Here's the message I receive for arria 10 oneAPI. Error enumerating AFCs: not found Error enumerating AFCs: not found Error enumerating AFCs: not found Error enumerating AFCs: not found Segmentation fault Do you have any suggestions? Thank you for your help.Solved3KViews0likes9Comments