HSA Untuk Pengembang: Komputasi Heterogen Untuk Massa

Diterbitkan: 2022-03-11

Apa kesamaan pembuat chip seperti AMD, ARM, Samsung, MediaTek, Qualcomm, dan Texas Instruments? Selain kesamaan yang jelas antara raksasa pembuat chip ini, mereka juga merupakan pendiri HSA Foundation. Apa itu HSA, dan mengapa itu membutuhkan fondasi yang didukung oleh industri kelas berat?

Dalam posting ini saya akan mencoba menjelaskan mengapa HSA bisa menjadi masalah besar dalam waktu dekat, jadi saya akan mulai dengan dasar-dasarnya: Apa itu HSA dan mengapa Anda harus peduli ?

HSA adalah singkatan dari Heterogeneous System Architecture, yang terdengar agak membosankan, tapi percayalah, itu bisa menjadi sangat menarik, memang. HSA pada dasarnya adalah seperangkat standar dan spesifikasi yang dirancang untuk memungkinkan integrasi lebih lanjut dari CPU dan GPU pada bus yang sama. Ini bukan konsep yang sama sekali baru; CPU desktop dan SoC seluler telah menggunakan grafik terintegrasi dan menggunakan satu bus selama bertahun-tahun, tetapi HSA membawanya ke tingkat berikutnya.

Beban yang sama, arsitektur yang berbeda: CPU dan GPU unggul dalam tugas yang berbeda. Apa yang terjadi ketika mereka mulai berbagi beban, tanpa masukan pengembang?

Beban yang sama, arsitektur yang berbeda: CPU dan GPU unggul dalam tugas yang berbeda. Apa yang terjadi ketika mereka mulai berbagi beban, tanpa masukan pengembang?
Menciak

Daripada hanya menggunakan bus yang sama dan memori bersama untuk CPU dan GPU, HSA juga memungkinkan dua arsitektur yang sangat berbeda ini bekerja bersama-sama dan berbagi tugas . Ini mungkin tidak terdengar seperti masalah besar, tetapi jika Anda melihat lebih dekat, dan memeriksa potensi efek jangka panjang dari pendekatan ini, itu mulai terlihat sangat "manis" dalam arti teknis.

Oh tidak! Inilah Pengembang Standar Konyol Lainnya yang Harus Diimplementasikan

Iya dan tidak.

Ide berbagi bus yang sama bukanlah hal baru, dan juga bukan ide untuk menggunakan GPU yang sangat paralel untuk tugas komputasi tertentu (yang tidak melibatkan rendering headshots). Ini sudah pernah dilakukan sebelumnya, dan saya rasa sebagian besar pembaca kami sudah familiar dengan standar GPGPU seperti CUDA dan OpenCL.

Namun, tidak seperti pendekatan CUDA atau OpenCL, HSA akan secara efektif mengeluarkan pengembang dari persamaan, setidaknya dalam hal menetapkan beban yang berbeda ke inti pemrosesan yang berbeda. Perangkat keras akan memutuskan kapan harus membongkar perhitungan dari CPU ke GPU dan sebaliknya. HSA tidak seharusnya menggantikan bahasa pemrograman GPGPU yang sudah mapan seperti OpenCL, karena mereka juga dapat diimplementasikan pada perangkat keras HSA.

Itulah inti dari HSA: Seharusnya membuat seluruh proses menjadi mudah, bahkan mulus. Pengembang tidak perlu memikirkan untuk memindahkan perhitungan ke GPU. Perangkat keras akan melakukannya secara otomatis.

Banyak nama besar yang mendukung HSA. Namun, industri kelas berat Intel dan Nvidia tidak ada dalam daftar.

Banyak nama besar yang mendukung HSA. Namun, industri kelas berat Intel dan Nvidia tidak ada dalam daftar.
Menciak

Untuk mencapai ini, HSA harus menikmati dukungan dari beberapa pembuat chip dan vendor perangkat keras. Sementara daftar pendukung HSA sangat mengesankan, Intel secara mencolok absen dari siapa yang sebenarnya dari industri chip ini. Mengingat pangsa pasar Intel di pasar prosesor desktop dan server, ini adalah masalah besar . Nama lain yang tidak akan Anda temukan dalam daftar adalah Nvidia, yang berfokus pada CUDA, dan saat ini merupakan pemimpin pasar komputasi GPU.

