OpenCL: 2D Array: Difference between revisions
Appearance
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''' | ||
Contoh grid 3×4 (H=3, W=4): | Contoh grid 3×4 (H=3, W=4): <br> | ||
[[File:3x4 grid.png| | [[File:3x4 grid.png|300px|]] | ||
Maka kita perlu flatten ke 1D. Kira-kira gini: <br> | |||
[[File:Flatten grid fix.png|600px|]] | |||
Lalu untuk indexing 2D Array, formula sakti nya adalah | |||
<syntaxhighlight> | |||
idx = y * width + x; | |||
</syntaxhighlight> | |||
Misal kita mau ambil <code>y=1</code>, <code>x=2</code>, dan kita punya 4 kolom (<code>width=4</code>). elemen array yang nilainya 6. | |||
<syntaxhighlight> | |||
idx = y * width + x | |||
idx = 1 * 4 + 2 | |||
idx = 6 | |||
</syntaxhighlight> | |||
Revision as of 07:41, 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
Maka kita perlu flatten ke 1D. Kira-kira gini:
Lalu untuk indexing 2D Array, formula sakti nya adalah
idx = y * width + x;Misal kita mau ambil y=1, x=2, dan kita punya 4 kolom (width=4). elemen array yang nilainya 6.
idx = y * width + x
idx = 1 * 4 + 2
idx = 6