在我的OpenCL程序中,我将最终得到60多个全局内存缓冲区,每个内核都需要能够访问.让每个内核知道每个缓冲区的位置的推荐方法是什么?
缓冲区本身在应用程序的整个生命周期中都是稳定的 - 也就是说,我们将在应用程序启动时分配缓冲区,调用多个内核,然后仅在应用程序端解除分配缓冲区.但是,它们的内容可能会随着内核从它们读/写而改变.
在CUDA中,我这样做的方法是在我的CUDA代码中创建60多个程序范围全局变量.然后,我会在主机上写入我分配到这些全局变量中的设备缓冲区的地址.然后内核将简单地使用这些全局变量来查找它需要使用的缓冲区.
在OpenCL中执行此操作的最佳方法是什么?似乎CL的全局变量与CUDA略有不同,但我无法找到关于我的CUDA方法是否有效的明确答案,如果是的话,如何将缓冲区指针转换为全局变量.如果那不起作用,那么最好的方法是什么呢?
在R中,我在数据帧中有一堆数据,如:
state | zip | value
______|_______|______
CA | 94555 | 18
CA | 94556 | 5
OH | 12345 | 22
OH | 12346 | 10
Run Code Online (Sandbox Code Playgroud)
等等.
我希望在每一行中添加一列,列出该状态的平均"值".
我可以通过" (aggregate(data$value, list(State = data$state), mean))" 获得手段的数据框.这给了我一个50行的数据帧,每个状态一个.但是我需要回到原始数据框并将状态的平均值放在属于该状态的行中.
我该怎么做呢?