Namun, HSA tidak dirancang semata-mata untuk sistem dan aplikasi berkinerja tinggi, pada perangkat keras yang biasanya menggunakan stiker Intel Inside . HSA juga dapat digunakan di perangkat seluler hemat energi, di mana Intel memiliki pangsa pasar yang dapat diabaikan.

Jadi, HSA seharusnya membuat hidup lebih mudah, tetapi apakah itu relevan? Apakah itu akan menangkap? Ini bukan pertanyaan teknologi, tapi masalah ekonomi. Itu akan tergantung pada tangan pasar yang tidak terlihat. Jadi, sebelum kita melanjutkan, mari kita mulai dengan melihat lebih dekat di mana keadaan saat ini, dan bagaimana kita sampai di sini.

Perkembangan HSA, Masalah Tumbuh Gigi, dan Kekhawatiran Adopsi

Seperti yang saya katakan di pendahuluan, HSA bukanlah konsep baru. Ini pada awalnya dibayangkan oleh Advanced Micro Devices (AMD), yang memiliki kepentingan untuk mendapatkannya dari tanah. Satu dekade lalu, AMD membeli spesialis grafis ATI, dan sejak itu perusahaan telah mencoba memanfaatkan aksesnya ke teknologi GPU mutakhir untuk meningkatkan penjualan secara keseluruhan.

Sekilas, idenya cukup sederhana: AMD tidak hanya akan terus mengembangkan dan memproduksi GPU diskrit mutakhir, tetapi juga mengintegrasikan teknologi GPU ATI dalam prosesornya. Departemen pemasaran AMD menyebut gagasan itu 'Fusion', dan HSA disebut sebagai Fusion System Architecture (FSA). Kedengarannya bagus, bukan? Mendapatkan prosesor x86 yang layak dengan grafis terintegrasi yang bagus terdengar seperti ide yang bagus, dan memang begitu.

Sayangnya, AMD mengalami sejumlah masalah di sepanjang jalan; Saya akan memilih beberapa di antaranya:

  • Ide bagus apa pun di bidang teknologi pasti akan diambil oleh pesaing, dalam hal ini – Intel.
  • AMD kehilangan keunggulan teknologi dari Intel dan merasa semakin sulit untuk bersaing di pasar CPU karena keunggulan teknologi pengecoran Intel.
  • Eksekusi AMD bermasalah dan banyak prosesor baru terlambat dipasarkan. Lainnya dihapus seluruhnya.
  • Krisis ekonomi tahun 2008 dan revolusi seluler berikutnya tidak membantu.

Ini, dan sejumlah faktor lainnya, berkonspirasi untuk menumpulkan keunggulan AMD dan mencegah adopsi pasar atas produk dan teknologinya. AMD mulai meluncurkan prosesor dengan generasi baru grafis Radeon terintegrasi pada pertengahan 2011, dan mulai menyebutnya Unit Pemrosesan Akselerasi (APU) alih-alih CPU.

Selain pemasaran, APU generasi pertama AMD (dengan nama kode Llano), gagal. Chip terlambat dan tidak dapat mengikuti penawaran Intel. Fitur HSA yang serius juga tidak disertakan, tetapi AMD mulai menambahkannya di platform 2012-nya (Trinity, yang pada dasarnya dilakukan dengan benar oleh Llano). Langkah selanjutnya datang pada tahun 2014, dengan diperkenalkannya APU Kaveri, yang mendukung manajemen memori yang heterogen (GPU IOMMU dan CPU MMU berbagi ruang alamat yang sama). Kaveri juga membawa lebih banyak integrasi arsitektur, memungkinkan memori yang koheren antara CPU dan GPU (AMD menyebutnya hUMA, yang merupakan singkatan dari Heterogeneous Unified Memory Access) . Penyegaran Carizzo berikutnya menambahkan lebih banyak fitur HSA, memungkinkan prosesor untuk mengalihkan konteks tugas komputasi pada GPU dan melakukan beberapa trik lagi.

Arsitektur CPU Zen yang akan datang, dan APU yang dibangun di atasnya, menjanjikan untuk memberikan lebih banyak lagi, jika dan ketika itu muncul di pasar.

Jadi apa masalahnya?

