- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I tried to compile a compution.cl file with aoc command to generate computation.aocx.(The command line is aoc -v computation.cl -o computation.aocx) But It failed to generate .aocx file and only .aoco file was generated. With the -v , it showed the stage of compiling on the screen and the information is :
------screen-------
aoc: environment checks are completed successfully.
you are now compiling the full flow!!
aoc: selected default target board a10gx
aoc: running opencl parser....
aoc: opencl parser completed successfully.
aoc: compiling....
aoc: linking with ip library ...
warning: kernel 'fullylayer' has unused argument 'inputdatasize'
aoc: first stage compilation completed successfully.
error: compiler error, not able to generate hardware
---------------------
Then I checked computation.log in the computation floder. It showed no error occured :
-------computation.log---------
info: quartus prime shell was successful. 0 errors, 0 warnings
info: peak virtual memory: 581 megabytes
info: processing ended: fri jun 16 09:08:55 2017
info: elapsed time: 00:00:34
info: total cpu time (on all processors): 00:00:00
----------------------------------
Then I checked top.fit.rpt for more information and the usage of resource in this file showed the resource was enough: +--------------------------------------------------------------------------+
; fitter summary ;
+-----------------------------+--------------------------------------------+
; fitter status ; failed - fri jun 16 13:32:10 2017 ;
; quartus prime version ; 16.1.1 build 200 11/30/2016 sj pro edition ;
; revision name ; top ;
; top-level entity name ; top ;
; family ; arria 10 ;
; device ; 10ax066n3f40e2sg ;
; timing models ; final ;
; logic utilization (in alms) ; 30,540 / 251,680 ( 12 % ) ;
; total registers ; 302754 ;
; total pins ; 290 / 812 ( 36 % ) ;
; total virtual pins ; 0 ;
; total block memory bits ; 22,860,776 / 43,642,880 ( 52 % ) ;
; total ram blocks ; 218 / 2,131 ( 10 % ) ;
; total dsp blocks ; 234 / 1,687 ( 14 % ) ;
; total hssi rx channels ; 8 / 48 ( 17 % ) ;
; total hssi tx channels ; 8 / 48 ( 17 % ) ;
; total plls ; 57 / 96 ( 59 % ) ;
+-----------------------------+--------------------------------------------+
but at the end of top.fit.rpt, it reported some errors :
----------top.fit.rpt----------error (18999): placement cannot find a legal solution.
error (18999): placement cannot find a legal solution.
error (18999): placement cannot find a legal solution.
error (18999): placement cannot find a legal solution.
info (170191): fitter placement operations beginning
info (170192): fitter placement operations ending: elapsed time is 00:01:11
info (11888): total time spent on timing analysis during placement is 572.60 seconds.
error: an error occurred during placement
info (144001): generated suppressed messages file c:/users/xinzhou/desktop/dnn_1.1.1.1/bin_profile/fully_layer/top.fit.smsg
error: quartus prime fitter was unsuccessful. 5 errors, 1014 warnings
error: peak virtual memory: 24521 megabytes
error: processing ended: fri jun 16 13:32:25 2017
error: elapsed time: 03:02:03
error: total cpu time (on all processors): 08:17:02
+----------------------------+
; fitter suppressed messages ;
+----------------------------+
the suppressed messages can be found in c:/users/... --------------
What's more, my OS is Windows 10 Professional , Quartus version is 16.1.1, AOC version is 16.1.0, and It generated .aocx file successfully Before with other OpenCL kernel file. Why it failed to generate .aocx file? And what should I do to shoot this trouble? I am waiting for your reply. Thank you.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Multiple things to note:
1. The "Warning: Kernel 'fullyLayer' has unused argument 'inputDataSize'" is not normal; make sure you haven't made any mistakes in the design of your kernel that something is being optimized out by the compiler. If the argument is really not used, just remove it. 2. "Total block memory bits ; 22,860,776 / 43,642,880 ( 52 % )" and "Total RAM Blocks ; 218 / 2,131 ( 10 % ) ;" does not make any sense; you are probably overutilizing the Block RAMs and the Block RAM number is "overflowing" in the report. I have seen this multiple times before. Actual utilization is probably 110% and not 10%. 3. Compilation is failing during placement, most likely due to Block RAMs overutilization. Please attach the "quartus_sh_compile.log" file so that I can take a closer look. 4. Never mix different versions of AOC and Quartus; always use a version x.y.z with biggest y and z for both. In your case, make sure to update both Quartus and AOC to 16.1.2.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for ur help!
I followed ur advise and removed the argument which is useless in the kernel code, Now, I'm trying to update Quartus and AOC to 16.1.2. Attachment is the file "quartus_sh_compile.log", at the end of log it shows some errors that " Error (18999): Placement cannot find a legal solution. ". What does it mean? It seems the log file is too big to update, so I packaging it. Im sorry about additional work you have to do with the .zip file. If it is not convenient, I ll attach the file with bottom lines in the log file. Again, Thanks for your help! --- Quote Start --- Multiple things to note: 1. The "Warning: Kernel 'fullyLayer' has unused argument 'inputDataSize'" is not normal; make sure you haven't made any mistakes in the design of your kernel that something is being optimized out by the compiler. If the argument is really not used, just remove it. 2. "Total block memory bits ; 22,860,776 / 43,642,880 ( 52 % )" and "Total RAM Blocks ; 218 / 2,131 ( 10 % ) ;" does not make any sense; you are probably overutilizing the Block RAMs and the Block RAM number is "overflowing" in the report. I have seen this multiple times before. Actual utilization is probably 110% and not 10%. 3. Compilation is failing during placement, most likely due to Block RAMs overutilization. Please attach the "quartus_sh_compile.log" file so that I can take a closer look. 4. Never mix different versions of AOC and Quartus; always use a version x.y.z with biggest y and z for both. In your case, make sure to update both Quartus and AOC to 16.1.2. --- Quote End ---- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
"Placement cannot find a legal solution" usually means that you need some resource (RAM, DSP, etc.) on the FPGA, but that resource has been fully used and there is nothing else left.
The closest thing I could find to a meaningful error message in the log was this:Error (17937): The inputs to the LAB at location (68,69) exceed the number of legal inputs. This LAB may be locked or have other LAB-level input restrictions. Refer to the submessage(s) for the specific input nodes that do not fit in the LAB. Remove some inputs to this LAB so the number of inputs does not exceed the legal limit. File: c:/intelfpga_pro/16.1/quartus/libraries/megafunctions/altera_counter.sv Line: 59
But I had personally never seen such message before; the message that is printed in the log when you overutilize the Block RAMs is different. Can you please retry the compilation after updating to 16.1.2 and see what happens? Also please add --report to your compilation log and post the area estimation that you receive in stdout after adding that switch.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--------------------Update--------------------
My DSP package do not support 16.1.2 and higher version, this is the reason that the strange errors occured. Now I rollback both Quartus and AOC to 16.1.1, the problem has been solved. i ll update the result of this compilation later. Thanks for ur help!.following questions have been solved. ============ Hi, I updated quartus and aoc/aocl to 16.1.2, but there were some strange errors...... I try to compile a simple OpenCL kernel code with aoc -v --report xxx.cl -o xxx.aocx
But the compilation was failed and the quartus_sh_compile showed:
Error (15653): The Fitter cannot find a legal configuration for the following atoms. Update any outdated transceiver PHY IP cores, correct any illegal pin assignments, and then recompile your design.
Error (15744): In atom 'board_inst|pcie|pcie|altpcie_a10_hip_pipen1b|g_xcvr.altpcie_a10_hip_pllnphy|g_xcvr.g_phy_g3x8.phy_g3x8|phy_g3x8|g_xcvr_native_insts.twentynm_xcvr_native_inst|twentynm_xcvr_native_inst|inst_twentynm_pma|gen_twentynm_hssi_pma_rx_sd.inst_twentynm_hssi_pma_rx_sd'
Error (15744): The settings must match one or more of these conditions:
Error (15744): ( sup_mode == ENGINEERING_MODE ) OR ( prot_mode != PCIE_GEN3_RX ) OR ( sd_output_off == CLK_DIVRX_14 )
Error (15744): But the following assignments violate the above conditions:
Error (15744): sup_mode = USER_MODE
Error (15744): prot_mode = PCIE_GEN3_RX
Error (15744): sd_output_off = CLK_DIVRX_6
Error (18590): The imported netlist contains settings that are not supported by the current version of the software. Import using the --timing_analysis_mode option, which ignores the errors and allows Timing Analysis to be run.
Error: design::import_design -file base.qdb -overwrite failed!
Error (23031): Evaluation of Tcl script d:/intelfpga_pro/quartus/common/tcl/internal/qatm_import_design.tcl unsuccessful
Error: Quartus Prime Compiler Database Interface was unsuccessful. 11 errors, 0 warnings
Error: Peak virtual memory: 3998 megabytes
Error: Processing ended: Thu Jun 29 17:53:43 2017
Error: Elapsed time: 00:19:03
Error: Total CPU time (on all processors): 00:19:03
Info: *******************************************************************
Info: Running Quartus Prime Compiler Database Interface
Info: Version 16.1.2 Build 203 01/18/2017 SJ Pro Edition
Info: Copyright (C) 2017 Intel Corporation. All rights reserved.
Info: Your use of Intel Corporation's design tools, logic functions
Info: and other software and tools, and its AMPP partner logic
Info: functions, and any output files from any of the foregoing
Info: (including device programming or simulation files), and any
Info: associated documentation or information are expressly subject
Info: to the terms and conditions of the Intel Program License
Info: Subscription Agreement, the Intel Quartus Prime License Agreement,
Info: the Intel MegaCore Function License Agreement, or other
Info: applicable license agreement, including, without limitation,
Info: that your use is for the sole purpose of programming logic
Info: devices manufactured by Intel and sold by Intel or its
Info: authorized distributors. Please refer to the applicable
Info: agreement for further details.
Info: Processing started: Thu Jun 29 17:34:40 2017
Info: Command: quartus_cdb -t import_compile.tcl
Info: Using INI file c:/Users/xinzhou/altera/test_version_hello/test_result/quartus.ini
Error (23031): Evaluation of Tcl script import_compile.tcl unsuccessful
Error: Quartus Prime Compiler Database Interface was unsuccessful. 1 error, 0 warnings
Error: Peak virtual memory: 509 megabytes
Error: Processing ended: Thu Jun 29 17:53:45 2017
Error: Elapsed time: 00:19:05
Error: Total CPU time (on all processors): 00:00:00
But I have already used customized bsp package. What's more, aocl diagnose also failed and the screen showed:
Using platform: Intel(R) FPGA SDK for OpenCL(TM)
Using Device with name: a10gx : Arria 10 Reference Platform (acla10_ref0)
Using Device from vendor: Intel(R) Corporation
clGetDeviceInfo CL_DEVICE_GLOBAL_MEM_SIZE = 4294967296
clGetDeviceInfo CL_DEVICE_MAX_MEM_ALLOC_SIZE = 4293918720
Memory consumed for internal use = 1048576
Actual maximum buffer size = 4293918720 bytes
Writing 4095 MB to global memory ...
Allocated 1073741824 Bytes host buffer for large transfers
Write speed: 3232.35 MB/s
Reading and verifying 4095 MB from global memory ...
Verification failure at element 280, expected 118 but read back 15e
First failure at address 1008c0
Verification failure at element 281, expected 119 but read back 189
Verification failure at element 282, expected 11a but read back 199
......
Suppressing error output, counting# of errors ...
Read speed: 3232.59 MB/s
Failed write/readback test with 104652 errors
Error: Global memory test failed
Error code: 0
aocl diagnose: failed.
I am totally confused now...... Thanks for your help! --- Quote Start --- "Placement cannot find a legal solution" usually means that you need some resource (RAM, DSP, etc.) on the FPGA, but that resource has been fully used and there is nothing else left. The closest thing I could find to a meaningful error message in the log was this: Error (17937): The inputs to the LAB at location (68,69) exceed the number of legal inputs. This LAB may be locked or have other LAB-level input restrictions. Refer to the submessage(s) for the specific input nodes that do not fit in the LAB. Remove some inputs to this LAB so the number of inputs does not exceed the legal limit. File: c:/intelfpga_pro/16.1/quartus/libraries/megafunctions/altera_counter.sv Line: 59
But I had personally never seen such message before; the message that is printed in the log when you overutilize the Block RAMs is different. Can you please retry the compilation after updating to 16.1.2 and see what happens? Also please add --report to your compilation log and post the area estimation that you receive in stdout after adding that switch. --- Quote End ---
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- --------------------Update-------------------- My DSP package do not support 16.1.2 and higher version, this is the reason that the strange errors occured. --- Quote End --- DSP or BSP? It seems you are using Altera's Arria 10 devkit; the BSP for that board is updated with every version of Quartus and is included in the package itself. There should be no need to use an older version of Quartus/AOC.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am using Speed-clouds hardware acceleration platform with arria10. According to the manual, I have to replace a10gx\hardware folder with another folder that Speed-Clouds provided, or the .aocx do not fit my board.
But the errors occured again: 1. Sometimes the diagnosis passed, and sometimes failed with the mismatch of writing and readback. 2. I try to ignore diagnosis and program with host code, There is still a mmd error: can't load the windriver library. and the procedure still executed with the error. Sometimes it fails to create program with binary, it shows "error: cl_invalid_binary". But sometimes the board works well with the mmd error.The result of diagnosis and jobs is random, reboot seems do not solve any problems. I am wondering if there are some hardware fault occured? Thanks for ur help ! --- Quote Start --- DSP or BSP? It seems you are using Altera's Arria 10 devkit; the BSP for that board is updated with every version of Quartus and is included in the package itself. There should be no need to use an older version of Quartus/AOC. --- Quote End ---
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Only the hardware folder? That sound strange. I think they should also correct timing settings in the PCI-E driver and provide their own driver.
What you describe can have two explanations: - There is something wrong with the BSP or the PCI-E driver. - The FPGA board's memory is problematic. Based on what you describe, I see the former as the more likely reason.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I try to find where the windriver library is but failed. Do u have any idea about this issue?
Many thanks.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
"windriver" sounds like the OS is windows. I have never used Windows for this particular work. If the OS is NOT Windows, then there must be something seriously wrong with the BSP they have provided you with.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I've solved this problem with the Intel FPGA SDK for OpenCL Custom Platform Toolkit User Guide, section 1.4.4. I checked register key named HKEY_LOCAL_MACHINE\SOFTWARE\Altera\OpenCL\Board and deleted the redundant item that added by another version of Quartus. The MMD ERROR disappeared.
--- Quote Start --- "windriver" sounds like the OS is windows. I have never used Windows for this particular work. If the OS is NOT Windows, then there must be something seriously wrong with the BSP they have provided you with. --- Quote End ---- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The FPGA board's memory is problematic.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page