1

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

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

所以我想将这些指向自己的树项数组传递给opencl内核,而SVM似乎是最好的方法(我对opencl 2.0没有问题)。

我的问题是如何使用 boost::compute 来做到这一点,以便内核将接收整数的三倍或类似的东西。

谢谢!

4

1 回答 1

1

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

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

于 2015-05-28T02:53:46.020 回答