AMD bukan satu-satunya pembuat chip yang menyadari potensi GPU on-die. Intel mulai menambahkannya ke CPU Core-nya juga, seperti halnya pembuat chip ARM, jadi GPU terintegrasi saat ini digunakan di hampir setiap SoC smartphone, ditambah sebagian besar PC/Mac. Sementara itu, posisi AMD di pasar CPU tergerus. Kemerosotan pangsa pasar membuat platform AMD kurang menarik bagi pengembang, bisnis, dan bahkan konsumen. Tidak banyak PC berbasis AMD di pasaran, dan Apple tidak menggunakan prosesor AMD sama sekali (walaupun menggunakan grafis AMD, terutama karena kompatibilitas OpenCL).

AMD tidak lagi bersaing dengan Intel di pasar CPU kelas atas, tetapi bahkan jika itu terjadi, itu tidak akan membuat banyak perbedaan dalam hal ini. Orang tidak membeli $2.000 workstation atau PC game untuk menggunakan grafis terintegrasi. Mereka menggunakan grafik diskrit yang mahal, dan tidak terlalu peduli dengan efisiensi energi.

Bagaimana Dengan Beberapa HSA Untuk Smartphone Dan Tablet?

Tapi tunggu. Bagaimana dengan platform seluler? Tidak bisakah AMD meluncurkan solusi serupa untuk chip smartphone dan tablet? Yah, tidak, tidak juga.

Anda lihat, beberapa tahun setelah akuisisi ATI, AMD menemukan dirinya dalam situasi keuangan yang sulit, diperparah oleh krisis ekonomi, sehingga memutuskan untuk menjual divisi GPU mobile Imageon ke Qualcomm. Qualcomm mengganti nama produk menjadi Adreno (anagram dari Radeon), dan kemudian menjadi pemain dominan di pasar prosesor smartphone, menggunakan GPU internal yang baru dicat ulang.

Seperti yang mungkin Anda perhatikan, menjual perangkat grafis smartphone tepat saat revolusi smartphone akan dimulai, tidak terlihat seperti langkah bisnis yang brilian, tapi saya rasa melihat ke belakang selalu 20/20.

HSA dulu hanya dikaitkan dengan AMD dan prosesor x86-nya, tetapi sekarang tidak lagi. Faktanya, jika semua anggota HSA Foundation mulai mengirimkan prosesor smartphone ARM berkemampuan HSA, mereka akan menjual lebih banyak dari prosesor x86 AMD beberapa kali lipat, baik dari segi pendapatan maupun unit yang dikirimkan. Jadi apa yang terjadi jika mereka melakukannya? Apa artinya itu bagi industri dan pengembang?

Yah, sebagai permulaan, prosesor smartphone sudah mengandalkan komputasi heterogen, semacam. Komputasi heterogen biasanya mengacu pada konsep penggunaan arsitektur yang berbeda dalam satu chip, dan mempertimbangkan semua komponen yang ditemukan pada SoC yang sangat terintegrasi saat ini, ini bisa menjadi definisi yang sangat luas. Akibatnya, hampir setiap SoC dapat dianggap sebagai platform komputasi yang heterogen, tergantung pada standar masing-masing. Kadang-kadang, orang bahkan merujuk ke prosesor yang berbeda berdasarkan set instruksi yang sama sebagai platform heterogen (misalnya, chip seluler dengan inti ARM Cortex-A57 dan A53, keduanya didasarkan pada set instruksi ARMv8 64-bit).

Banyak pengamat setuju bahwa sebagian besar prosesor berbasis ARM sekarang dapat dianggap sebagai platform yang heterogen, termasuk chip Apple A-series, Samsung Exynos SoCs dan prosesor serupa dari vendor lain, yaitu pemain besar seperti Qualcomm dan MediaTek.

Tapi mengapa ada orang yang membutuhkan HSA pada prosesor smartphone? Bukankah inti dari penggunaan GPU untuk komputasi umum untuk menangani beban kerja profesional, bukan Angry Birds dan Uber?

Ya, tetapi itu tidak berarti bahwa pendekatan yang hampir identik tidak dapat digunakan untuk meningkatkan efisiensi, yang merupakan prioritas dalam desain prosesor seluler. Jadi, alih-alih mengerjakan tugas paralel yang tak terhitung jumlahnya di workstation kelas atas, HSA juga dapat digunakan untuk membuat prosesor seluler lebih efisien dan serbaguna.

