Forum Discussion
Error compiling hello_world.cl with aoc
I recently installed the Intel OpenCL SDK toolchain for FPGA on a Linux system by following the guide provided here https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/opencl-sdk/aocl_getting_started.pdf.
Since our board is an Intel PAC with Arria 10 GX, I also installed the Custom Platform for the board.
Running
aoc -version
Intel(R) FPGA SDK for OpenCL(TM), 64-Bit Offline Compiler
Version 17.1.1 Build 273
Copyright (C) 2017 Intel Corporation
quartus_map --version
Quartus Prime Analysis & Synthesis
Version 17.1.1 Build 273 12/19/2017 Patches 1.02dcp,1.36,1.38 SJ Pro Edition
Copyright (C) 2017 Intel Corporation. All rights reserved.
therefore aoc and Quartus are installed. I also ran "aocl diagnose" and it correctly passed the diagnostic for the board.
Then compiling the hello_world.cl kernel in emulation mode
aoc -v -march=emulator -board=pac_a10 hello_world.cl
worked without any problem (also at runtime the binary worked).
However, running
aoc -v -board=pac_a10 hello_world.cl
c: Environment checks are completed successfully.
aoc: Cached files in /var/tmp/aocl/ may be used to reduce compilation time
You are now compiling the full flow!!
aoc: Selected target board pac_a10
aoc: Running OpenCL parser....
aoc: OpenCL parser completed successfully.
aoc: Optimizing and doing static analysis of code...
aoc: Linking with IP library ...
Checking if memory usage is larger than 100%
aoc: First stage compilation completed successfully.
Compiling for FPGA. This process may take a long time, please be patient.
Error: Compiler Error, not able to generate hardware
Therefore, I looked at hello_world.log (see attached) and there is no indication of why the compilation failed.
Then, I looked at quartus_sh_compile.log and the only line reported is
ERROR: packager tool failed to run. Check installation. Aborting compilation!
Could you please help us understand where the issue may be?
Many thanks.
21 Replies
- KhaiChein_Y_Intel
Regular Contributor
Hi gbarc2,
Can you try to run in the latest version of the software?
Thanks
- gbarc3
New Contributor
Hi KYeoh,
we installed the software stack for the Intel PAC after downloading it from here https://www.intel.com/content/www/us/en/programmable/solutions/acceleration-hub/downloads.html
If there is any way to download a more recent version of the software, could you provide us a download link and/or instructions?
Many thanks
- KhaiChein_Y_Intel
Regular Contributor
Hi gbarc3,
The error suggests you to check the installation. Could you update the version to v18.1?
ERROR: packager tool failed to run. Check installation. Aborting compilation!
Thanks.
- JMilt1
New Contributor
Could you please provide a link to instructions for installing the Arria 10 PAC with v18.1?
- KhaiChein_Y_Intel
Regular Contributor
Hi JMilt1,
May I know what is the available RAM ? Could you share the bin/hello_world/quartus_sh_compile.log file?
Thanks
- JMilt1
New Contributor
I've attached my device/hello_world/quartus_sh_compile.log file. Are you asking what is the amount, or the kind, of available RAM on the board? How would I query this? (It's an Arria 10 GX PAC, if that helps.)
- KhaiChein_Y_Intel
Regular Contributor
Hi JMilt1, I am referring to processor RAM. Thanks- JMilt1
New Contributor
By 'processor', I assume you mean the FPGA. We did not change any of the memory settings from their defaults. How would I query to find out the available memory?
- KhaiChein_Y_Intel
Regular Contributor
Hi JMilt1,
The theorized root cause there is that the Intel Quartus Prime software is using all the available processors, and the machine doesn't have enough memory to support use of all those processors.
Could you try to limit the number of processors being used by the Intel Quartus Prime software, for example to 2?
Thanks.
- JMilt1
New Contributor
I tried limiting `aoc` to a single core using taskset. It worked in the sense that max CPU usage was 100%, rather than 600%, however, there seemed to be no difference in the memory usage - either way it used around 8.3GB before crashing with the same error "Error: Compiler Error, not able to generate hardware".
- HRZ
Frequent Contributor
"Processor" refers to the host processor in YY's reply, not the FPGA. You need 32 to 64 GB of host memory for one instance of Arria 10 placement and routing. How much memory is installed on the machine that you are using for placement and routing?
Also the "quartus_sh_compile" log you posted earlier does NOT show any errors and the process has finished successfully. Can you post the log for a compilation that failed?
- JMilt1
New Contributor
We have 96GB of memory on the host processor.
As gbarc2 said, for the failing compilations, the only line in the quartus_sh_compile.log for the failing compilation is:
ERROR: packager tool failed to run. Check installation. Aborting compilation!
- SMelz
New Contributor
Hi gbarc2,
i have the same error compiling hello_world.cl with aoc.
Is there any solution?
Thanks
Simon
- KhaiChein_Y_Intel
Regular Contributor
Hi, Do you have all the required Linux packages installed? https://www.intel.com/content/www/us/en/programmable/documentation/iyu1522005567196.html#isp1528500494491 May I know what OS you are using? Thanks. - SMelz
New Contributor
Hi,
i use Ubuntu 16.04.6 LTS (Xenial Xerus),
The error in quartuserr.tmp:
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "./tools/packager.pyz/__main__.py", line 28, in <module>
File "./tools/packager.pyz/packager.py", line 35, in <module>
File "./tools/packager.pyz/afu.py", line 52, in <module>
File "./tools/packager.pyz/jsonschema-2.3.0/jsonschema/__init__.py", line 18, in <module>
File "./tools/packager.pyz/jsonschema-2.3.0/jsonschema/validators.py", line 161, in <module>
File "./tools/packager.pyz/jsonschema-2.3.0/jsonschema/_utils.py", line 61, in load_schema
IOError: [Errno 20] Not a directory: u'/home/smelz/inteldevstack/a10_gx_pac_ias_1_2_pv/opencl/exm_opencl_hello_world/hello_world/bin/hello_world/build/tools/packager.pyz/jsonschema-2.3.0/jsonschema/schemas/draft3.json'
How the script packager.pyz (exm_opencl_hello_world/hello_world/bin/hello_world/build/tools/packager.pyz) is generated?
Thanks
Simon
- SMelz
New Contributor
sudo apt-get install python-jsonschema
and it works.