Intel manfaatkan SIMD untuk membuat aplikasi HTML5 secepat native


Sekelompok engineer di Intel telah bekerja untuk membuat aplikasi HTML5 berjalan secepat aplikasi native. Ini adalah upaya untuk meningkatkan kinerja aplikasi berbasis browser dengan mengakses instruksi SIMD yang residen pada host prosesor. Single-instruction, multiple data (SIMD) adalah kemampuan prosesor dan teknik pemrograman yang menggunakan data-paralelisme yang tersedia dalam aplikasi dengan menerapkan instruksi tunggal untuk beberapa operan sekaligus, mengembalikan beberapa data dari perintah tunggal.

Kemampuan ini - yang pada dasarnya membawa paralelisme secara halus untuk kode aplikasi tingkat tinggi - sebelumnya telah tersedia hanya untuk aplikasi native. Dan itu telah dilaksanakan sekarang dengan pengembang di Intel melalui SIMD.js, satu set baru dari kemampuan JavaScript yang mereka harapkan akan menjadi bagian dari standar JavaScript, bahasa pemrograman dari HTML5. Terlebih lagi, API yang menyertainya membawa instruksi SIMD untuk JavaScript tanpa mengganggu platform-netralitas dari HTML5. (Instruksi SIMD dapat diakses dalam prosesor dengan arsitektur Intel serta ARM).


"Proyek ini adalah tentang membawa SIMD untuk JavaScript, dan itu berarti kemampuan untuk memprogram kemampuan SIMD - kemampuan streaming dari prosesor modern. SIMD berarti instruksi tunggal, multiple data yang jika dibandingkan dengan operasi skalar di mana, misalnya, jika Anda ingin menambahkan dua angka, Anda memuat satu nomor ke register, memuat nomor lain, dan kemudian menambahkannya untuk mendapatkan jumlahnya," kata Moh Haghighat, senior principal engineer di Intel Software and Services Group.

Moh Haghighat kembali menjelaskan: "Instruksi SIMD beroperasi pada elemen multiple data dari vektor secara bersamaan. Misalnya, jika Anda memiliki vektor dari empat elemen, Anda dapat mengatakan, "Load ini ke register," dan register Anda memiliki cukup ruang untuk empat elemen 32-bit. Kemudian Anda melakukan load lain atau menambahkan ini ke vektor memori dan Anda mendapatkan empat tambahan pada saat yang sama menggunakan satu instruksi."

Moh Haghighat yang telah menghabiskan lebih dari dua dekade di berbagai aspek program paralelisme, menggambarkan pekerjaannya sekarang sebagai "menjembatani kesenjangan antara pemrograman web dan pengembangan native." Hasil kinerja menggunakan implementasi tahap awal dari SIMD dalam JavaScript runtimes cukup menjanjikan. "Benchmark SIMD kami telah menunjukkan perbaikan antara 4-10 kali lipat dengan paralelisasi daripada tanpa paralelisasi," kata Moh Haghighat.

Di antara aplikasi yang akan mendapat manfaat dari peningkatan kinerja tersebut termasuk untuk pengenalan suara dan wajah, pemrosesan audio dan video, pengolahan grafis 2D dan 3D yang kompleks, perceptual computing-seperti pelacakan gerakan tangan dan jari- dan game. Aplikasi ini umumnya memerlukan akses hardware secara langsung untuk menghadirkan kinerja yang memadai. Tapi dengan SIMD.js, jenis aplikasi dengan penggunaan resource yang intensif dapat digunakan melalui browser dengan kinerja yang sangat baik dan penghematan energi yang signifikan.


"Kami telah mengubah baik Firefox dan Chrome. Ini sekitar 20.000 baris kode baru dan perubahan di masing-masing browser. Tapi begitu selesai, pengembang tidak perlu melakukan apa-apa selain menulis kode SIMD dan pengguna tidak perlu mengubah apa pun di VM. Mereka hanya mendapatkan versi browser dengan SIMD yang sudah diaktifkan atau run-time, dan program mereka akan bekerja dengan baik," kata Moh Haghighat.

Awalnya dikembangkan di Intel Labs, River Trail dirancang untuk memberikan paralelisme data untuk aplikasi Web. Lihat video berikut ini untuk mempelajari lebih lanjut.





Via Intel

Comments