如何留存OpenCL核函数结果于设备内存,无需回传主机供其他核复用?
OpenCL设备内存复用问题求助
我的应用里包含两个OpenCL核函数:
__kernel void set_decomposition_key( __global const double* values_ref, __global const double* decomposition_results_ref, __global double* decomposition_keys) { /* 核心逻辑,计算结果存入decomposition_keys */ } __kernel void decompose( __global const double* values, __global const double* decomposition_keys, __global double* decomposition_results) { /* 核心逻辑,基于输入和decomposition_keys生成结果 */ }
set_decomposition_key()只在应用启动时执行一次,计算结果会写入decomposition_keys;主核函数decompose()需要循环执行完成实时运算,它必须使用decomposition_keys中存储的第一个核函数的结果作为输入参数。
我希望让decomposition_keys直接留存于OpenCL设备内存中,无需回传至主机后再重新传递给decompose()核函数,但自行尝试多次均未成功,此前参考过相关方案也无效,恳请提供可行的解决方法。
内容的提问来源于stack exchange,提问作者Irimitlad
相关产品推荐
相关产品推荐

