Rangka Kerja OpenCL: Betul untuk Anda?

Pendedahan: Sokongan anda membantu mengekalkan laman web ini! Kami memperoleh bayaran rujukan untuk beberapa perkhidmatan yang kami cadangkan di halaman ini.


OpenCL, atau Open Computing Language, adalah kerangka perisian yang dirancang secara eksklusif untuk membangun aplikasi yang dapat dijalankan di berbagai sistem komputer. Ini adalah standard terbuka untuk mengembangkan aplikasi pengaturcaraan selari platform, yang mempunyai sejumlah implementasi sumber terbuka.

Pada dasarnya, OpenCL dikembangkan untuk membolehkan pengkod membuat aplikasi yang dapat dijalankan di mana-mana peranti, tanpa mengira pengeluar, spesifikasi pemproses, unit grafik, atau komponen perkakasan lain. Ini bermaksud pembangun boleh membina aplikasi di PC Windows mereka dan ia akan berfungsi dengan baik pada telefon Android, komputer Mac OS X, atau peranti pemprosesan selari yang lain. Dengan syarat, tentu saja, semua peranti ini menyokong OpenCL dan melaksanakan perpustakaan penyusun dan runtime yang sesuai.

Bahasa pengaturcaraan yang digunakan untuk mengembangkan aplikasi OpenCL adalah OpenCL C, yang berdasarkan pada C99 (definisi rasmi sebelumnya untuk bahasa pengaturcaraan C). OpenCL C dapat memprogram berbagai perkakasan dan peranti, termasuk CPU, GPU, dan akselerator perkakasan.

Sejarah

OpenCL pertama kali dikembangkan oleh Apple Inc, dan kemudian diperhalusi dengan input dari beberapa pembangun perkakasan utama dan dicadangkan kepada organisasi bukan untung, Khronos Group. Kumpulan Khronos mewujudkan jawatankuasa standard terbuka dengan penyertaan aktif dari beberapa vendor teknologi utama untuk menyelesaikan standard OpenCL.

Piawaian teknikal dimuktamadkan pada akhir tahun 2008, dan pada tahun 2009 Apple mengeluarkan OpenCL 1.0 dengan Mac OS X Snow Leopard mereka. Sepanjang tahun 2008 dan 2009, OpenCL secara rasmi dipeluk oleh AMD, NVIDIA, dan IBM.

Beberapa ciri dan penyempurnaan baru diperkenalkan pada tahun 2010 dan 2011, dan pada tahun 2013 OpenCL 2.0 dilancarkan, yang meliputi, antara lain, sokongan untuk memori maya bersama, paralelisme bersarang, dan pelanjutan pemacu pelanggan untuk Android. Keluaran seterusnya pada tahun 2015, Open CL 2.1, menggantikan bahasa kernel OpenCL C dengan OpenCL C++.

Sumber Dalam Talian

Sebagai kerangka baru yang dirancang untuk salah satu tren terbesar dalam pengaturcaraan komputer hari ini, dan menjadi sumber terbuka, tidak menghairankan bahawa OpenCL mempunyai komuniti pengguna dan mentor yang besar dan beraktiviti.

  • Halaman Sumber Khronos: Kumpulan Khronos, yang bertanggungjawab menjaga OpenCL, telah mengumpulkan banyak sumber untuk pembangun, termasuk maklumat mengenai pelaksanaan yang berbeza, pengikatan bahasa, dan banyak perpustakaan dan kerangka kerja yang tersedia untuk pengaturcara OpenCL. Laman web yang sama ini juga merangkumi senarai latihan dan panduan dalam talian yang luas.
  • Kad Rujukan: helaian rujukan berguna ini mengandungi semua yang anda perlukan untuk diprogramkan dalam OpenCL, termasuk panduan API, rajah kelas, perintah memori maya bersama, dan senarai objek program yang tersedia, jenis data, fungsi bawaan, dan banyak lagi.
  • Intel OpenCL Forums: laman forum ini kebanyakan dikunjungi oleh pembangun OpenCL yang mapan mencari nasihat pengaturcaraan, membincangkan amalan terbaik, dan berkongsi idea.

Tutorial

Terdapat beberapa tutorial dalam talian yang tersedia untuk OpenCL, ada yang dibuat oleh komuniti sumber terbuka, yang lain dikembangkan oleh banyak pengeluar perkakasan yang menyumbang kepada standard OpenCL. Oleh kerana OpenCL adalah alat pengaturcaraan lanjutan, kebanyakan dari mereka menganggap pengalaman sebelumnya dengan pengembangan aplikasi dan, biasanya, pengetahuan tentang C / C++.

  • Tutorial OpenCL CodeProject: siri tutorial dalam talian ini memberikan latar belakang yang luas ke dalam projek OpenCL, panduan untuk memasang perisian yang sesuai untuk membolehkan pengembangan OpenCL, dan pelajaran individu untuk semua bidang utama pengaturcaraan OpenCL. Ini merangkumi beberapa contoh dan pautan tambahan untuk maklumat latar belakang.
  • CMSoft OpenCL Tutorial: CMSoft menawarkan tutorial OpenCL umum dan satu siri kajian kes yang dirancang untuk merangkumi sejumlah projek khusus, termasuk pelaksanaan algoritma penyaringan foto umum yang akan berfungsi pada GPU yang serasi dengan OpenCL, warna pelacakan dalam video, dan bagaimana menggunakan GPU untuk mengalikan matriks.
  • Tutorial Pengenalan OpenCL: dibuat oleh arkitek perkakasan di AMD, tutorial ini ditulis untuk pengaturcara OpenCL baru dan memandu mereka melalui asas-asas OpenCL, sambil memberikan banyak contoh pengekodan.

