我编写了一个简单的内核,它在树上执行递归,如:
struct item {
int data;
item *rnext, *lnext;
} *items[NUM_ITEMS];
所以我想传递一些指向opencl内核的树项目数组,SVM似乎是最好的方法(我没有问题依赖opencl 2.0)。
我的问题是如何使用boost :: compute这样做,以便内核将获得整数三倍或类似的东西。
谢谢!
答案 0 :(得分:1)
Boost.Compute使用boost::compute::svm_*函数支持共享虚拟内存。
对于您的应用程序,您应该能够只使用svm_alloc()分配SVM内存区域,将其填入输入数据,然后使用常规kernel::set_arg()函数将其传递给内核(它有一个SVM内存对象的重载。)