Hanya sedikit orang yang melihat dari dekat prosesor ini, mereka biasanya memeriksa lembar spesifikasi ketika mereka membeli telepon baru dan hanya itu: Mereka melihat nomor dan mereknya. Mereka biasanya tidak melihat SoC die itu sendiri, yang memberi tahu kita banyak hal, dan inilah alasannya: GPU pada prosesor smartphone kelas atas menggunakan lebih banyak real estat silikon daripada CPU. Mengingat mereka sudah ada di sana, akan menyenangkan untuk menggunakannya dengan baik di aplikasi selain game, bukan?

Prosesor smartphone hipotetis yang sepenuhnya sesuai dengan HSA dapat memungkinkan pengembang memanfaatkan potensi ini tanpa menambahkan banyak biaya produksi secara keseluruhan, menerapkan lebih banyak fitur, dan meningkatkan efisiensi.

Inilah yang dapat dilakukan HSA untuk prosesor ponsel cerdas, setidaknya secara teori:

  • Tingkatkan efisiensi dengan mentransfer tugas yang sesuai ke GPU.
  • Tingkatkan kinerja dengan membongkar CPU dalam beberapa situasi.
  • Memanfaatkan bus memori lebih efektif.
  • Berpotensi mengurangi biaya pembuatan chip dengan menekan lebih banyak silikon sekaligus.
  • Memperkenalkan fitur baru yang tidak dapat ditangani oleh inti CPU dengan cara yang efisien.
  • Merampingkan pengembangan berdasarkan standardisasi.

Kedengarannya bagus, terutama ketika Anda menganggap pengembang tidak mungkin membuang banyak waktu untuk implementasi. Itu teorinya, tetapi kita harus menunggu untuk melihatnya beraksi, dan itu mungkin memakan waktu cukup lama.

Bagaimana Cara Kerja HSA?

Saya sudah menguraikan dasar-dasarnya di pendahuluan, dan saya ragu untuk membahas terlalu banyak detail karena beberapa alasan: Tidak ada yang suka novella yang diterbitkan di blog teknologi, dan implementasi HSA bisa berbeda.

Oleh karena itu, saya akan mencoba menguraikan konsep tersebut dalam beberapa ratus kata.

Pada sistem standar, aplikasi akan membongkar perhitungan GPU dengan mentransfer buffer ke GPU, yang akan melibatkan panggilan CPU sebelum mengantre. CPU kemudian akan menjadwalkan pekerjaan dan meneruskannya ke GPU, yang akan meneruskannya kembali ke CPU setelah selesai. Kemudian aplikasi akan mendapatkan buffer, yang lagi-lagi harus dipetakan oleh CPU sebelum siap. Seperti yang Anda lihat, pendekatan ini melibatkan banyak bolak-balik.

Arsitektur berbeda pada satu bus memori. Perampingan adalah inti dari HSA.

Arsitektur berbeda pada satu bus memori. Perampingan adalah inti dari HSA.
Menciak

Pada sistem HSA, aplikasi akan mengantri pekerjaan, CPU HSA akan mengambil alih, menyerahkannya ke GPU, mendapatkannya kembali, dan mengirimkannya ke aplikasi. Selesai.

Ini dimungkinkan dengan berbagi memori sistem secara langsung antara CPU dan GPU, meskipun unit komputasi lain juga dapat terlibat (DSP misalnya). Untuk mencapai tingkat integrasi memori ini, HSA menggunakan ruang alamat virtual untuk perangkat komputasi. Ini berarti inti CPU dan GPU dapat mengakses memori dengan persyaratan yang sama , selama mereka berbagi tabel halaman, memungkinkan perangkat yang berbeda untuk bertukar data melalui pointer.

Ini jelas bagus untuk efisiensi, karena tidak perlu lagi mengalokasikan memori ke GPU dan CPU menggunakan memori virtual untuk masing-masing. Berkat memori virtual terpadu, keduanya dapat mengakses memori sistem sesuai dengan kebutuhan mereka, memastikan pemanfaatan sumber daya yang unggul dan lebih banyak fleksibilitas.