Buku

Sebagai kerangka kerja yang agak baru, hanya terdapat sebilangan kecil buku di OpenCL, dan banyak daripadanya ditulis sebelum versi semasa, yang bermaksud tidak akan merangkumi beberapa ciri terbaru yang tersedia untuk pembangun. Walau bagaimanapun, bahkan teks lama memberikan gambaran keseluruhan yang baik mengenai kerangka dan penggunaannya. Pengenalan mengenai perkembangan terkini dapat diperoleh dengan mudah melalui banyak sumber dalam talian yang disenaraikan di atas.

  • Pengkomputeran Heterogen dengan OpenCL 2.0 oleh David Kaeli, et al: teks ini bertujuan untuk merangkumi kedua-dua standard OpenCL dan konsep umum pengaturcaraan selari. Ia meneroka topik-topik seperti memori maya bersama, teknik pengoptimuman, penyahpepijatan, dan cara mengedarkan kerja di pelbagai sistem komputer. Ia merangkumi beberapa kajian kes dan juga kod contoh.
  • Panduan Pengaturcaraan OpenCL oleh Munshi, et al: buku ini ditulis khusus untuk pemaju yang berfungsi. Sebagai salah satu buku teks OpenCL terawal, ditulis untuk versi 1.1, ia tidak merangkumi beberapa peningkatan terkini. Walau bagaimanapun, ia masih memberikan gambaran keseluruhan yang berkesan mengenai seni bina dan terminologi OpenCL, ciri pengaturcaraan asas, dan tutorial bahasa untuk OpenCL C. Teks ini juga merangkumi beberapa kajian kes, contoh, dan kod sumber dalam talian.
  • Buku Panduan Pengembangan Pemrograman Sejajar OpenCL oleh Raymond Tay: teks ini menggunakan pendekatan bahawa untuk mempelajari bahasa dengan berkesan, anda perlu memahami teori di sebalik itu dan aplikasi praktikal. Ia memecah pembelajaran menjadi dua bahagian. Separuh pertama buku ini merangkumi asas-asas OpenCL dan pengaturcaraan selari. Babak kedua adalah penerokaan algoritma utama yang menunjukkan teknik pengaturcaraan selari yang berbeza.
  • Pengaturcaraan OpenCL oleh Contoh oleh Banger dan Bhattacharyya: Buku ini bertujuan untuk menjadi panduan “mudah” untuk pengaturcaraan OpenCL, menggunakan contoh yang sangat sederhana untuk menunjukkan konsep utama pengaturcaraan selari dan OpenCL.

Kesimpulannya

Dua puluh tahun yang lalu, ketika sebagian besar pengguna komputer semua menjalankan sistem operasi yang sama dan adegan CPU / GPU dikuasai oleh hanya segelintir kecil syarikat, memiliki kemampuan untuk memprogram di beberapa platform adalah kemewahan yang kebanyakan kita tidak lakukan ” perlu. Tetapi dengan pelancaran teknologi mudah alih dan kebangkitan Apple dan Android, tidak mungkin kita akan melihat mana-mana pengeluar memegang tahap pangsa pasar lagi tidak lama lagi. Sebaliknya, pembangun perisian perlu menyesuaikan diri dengan persekitaran yang heterogen pada masa kini.

OpenCL adalah langkah utama dalam peralihan itu. Daripada pengaturcaraan untuk setiap pemboleh ubah teknologi, pembangun dapat membuat kod yang menjangkau seluruh platform. Satu bahasa, satu kerangka, satu lingkungan, untuk memprogram beberapa spesifikasi perkakasan dan perisian.

Bacaan dan Sumber Lanjut

Kami mempunyai lebih banyak panduan pengaturcaraan, tutorial, dan infografik yang berkaitan dengan pengekodan dan sumber pembangun:

  • Sumber Pembangun C: mulakan dan pindah ke bidang lanjutan pengaturcaraan C.
  • Pengenalan Cocoa dan Cocoa Touch: pelajari API untuk membuat aplikasi untuk Mac OS X dan iOS.
  • Pengenalan Java, Cara Belajar, dan Sumber: tersedia di kebanyakan peranti, Java adalah bahasa yang bagus jika anda ingin membuat kod untuk sebilangan besar platform.

Kod Apa yang Perlu Anda Pelajari?
Kod Apa yang Perlu Anda Pelajari?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me