Intel® High Level Design
Support for Intel® High Level Synthesis Compiler, DSP Builder, OneAPI for Intel® FPGAs, Intel® FPGA SDK for OpenCL™
公告
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
723 讨论

Scatter-updates to global memory and false sharing

Björne2
新手
2,069 次查看

I have an array of unique indexes. Let's call it I. So e.g I = {3, 9, 15, 22, 23, 24, ...}. I want to update all elements of a global float buffer G matching those indexes. Like this:

 

for (int i = 0; i < n; i++) {

    G[I[i]] += 123.4;

}

 

If all indexes in I are unique, is it ok to use #pragma ivdep on the loop, or will that lead to false sharing problems? The reason I ask is because as the attached screenshot shows the loop has an II of 338 which is terrible. I suspect that #pragma ivdep is not ok here, but I'm unsure of why. If #pragma ivdep is not ok are there other ways to avoid the terrible high II?

0 项奖励
6 回复数
Björne2
新手
2,055 次查看

Just to clarify what I mean by false sharing. If I have the loop iterations G[3] += 123.4;  and G[4] += 123.4; they "should" be independent. But perhaps if the indexes 3 and 4 refer to the same page these updates could nevertheless interfere with each other.

0 项奖励
aikeu
员工
2,027 次查看

Hi Björne2,


Are your question related to OneAPI?


Thanks.

Regards,

Aik Eu


0 项奖励
Björne2
新手
2,013 次查看

Maybe a little but it is more about how writes to DDR are implemented on Intel FPGAs.

0 项奖励
aikeu
员工
2,000 次查看

Hi Björne2,


Probably this link below may help to answer some of your question.

https://www.youtube.com/watch?v=1zGpN28mXN4


Thanks.

Regards,

Aik Eu


0 项奖励
aikeu
员工
1,940 次查看

Hi Björne2,


I will close the thread if no further question.


Thanks.

Regards,

Aik Eu


0 项奖励
aikeu
员工
1,906 次查看

Hi Björne2,


I am closing the thread for now as we do not receive any response from you on the previous question/reply/answer that we have provided. Please login to ‘https://supporttickets.intel.com’, view details of the desire request, and post a feed/response within the next 15 days to allow me to continue to support you. After 15 days, this thread will be transitioned to community support. The community users will be able to help you on your follow-up questions.


Thanks.

Regards,

Aik Eu


0 项奖励
回复