Bayangkan sebuah sistem berdaya rendah dengan RAM 4GB, 512MB di antaranya dialokasikan untuk GPU terintegrasi. Model ini biasanya tidak fleksibel, dan Anda tidak dapat mengubah jumlah memori GPU dengan cepat. Anda terjebak dengan 256MB atau 512MB, dan hanya itu. Dengan HSA, Anda dapat melakukan apa pun yang Anda inginkan: Jika Anda memindahkan banyak barang ke GPU, dan membutuhkan lebih banyak RAM untuk GPU, sistem dapat mengalokasikannya. Jadi, dalam aplikasi yang terikat grafis, dengan banyak aset beresolusi tinggi, sistem akhirnya dapat mengalokasikan 1GB atau lebih RAM ke GPU, dengan mulus.

Semua hal dianggap sama, sistem HSA dan non-HSA akan berbagi bandwidth memori yang sama , memiliki akses ke jumlah memori yang sama , tetapi sistem HSA dapat menggunakannya dengan lebih efisien, sehingga meningkatkan kinerja dan mengurangi konsumsi daya. Ini semua tentang mendapatkan lebih banyak dengan lebih sedikit.

Untuk Apa Komputasi Heterogen Baik?

Jawaban sederhananya? Komputasi heterogen, atau HSA sebagai satu jika implementasinya, harus menjadi pilihan yang baik untuk semua tugas komputasi yang lebih cocok untuk GPU daripada CPU. Tapi apa sebenarnya artinya , apa sih bagusnya GPU?

GPU modern yang terintegrasi tidak terlalu kuat dibandingkan dengan grafis diskrit (terutama kartu grafis gaming kelas atas dan solusi workstation), tetapi mereka jauh lebih kuat daripada pendahulunya.

Jika Anda belum melacak, Anda mungkin menganggap bahwa GPU terintegrasi ini adalah lelucon, dan selama bertahun-tahun hanya itu: grafik untuk kotak rumah dan kantor yang murah. Namun, ini mulai berubah pada pergantian dekade ketika GPU terintegrasi berpindah dari chipset ke dalam paket CPU dan mati, menjadi benar-benar terintegrasi .

Inilah tampilan prosesor AMD saat ini. Kami masih menyebutnya prosesor, tetapi GPU membutuhkan lebih banyak real estat silikon daripada CPU.

Inilah tampilan prosesor AMD saat ini. Kami masih menyebutnya prosesor, tetapi GPU membutuhkan lebih banyak real estat silikon daripada CPU.
Menciak

Meskipun masih sangat kurang bertenaga dibandingkan dengan GPU unggulan, bahkan GPU terintegrasi memiliki banyak potensi. Seperti semua GPU, mereka unggul dalam satu instruksi, banyak data (SIMD) dan instruksi tunggal, banyak utas (SIMT) memuat. Jika Anda perlu menghitung banyak angka dalam beban yang berulang dan paralel, GPU akan membantu. CPU, di sisi lain, masih lebih baik pada beban kerja yang berat dan bercabang.

Itu sebabnya CPU memiliki lebih sedikit inti, biasanya antara dua dan delapan, dan inti dioptimalkan untuk pemrosesan serial berurutan. GPU cenderung memiliki lusinan, ratusan, dan dalam kartu grafis diskrit unggulan, ribuan inti yang lebih kecil dan lebih efisien. Core GPU dirancang untuk menangani banyak tugas secara bersamaan, tetapi tugas individu ini jauh lebih sederhana daripada yang ditangani oleh CPU. Mengapa membebani CPU dengan beban seperti itu, jika GPU dapat menanganinya dengan efisiensi dan/atau kinerja yang unggul?

Tetapi jika GPU sangat bagus dalam hal itu, mengapa kita tidak mulai menggunakannya sebagai perangkat komputasi umum bertahun-tahun yang lalu? Yah, industri mencoba, tetapi kemajuannya lambat dan terbatas pada ceruk tertentu. Konsep ini awalnya disebut General Purpose Computing on Graphics Processing Units (GPGPU). Di masa lalu, potensi terbatas, tetapi konsep GPGPU masuk akal dan kemudian diadopsi dan distandarisasi dalam bentuk CUDA Nvidia dan OpenCL dari Apple/Khronos Group.

