如何在Boost :: Compute和自定义内核中使用共享虚拟内存?

时间:2015-05-26 23:10:12

标签: opencl boost-compute

我编写了一个简单的内核,它在树上执行递归,如:

struct item {
    int data;
    item *rnext, *lnext;
} *items[NUM_ITEMS];

所以我想传递一些指向opencl内核的树项目数组,SVM似乎是最好的方法(我没有问题依赖opencl 2.0)。

我的问题是如何使用boost :: compute这样做,以便内核将获得整数三倍或类似的东西。

谢谢!

1 个答案:

答案 0 :(得分:1)

Boost.Compute使用boost::compute::svm_*函数支持共享虚拟内存。

对于您的应用程序,您应该能够只使用svm_alloc()分配SVM内存区域,将其填入输入数据,然后使用常规kernel::set_arg()函数将其传递给内核(它有一个SVM内存对象的重载。)