Jump to content

OpenCL: 2D Array: Difference between revisions

From Haidhi Wiki
No edit summary
No edit summary
Line 1: Line 1:
Untuk memproses array 2D di OpenCL, kita perlu nge-flatten array 2D itu jadi 1D. Bahkan mau sampai 100D tetap perlu di-flatten ke 1D. Jadi teknik untuk memproses data yang lebih dari 1D adalah dengan cara '''Indexing'''
Untuk memproses array 2D di OpenCL, kita perlu nge-flatten array 2D itu jadi 1D. Bahkan mau sampai 100D tetap perlu di-flatten ke 1D. Jadi teknik untuk memproses data yang lebih dari 1D adalah dengan cara '''Indexing'''


Misal kita buat array gini
Contoh grid 3×4 (H=3, W=4):
<syntaxhighlight lang=cpp>
[[File:3x4 grid.png|700px|]]
const int W = 4;
const int H = 3;
 
std::vector<float> a(W * H);
std::vector<float> b(W * H);
std::vector<float> c(W * H);
   
// isi data
for (int y = 0; y < H; y++) {
    for (int x = 0; x < W; x++) {
        a[y * W + x] = y * 10 + x;
        b[y * W + x] = 1.0f;
    }
}
</syntaxhighlight>

Revision as of 07:32, 8 January 2026

Untuk memproses array 2D di OpenCL, kita perlu nge-flatten array 2D itu jadi 1D. Bahkan mau sampai 100D tetap perlu di-flatten ke 1D. Jadi teknik untuk memproses data yang lebih dari 1D adalah dengan cara Indexing

Contoh grid 3×4 (H=3, W=4):