CUDA dan OpenCL membuat perbedaan besar karena mereka mengizinkan pemrogram untuk menggunakan GPU dengan cara yang berbeda, dan jauh lebih efektif. Namun, mereka khusus untuk vendor. Anda dapat menggunakan CUDA pada perangkat keras Nvidia, sementara OpenCL dicadangkan untuk perangkat keras ATI (dan dianut oleh Apple). API DirectCompute Microsoft dirilis dengan DirectX 11, dan diizinkan untuk pendekatan agnostik vendor yang terbatas (tetapi terbatas pada Windows).

Mari kita simpulkan dengan mendaftar beberapa aplikasi untuk komputasi GPU:

  • Komputasi kinerja tinggi tradisional (HPC) dalam bentuk kluster HPC, superkomputer, kluster GPU untuk beban komputasi, komputasi GRID, penyeimbangan beban.

  • Beban yang memerlukan fisika , yang dapat, tetapi tidak harus, melibatkan permainan atau grafik secara umum. Mereka juga dapat digunakan untuk menangani perhitungan dinamika fluida, fisika statistik, dan beberapa persamaan dan algoritma eksotis.

  • Geometri , hampir segala sesuatu yang berhubungan dengan geometri, termasuk komputasi transparansi, bayangan, deteksi tabrakan dan sebagainya.

  • Pemrosesan audio , menggunakan GPU sebagai pengganti DSP, pemrosesan ucapan, pemrosesan sinyal analog, dan lainnya.

  • Pemrosesan gambar digital , adalah apa yang dirancang untuk GPU (jelas), sehingga dapat digunakan untuk mempercepat pemrosesan dan decoding pasca gambar dan video. Jika Anda perlu memecahkan kode aliran video dan menerapkan filter, bahkan GPU tingkat pemula akan menghapus lantai dengan CPU.

  • Komputasi ilmiah , termasuk penelitian iklim, astrofisika, mekanika kuantum, pemodelan molekul, dan sebagainya.

  • Tugas komputasi intensif lainnya , yaitu enkripsi/dekripsi. Baik Anda perlu “menambang” cryptocurrency, mengenkripsi atau mendekripsi data rahasia Anda, memecahkan kata sandi atau mendeteksi virus, GPU dapat membantu.

Ini bukan daftar lengkap aplikasi komputasi GPU potensial, tetapi pembaca yang tidak terbiasa dengan konsep tersebut harus mendapatkan gambaran umum tentang apa yang membuat komputasi GPU berbeda. Saya juga mengabaikan aplikasi yang jelas, seperti game dan grafik profesional.

Namun, daftar lengkapnya tidak ada, karena komputasi GPU dapat digunakan untuk segala macam hal, mulai dari keuangan dan pencitraan medis, hingga beban basis data dan statistik. Anda dibatasi oleh imajinasi Anda sendiri. Apa yang disebut visi komputer adalah aplikasi lain yang sedang naik daun. GPU yang mumpuni adalah hal yang baik untuk dimiliki jika Anda perlu "mengajarkan" drone atau mobil tanpa pengemudi untuk menghindari pohon, pejalan kaki, dan kendaraan lain.

Jangan ragu untuk memasukkan lelucon Lindsay Lohan favorit Anda di sini.

Berkembang Untuk HSA: Saatnya Untuk Beberapa Berita Buruk

Ini mungkin pendapat pribadi saya daripada fakta, tetapi saya adalah penganut HSA. Saya pikir konsep ini memiliki banyak potensi, asalkan diterapkan dengan benar dan mendapatkan dukungan yang cukup di antara pembuat chip dan pengembang. Namun, kemajuannya sangat lambat, atau mungkin itu hanya perasaan saya, dengan sedikit angan-angan. Saya hanya ingin melihat teknologi baru beraksi, dan saya bukan orang yang sabar.

Masalah dengan HSA adalah belum ada di sana. Itu tidak berarti itu tidak akan lepas landas, tetapi mungkin perlu beberapa saat. Lagi pula, kita tidak hanya berbicara tentang tumpukan perangkat lunak baru; HSA membutuhkan perangkat keras baru untuk melakukan keajaibannya. Masalah dengan ini adalah bahwa banyak dari perangkat keras ini masih di papan gambar, tapi kami sampai di sana. Perlahan-lahan.

Sayangnya, tumpukan solusi HSA mencakup lebih dari sekadar rangkaian perangkat lunak standar. Komputasi heterogen adalah simbiosis perangkat lunak dan perangkat keras.

