我编写了一个简单的内核,可以对树执行递归:
struct item {
int data;
item *rnext, *lnext;
} *items[NUM_ITEMS];
所以我想传递这样一组指向自己的树项到opencl内核,而SVM似乎是最好的方法(我没有问题指望opencl 2.0)。
我的问题是如何使用boost::compute这样内核将接收整数三元组或类似的东西。
谢谢!
Compute使用boost:: Compute::svm_*函数支持共享虚拟内存。
对于您的应用程序,您应该能够使用svm_alloc()分配SVM内存的一个区域,用您的输入数据填充它,然后使用常规的kernel::set_arg()函数(该函数对SVM内存对象具有过载)将其传递给内核。