Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16638 Discussions

Heterogeneous Memory Banks in AOCL 13.1

Altera_Forum
Honored Contributor II
1,175 Views

As stated both in the Altera SDK for OpenCL Programming Guide, and also in the Optimization Guide, explicit definition of the global memory type where we want a specific buffer to reside in is a beta feature of the AOCL 13.1. 

Following the guides, I tried both defining the preprocessor macros... 

# define QDR 

__global 

__attribute__((buffer_location("QDR"))) 

 

__kernel void foo (QDR uint * data, ... 

 

... and also using the __attribute__ in the argument itself, but to no avail. The parser generates the following error: 

 

error: string passed to buffer location attribute is not a valid memory location. The board specification defines available memories as: 

 

__global __attribute__((buffer_location("QDR"))) float2 *restrict foo) 

--------------------------------------^ 

 

1 error generated. 

Error: OpenCL parser FAILED. 

 

 

Running the aocl version command confirms that I'm using version 13.1.162 of the compiler, so I ask, am I doing anything wrong? Did I miss a step?
0 Kudos
6 Replies
Altera_Forum
Honored Contributor II
450 Views

I suspect you are using a board that doesn't support this. In order to use heterogeneous memory you need to have a board that contains multiple memory types as well as the board vendor needs to provide hardware files to enable the support. So the compiler is saying "what QDR memory?" because the vendor board files are not telling it that there is a "QDR" memory on the board. So you are not doing anything wrong, it's just the board hardware files lack support what you are requesting. There are OpenCL boards that have multiple memory types on them so it's just a matter of the board vendors to enable those additional memories.

0 Kudos
Altera_Forum
Honored Contributor II
450 Views

Following your reply, I checked the vendor's specifications (Nallatech PCIe-385 d5), and verified that the board does feature QDR memory! 

 

Many thanks! ;)
0 Kudos
Altera_Forum
Honored Contributor II
450 Views

That's correct, it has QDR memory on the card but I don't think the board support files have added support for it. I would check with Nallatech to see if they have an update to add QDR support for the D5 card.

0 Kudos
Altera_Forum
Honored Contributor II
450 Views

Dose anyone successfully use QDR memory for the OpenCL code?

0 Kudos
Altera_Forum
Honored Contributor II
450 Views

Hi, 

 

the PCIe-385N board does NOT feature QDR SRAM. 

http://www.nallatech.com/pci-express-fpga-cards/pcie-385n-altera-stratix-v-fpga-computing-card.html 

 

It has 2 banks of DDR3 SDRAM which is used for global memory when using OpenCL SDK. 

 

Thanks
0 Kudos
Altera_Forum
Honored Contributor II
450 Views

Thanks for the update gigi, I forgot about this post after I learned that there is not any QDR on it like I originally thought there was.

0 Kudos
Reply