Sayangnya, tumpukan solusi HSA mencakup lebih dari sekadar rangkaian perangkat lunak standar. Komputasi heterogen adalah simbiosis perangkat lunak dan perangkat keras.
Menciak

Ini tidak berarti pengembang tidak mengerjakan proyek terkait HSA, tetapi tidak banyak minat, atau kemajuan, dalam hal ini. Berikut adalah beberapa sumber yang harus Anda periksa jika Anda ingin mencoba HSA:

  • HSA Foundation @ GitHub jelas merupakan tempat untuk sumber daya terkait HSA. HSA Foundation menerbitkan dan mengelola sejumlah proyek di GitHub, termasuk debugger, kompiler, alat HSAIL vital, dan banyak lagi. Sebagian besar sumber daya dirancang untuk perangkat keras AMD.

  • Sumber daya HSAIL yang disediakan oleh AMD memungkinkan Anda mendapatkan gambaran yang lebih baik tentang spesifikasi HSAIL. HSAIL adalah singkatan dari HSA Intermediate Language, dan pada dasarnya adalah alat utama untuk penulis kompiler back-end dan penulis perpustakaan yang ingin menargetkan perangkat HSA.

  • Manual Referensi Programmer (PDF) HSA mencakup spesifikasi HSAIL lengkap, ditambah penjelasan komprehensif tentang bahasa perantara.

  • Sumber daya HSA Foundation terbatas untuk saat ini dan Program Pengembang yayasan "segera hadir", tetapi ada sejumlah alat pengembang resmi yang harus diperiksa. Lebih penting lagi, mereka akan memberi Anda ide bagus tentang tumpukan yang Anda perlukan untuk memulai.

  • Blog AMD resmi juga menampilkan beberapa konten HSA yang bermanfaat.

Ini seharusnya cukup untuk membantu Anda memulai, asalkan Anda adalah tipe orang yang ingin tahu. Pertanyaan sebenarnya adalah apakah Anda harus repot-repot untuk memulai.

Masa Depan Komputasi HSA dan GPU

Setiap kali kita membahas teknologi yang muncul, kita dihadapkan pada dilema yang sama: Haruskah kita memberitahu pembaca untuk menghabiskan waktu dan sumber daya untuk itu, atau untuk menjauh, mengambil pendekatan menunggu dan melihat?

Saya telah menjelaskan bahwa saya agak bias karena saya menyukai konsep umum komputasi GPU, tetapi sebagian besar pengembang dapat melakukannya tanpanya, untuk saat ini. Bahkan jika lepas landas, HSA akan memiliki daya tarik terbatas dan tidak akan menjadi perhatian sebagian besar pengembang. Namun, itu bisa menjadi penting di jalan. Sayangnya untuk AMD, itu tidak mungkin menjadi game-changer di pasar prosesor x86, tetapi bisa terbukti lebih penting di prosesor mobile berbasis ARM. Ini mungkin ide AMD, tetapi perusahaan seperti Qualcomm dan MediaTek memiliki posisi yang lebih baik untuk menghadirkan perangkat keras yang mendukung HSA ke ratusan juta pengguna.

Itu harus menjadi simbiosis sempurna antara perangkat lunak dan perangkat keras. Jika pembuat chip seluler tergila-gila pada HSA, itu akan menjadi masalah besar. Chip HSA generasi baru akan mengaburkan batas antara inti CPU dan GPU. Mereka akan berbagi bus memori yang sama dengan persyaratan yang sama, dan saya pikir perusahaan akan mulai memasarkannya secara berbeda. Misalnya, AMD sudah memasarkan APU-nya sebagai "perangkat komputasi" yang terdiri dari "core komputasi" yang berbeda (CPU dan GPU).

Chip seluler bisa berakhir dengan menggunakan pendekatan serupa. Alih-alih memasarkan sebuah chip dengan delapan atau sepuluh inti CPU, dan GPU ini dan itu, pembuat chip dapat mulai berbicara tentang cluster, modul, dan unit. Jadi, prosesor dengan empat core CPU kecil dan empat besar akan menjadi prosesor "dual-cluster" atau "dual-module", atau desain "tri-cluster" atau "quad-cluster", jika memperhitungkan core GPU . Banyak spesifikasi teknis cenderung menjadi tidak berarti dari waktu ke waktu, misalnya, DPI pada printer kantor Anda, atau jumlah megapiksel pada kamera ponsel cerdas Anda yang murah.

