如何解决在 OpenCL英特尔 FPGA中声明 LUT 的最佳方式
我需要在 OpenCL 内核中声明三个 LUT,因此:
在英特尔 OpenCL FPGA 中声明 LUT 的最佳方法是什么?
我看过有关此的示例,但在示例中他们使用了 switch/case
结构。我认为最好的方法是为每个 LUT 声明一个数组,如下例所示(示例取自:how to declare a constant array of float2 vectors?):
__constant float2 foo[2] = {1.0f,0.0f};
解决方法
如果您不能直接寻址 LUT 数组中的元素,即如果您的查找位置不遵循 -subCacheIval
,您只需要 switch/case
。将 LUT 实现为数组并使用 0,1,2,...,N
进行直接寻址更优雅。
如果 LUT 足够小并且您只需要在一个地方使用它,您可以将它放在内核中的 foo[position];
内存空间中。如果LUT较大(超过几百个条目),则需要转向private
内存空间;元素访问保持不变。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。