ICD
Appearance
Dalam OpenCL, ICD merupakan singkatan dari Installable Client Driver. Ini adalah sebuah mekanisme standar yang memungkinkan berbagai implementasi OpenCL dari vendor perangkat keras yang berbeda untuk berjalan bersamaan dalam satu sistem operasi.
Arsitektur ICD
Sistem ICD membagi ekosistem OpenCL menjadi dua komponen utama yang saling bekerja sama:
- ICD Loader (Pemuat ICD): Ini adalah pustaka pusat (berupa file Template:Code di Linux atau Template:Code di Windows) yang dihubungkan langsung ke aplikasi. ICD Loader bertindak seperti "polisi lalu lintas" yang mendeteksi semua driver vendor yang ada di komputer, lalu mengarahkan perintah OpenCL dari aplikasi ke driver perangkat keras yang sesuai.
- Vendor ICD (Driver Vendor): Ini adalah driver komputasi nyata yang disediakan langsung oleh produsen perangkat keras (seperti AMD, NVIDIA, Intel, atau proyek sumber terbuka seperti PoCL) untuk menjalankan perintah pada chip buatan mereka.
Cara ICD Menemukan Driver (Registrasi)
Saat aplikasi OpenCL dijalankan, ICD Loader akan memindai sistem untuk mencari tahu perangkat keras apa saja yang tersedia melalui jalur khusus:
- Pada Sistem Linux / Unix: Loader akan membaca direktori Template:Code. Di dalam folder ini, vendor menaruh file teks sederhana berakhiran Template:Code (contohnya Template:Code). Isi file tersebut hanyalah satu baris teks yang mengarah ke lokasi file pustaka (Template:Code) driver asli mereka.
- Pada Sistem Windows: Loader akan memeriksa Windows Registry pada jalur khusus, seperti:
- Template:Code
- Setiap vendor yang terpasang akan membuat entri registrasi yang mengarah ke file driver (Template:Code) mereka.
Manfaat Utama ICD
- Independensi Vendor: Pengembang perangkat lunak cukup membuat program satu kali. Program tersebut akan langsung mendukung kartu grafis atau prosesor dari merek apa pun tanpa perlu dirombak ulang.
- Komputasi Heterogen: Memungkinkan aplikasi membagi beban kerja komputasi secara bersamaan ke berbagai perangkat keras yang berbeda, misalnya memproses data menggunakan CPU Intel dan GPU NVIDIA secara serentak.
- Peralihan Otomatis (Fallback): Jika sebuah komputer tidak memiliki kartu grafis eksternal yang kuat, aplikasi tetap bisa berjalan dengan beralih secara otomatis ke prosesor utama atau kartu grafis bawaan (integrated) yang terdeteksi oleh ICD Loader.