HSA memungkinkan arsitektur yang berbeda untuk menarik beratnya sendiri dan menangani beban yang sangat berbeda dengan efisiensi yang lebih besar.

HSA memungkinkan arsitektur yang berbeda untuk menarik beratnya sendiri dan menangani beban yang sangat berbeda dengan efisiensi yang lebih besar.
Menciak

Ini bukan hanya pemasaran sekalipun. Jika GPU menjadi sefleksibel inti CPU, dan mampu mengakses sumber daya sistem dengan persyaratan yang sama seperti CPU, mengapa kita harus repot-repot memanggilnya dengan nama aslinya? Dua dekade lalu, industri berhenti menggunakan koprosesor matematika khusus (FPU) ketika mereka menjadi komponen yang harus dimiliki setiap CPU. Hanya beberapa siklus produk kemudian, kami lupa bahwa mereka pernah ada.

Perlu diingat bahwa HSA bukan satu-satunya cara memanfaatkan GPU untuk komputasi.

Intel dan Nvidia tidak bergabung, dan pendekatan mereka berbeda. Intel diam-diam meningkatkan investasi R&D GPU dalam beberapa tahun terakhir, dan solusi grafis terintegrasi terbarunya cukup bagus. Karena GPU on-die menjadi lebih kuat dan menggunakan lebih banyak real estat silikon, Intel harus menemukan cara yang lebih cerdik untuk menggunakannya untuk komputasi umum.

Nvidia, di sisi lain, menarik diri dari pasar grafis terintegrasi bertahun-tahun yang lalu (ketika berhenti memproduksi chipset PC), tetapi ia mencoba peruntungannya di pasar prosesor ARM dengan prosesor seri Tegra-nya. Mereka tidak sukses besar, tetapi mereka masih digunakan di beberapa perangkat keras, dan Nvidia memfokuskan upayanya pada sistem tertanam, yaitu otomotif. Dalam pengaturan ini, GPU terintegrasi memiliki bobot tersendiri karena dapat digunakan untuk deteksi tabrakan, navigasi dalam ruangan, pemetaan 3D, dan sebagainya. Ingat Proyek Tango Google? Beberapa perangkat keras didasarkan pada chip Tegra, memungkinkan penginderaan mendalam dan beberapa trik rapi lainnya. Di sisi berlawanan dari spektrum, lini produk Tesla Nvidia mencakup pasar komputasi GPU kelas atas, dan memastikan dominasi Nvidia di ceruk ini selama bertahun-tahun yang akan datang.

Intinya? Di atas kertas, komputasi GPU adalah konsep hebat dengan banyak potensi, tetapi keadaan teknologi saat ini masih menyisakan banyak hal yang diinginkan. HSA harus melangkah jauh untuk mengatasi sebagian besar masalah ini. Terlebih lagi, itu tidak didukung oleh semua pemain industri, yang pasti akan memperlambat adopsi lebih lanjut.

Ini mungkin memakan waktu beberapa tahun, tetapi saya yakin GPU pada akhirnya akan naik untuk mengambil tempat yang tepat di arena komputasi umum, bahkan di chip seluler. Teknologinya hampir siap, dan ekonomi akan melakukan sisanya. Bagaimana? Nah, inilah contoh sederhananya. Prosesor Atom generasi terbaru Intel memiliki fitur 12 hingga 16 Unit Eksekusi GPU (EU), sedangkan pendahulunya hanya memiliki empat UE, berdasarkan arsitektur yang lebih lama. Saat GPU terintegrasi menjadi lebih besar dan lebih kuat, dan seiring bertambahnya area mati, pembuat chip tidak punya pilihan selain menggunakannya untuk meningkatkan kinerja dan efisiensi secara keseluruhan. Gagal melakukannya akan berdampak buruk bagi margin dan pemegang saham.

Jangan khawatir, Anda masih dapat menikmati permainan sesekali di GPU generasi baru ini. Namun, bahkan saat Anda tidak bermain game, GPU akan melakukan banyak hal di latar belakang, menurunkan beban CPU untuk meningkatkan kinerja dan efisiensi.

Saya pikir kita semua bisa setuju bahwa ini akan menjadi masalah besar, terutama pada perangkat seluler yang murah.

Terkait: Tinjauan Singkat Vulkan API