Application Acceleration With FPGAs
Programmable Acceleration Cards (PACs), DCP, DLA, Software Stack, and Reference Designs
Announcements
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
424 Discussions

Seems that aocl (openCL ) can't recognize "__prefetching_load" attribute in aocl 19.2??

zjinf
New Contributor I
534 Views

Hi inteler

Environment: centos 7.5

aocl verison: 19.2.0.57

 

 

 1 error: implicit declaration of function '__prefetching_load' is invalid in OpenCL                                                                      

 2                probe_buf[b].vector[s].data[i] = __prefetching_load(&probe[p   robe_in_addr++]);

 

 

from the error hint, it seems that the openCL can't recognize "__prefetching_load" , but it shows on "Intel FPGA SDK for openCL pro edition best practices guide 19.2", it can found similar usage! Dose it need any other compile command???

 

0 Kudos
5 Replies
MEIYAN_L_Intel
Employee
321 Views

Hi,

This is an uncommon issues, I need to check internally with this issues.

Can you try to compile the simple example code in Chapter 1.3 as link below:

https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/opencl-sdk/aocl-best-pra...

Thanks

zjinf
New Contributor I
321 Views

HI Mylee

i run the chapter chapter 1.3 case ,still wrong:

 

aoc: Environment checks are completed successfully.                                                                                                                                                        

aoc: Cached files in /var/tmp/aocl/iot may be used to reduce compilation time

You are now compiling the full flow!!

aoc: Selected target board a10gx

aoc: Running OpenCL parser....

/home/iot/work_example/tmp/prefetch/test.cl:11:35: error: implicit declaration of function '__prefetching_load' is invalid in OpenCL

                       sum[k] += __prefetching_load(&a[j]);

 

 

 

 

 

HRZ
Valued Contributor II
321 Views

I think the possibility to control the LSU type was added in v19.3 and is not [fully] supported in v19.2. Only the guide from v19.3 has the "Controlling the Load-Store Units" section. The example in Section 1.3 of the v19.2 guide is probably a documentation error that mistakenly introduces an unreleased feature.

MEIYAN_L_Intel
Employee
321 Views

Hi,

I will need some time to check internally about this issue.

Thanks

MEIYAN_L_Intel
Employee
321 Views

Hi,

The __prefetching_load() builtin is only available for the OpenCL SDK version 19.3 onward. A simple work around for 19.2 would be to replace

  sum[k] += __prefetching_load(&a[j]);

with

  sum[k] += a[j];

 

The old version of this code can be found here https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/opencl-sdk/archives/aocl... in Chapter 1.3.

 

There is an documentation error in 19.2 version which use _prefetching_load which is wrong.

 

I had reported to the team about the documentation error as well.

 

Thanks

Reply