cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Newbie
Newbie
313 Views
Registered: ‎04-26-2020

How to configure data layout across multiple HBM channels?

Jump to solution

I want to use the HBM on Alveo U280. The provided examples show that we can explicitly bind one array to one HBM channel. So if we want to use multiple channels to store one array, we need to manually partition the array.

My question is: can we bind one array to multiple channels? If so, what is the default data layout across multiple channels? Can we configure it?

Thanks!

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Xilinx Employee
Xilinx Employee
241 Views
Registered: ‎10-19-2015

Hi @Yuwei

At this time, XRT is unable to allocate a buffer larger than 256MB when using the HBM. This is because the system treats the HBM like non-contiguous memory spaces. The hardware would allow for larger buffers, and this feature is coming in a future XRT update. 

However, at this time, you must break up your array into smaller blocks. The AXI switch in front of the HBM is physically wired to allow any master port to access any of the pseudo channels data. You could potentially write your RTL kernel to take advantage of this. 

My question is: can we bind one array to multiple channels? If so, what is the default data layout across multiple channels? Can we configure it?

Right now the answer is no, not directly. 

Regards,

M

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

View solution in original post

Tags (3)
2 Replies
Highlighted
Xilinx Employee
Xilinx Employee
242 Views
Registered: ‎10-19-2015

Hi @Yuwei

At this time, XRT is unable to allocate a buffer larger than 256MB when using the HBM. This is because the system treats the HBM like non-contiguous memory spaces. The hardware would allow for larger buffers, and this feature is coming in a future XRT update. 

However, at this time, you must break up your array into smaller blocks. The AXI switch in front of the HBM is physically wired to allow any master port to access any of the pseudo channels data. You could potentially write your RTL kernel to take advantage of this. 

My question is: can we bind one array to multiple channels? If so, what is the default data layout across multiple channels? Can we configure it?

Right now the answer is no, not directly. 

Regards,

M

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

View solution in original post

Tags (3)
Highlighted
Newbie
Newbie
236 Views
Registered: ‎04-26-2020
Thanks!
0 Kudos