Altera_Forum
Honored Contributor
9 years agoastonishing facts about aocl compiler : vector_add -> No DSP used, y[i]=x[i] comp er
There are some facts about the AOCL compiler i find astonishing.
aocl version 16.0.2.222, Quartus the same, 10AX115N3F40E2SG on Nallatech board pci385a and bsp. 1) the result of the compilation of the vector_add example is that no DSP is utilized and in fact performance is terrible ; Resource + Usage ; +----------------------------------------+---------------------------+ ; Logic utilization ; 10% ; ; ALUTs ; 4% ; ; Dedicated logic registers ; 6% ; ; Memory blocks ; 10% ; ; DSP blocks ; 0% ; why that ? 2) the compilation of this simple vector copy fails with compiler error : ---------------------- riinout.cl --------------------------------------- __kernel void riinout( __global const float *x, __global float *restrict y) { // get index of the work item int index = get_global_id(0); y[index] = x[index]; } --------------------------------------------------------------------------- $ aoc device/riinout.cl -o bin/riinout.aocx /media/sda1/home/nallatech/aocl/examples/riinout/riinout/device/riinout.cl:3:46: warning: declaring kernel argument with no 'restrict' may lead to low kernel performance __kernel void riinout( __global const float *x, ^ 1 warning generated. Error: Compiler Error, not able to generate hardware ---------------------------- quartus_sh_compile.log--------------------------- Info: Initializing Spectra-Q Synthesis... Info: Project = "top" Info: Revision = "top_synth" Warning (125092): Tcl Script File board/board.qip not found Info (125063): set_global_assignment -name QIP_FILE board/board.qip Info: qis_default_flow_script.tcl version:# 1 Info: Initializing Spectra-Q Synthesis... Info: Project = "top" Info: Revision = "top_synth" Info (16303): High Performance Effort optimization mode selected -- timing performance will be prioritized at the potential cost of increased compilation time Info (16303): High Performance Effort optimization mode selected -- timing performance will be prioritized at the potential cost of increased compilation time *** Fatal Error: Segment Violation at (nil) Module: quartus_syn Stack Trace: 0x60a43: google::protobuf::FileDescriptorTables::~FileDescriptorTables() + 0x33 (protobuf.so.8) 0x35e7d: __cxa_finalize + 0x9d (c.so.6) 0x35ae2: exit + 0xe2 (c.so.6) 0x1ed24: __libc_start_main + 0x104 (c.so.6) End-trace Error (114016): Out of memory in module quartus_syn (1671 megabytes used) *** Fatal Error: Segment Violation at (nil) Module: quartus_syn Stack Trace: 0x60a43: google::protobuf::FileDescriptorTables::~FileDescriptorTables() + 0x33 (protobuf.so.8) 0x35e7d: __cxa_finalize + 0x9d (c.so.6) 0x35ae2: exit + 0xe2 (c.so.6) 0x1ed24: __libc_start_main + 0x104 (c.so.6) End-trace Error (114016): Out of memory in module quartus_syn (1677 megabytes used) *** Fatal Error: Segment Violation at (nil) Module: quartus_syn Stack Trace: 0x60a43: google::protobuf::FileDescriptorTables::~FileDescriptorTables() + 0x33 (protobuf.so.8) 0x35e7d: __cxa_finalize + 0x9d (c.so.6) 0x35ae2: exit + 0xe2 (c.so.6) 0x1ed24: __libc_start_main + 0x104 (c.so.6) End-trace Error (114016): Out of memory in module quartus_syn (1688 megabytes used) Error: Failed to synthesize partition Info: Saving post-synthesis snapshots for 1 partition(s) *** Fatal Error: Segment Violation at (nil) Module: quartus_syn Stack Trace: 0x60a43: google::protobuf::FileDescriptorTables::~FileDescriptorTables() + 0x33 (protobuf.so.8) 0x35e7d: __cxa_finalize + 0x9d (c.so.6) 0x35ae2: exit + 0xe2 (c.so.6) 0x1ed24: __libc_start_main + 0x104 (c.so.6) End-trace -------------------------------------------------------------------------------------- Any answer ? thanks roberto