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



我编写了一个简单的内核,可以对树执行递归:

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内存对象具有过载)将其传递给内核。

最新更新