OpenCL: OpenCL Specification: Difference between revisions
Created page with "'''OpenCL Specification''' adalah semacam rulebook dan kontrak yang bilang: * Host harus ngapain?? * Device harus gimana?? * kernel jalan dengan aturan gimana?? Jadi '''OpenCL Specification''' itu seperti standar resmi seperti: * HTTP spec buat web * POSIX spec buat OS * x86 spec buat CPU Karena OpenCL itu lintas vendor + hardware dan bisa kacau kalau Nvidia, AMD, Intel, dll punya cara masing-masing. Oleh karena itu dibuat aturan main yaitu '''OpenCL Specification'''" |
No edit summary |
||
| Line 7: | Line 7: | ||
* POSIX spec buat OS | * POSIX spec buat OS | ||
* x86 spec buat CPU | * x86 spec buat CPU | ||
Karena OpenCL itu lintas vendor + hardware dan bisa kacau kalau Nvidia, AMD, Intel, dll punya cara masing-masing. Oleh karena itu dibuat aturan main yaitu '''OpenCL Specification''' | Karena OpenCL itu lintas vendor + hardware dan bisa kacau kalau Nvidia, AMD, Intel, dll punya cara masing-masing. Oleh karena itu dibuat aturan main yaitu '''OpenCL Specification'''. Lalu OpenCL Specification ini dibagi menjadi empat model | ||
== 1. Platform Model == | |||
Ini bagian yang menentukan hirarki kerjanya. | |||
* Host: Biasanya itu CPU. Dia adalah "Manajer" yang pegang kendali. | |||
* Devices: Ini adalah "Karyawan" (kayak GPU atau prosesor lain). | |||
Tujuannya: Host akan ngasih tugas ke Device buat buat menjalankan kode khusus yang namanya Kernels. Di OpenCL, CUDA, dll Kernel adalah code yang dijalankan di device, jadi bukan kernel di OS. | |||
== 2. Execution Model == | |||
Yang menentukan SOP, bagaimana host (CPU) mengatur environtment kerja OpenCL | |||
* mengatur mekanisme komunikasi antara host dan devices | |||
* Concurrency Model: OpenCL akan memecah tugas yang besar menjadi potongan-potongan kecil yang disebut ''Work-items'' (pekerja individu) yang dikumpulkan dalam Work-groups (tim pekerja). Jadi, ribuan tugas bisa jalan berbarengan dalam satu waktu. | |||
== 3. Kernel programming model === | |||
Model ini mengatur bagimana code kernel yang udah kita tulis itu dipetakan ke perangkat keras yang asli. Ini adalah jembatan antara bahasa pemrograman yang kita tulis dengan cara chip fisik bekerja di lapangan. | |||
== 4. Memory Model == | |||
Mengatur bagaimana data disimpan | |||
* Global Memory: Bisa diakses semua orang. | |||
* Local Memory: Cuma bisa diakses satu tim (Work-group). | |||
* Private Memory: Cuma buat satu pekerja (Work-item). | |||
Revision as of 07:35, 7 January 2026
OpenCL Specification adalah semacam rulebook dan kontrak yang bilang:
- Host harus ngapain??
- Device harus gimana??
- kernel jalan dengan aturan gimana??
Jadi OpenCL Specification itu seperti standar resmi seperti:
- HTTP spec buat web
- POSIX spec buat OS
- x86 spec buat CPU
Karena OpenCL itu lintas vendor + hardware dan bisa kacau kalau Nvidia, AMD, Intel, dll punya cara masing-masing. Oleh karena itu dibuat aturan main yaitu OpenCL Specification. Lalu OpenCL Specification ini dibagi menjadi empat model
1. Platform Model
Ini bagian yang menentukan hirarki kerjanya.
- Host: Biasanya itu CPU. Dia adalah "Manajer" yang pegang kendali.
- Devices: Ini adalah "Karyawan" (kayak GPU atau prosesor lain).
Tujuannya: Host akan ngasih tugas ke Device buat buat menjalankan kode khusus yang namanya Kernels. Di OpenCL, CUDA, dll Kernel adalah code yang dijalankan di device, jadi bukan kernel di OS.
2. Execution Model
Yang menentukan SOP, bagaimana host (CPU) mengatur environtment kerja OpenCL
- mengatur mekanisme komunikasi antara host dan devices
- Concurrency Model: OpenCL akan memecah tugas yang besar menjadi potongan-potongan kecil yang disebut Work-items (pekerja individu) yang dikumpulkan dalam Work-groups (tim pekerja). Jadi, ribuan tugas bisa jalan berbarengan dalam satu waktu.
3. Kernel programming model =
Model ini mengatur bagimana code kernel yang udah kita tulis itu dipetakan ke perangkat keras yang asli. Ini adalah jembatan antara bahasa pemrograman yang kita tulis dengan cara chip fisik bekerja di lapangan.
4. Memory Model
Mengatur bagaimana data disimpan
- Global Memory: Bisa diakses semua orang.
- Local Memory: Cuma bisa diakses satu tim (Work-group).
- Private Memory: Cuma buat satu pekerja (Work-item).