Java:将多维数组转换或引用为一维数组

标签 java parallel-processing opencl gpgpu jocl

我有一个用Java编写的程序,其中涉及大量的多维数组。我正在尝试使用 JOCL (OpenCL) 对其进行并行化,但多维数组必须先转换为单维数组,然后再传递给 OpenCL。

除了用一维数组重写整个程序之外,还有其他解决办法吗?

最佳答案

以下是当我有多维数组时我在 C++ 中所做的操作:

for (int i = 0 ; i < n ; i++) {
    queue.enqueueWriteBuffer(buffer, CL_FALSE, i*m*sizeof(int), m*sizeof(int), data[i]);
}

当我需要阅读时也是如此,只是要小心你的内核和索引。

你不能在 Java 中做同样的事情吗?

关于Java:将多维数组转换或引用为一维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11756750/

相关文章:

ubuntu - 将 optirun 和 g++ 设置为编译器以在 Ubuntu 中编译 OpenCL

python - PyOpenCL 2D 数组内核 get_global_id(1) 错误

java - Mysql 更新似乎有效,但抛出语句关闭错误

java - 通过 selenium webdriver sendKeys() 输入的数据未注册

parallel-processing - MMap 和 SharedArray

delphi - Delphi 中整数读取是原子的吗?

java - 使用初始化的字符串初始化匹配器,得到 NullPointerException

java - 在 Spring MVC 应用程序中将 DAO 对象转换为 DTO 对象

c# - 最多有 N 个线程按 FIFO 顺序执行的代码部分

pointers - Intel HD Graphics 是否违反了有关 SVM 的 OpenCL 规范?