【发布时间】:2018-04-22 22:09:12
【问题描述】:
我想为矩阵乘法实现一个脉动结构。我的目标是为每个处理元素使用一个内核,因此我将从主机部分多次执行相同的内核。
为了在内核之间进行通信,我想使用通道或管道。问题是“频道扩展不支持对频道 ID 数组的动态索引”。内核的数量将取决于矩阵的大小,因此我需要一些方法来自动将通道连接到相应的内核。
总结一下,我正在寻找一种方法来创建这个功能:
channel float c0[32];
__kernel void producer (__global float * data_in){
for(int i=0; i<32; i++){
write_channel_altera(c0[i],data_in[i]);
}
}
__kernel void consumer (__global float * ret_buf){
for(int i=0; i<32; i++){
ret_buf[i]=read_channel_altera(c0[i]);
}
}
提前致谢!
【问题讨论】:
标签: opencl matrix-multiplication channel