1 poin oleh GN⁺ 2024-08-28 | 1 komentar | Bagikan ke WhatsApp

Cerita

  • Setahun lalu, RV64 DynaRec hanya bisa menjalankan game Linux native yang relatif "mudah dijalankan" seperti Stardew Valley dan World of Goo
  • Banyak instruksi x86_64 baru telah dengan cepat diimplementasikan di RISC-V, tetapi masih banyak bug yang tersisa di DynaRec
  • Saat itu belum ada perangkat RISC-V yang bisa dihubungkan dengan kartu grafis AMD, dan GPU terintegrasi IMG pada VisionFive 2 dan LicheePi 4A tidak mendukung OpenGL
  • Game seperti Stardew Valley bisa dijalankan dengan menggunakan gl4es, tetapi itu tidak cukup untuk game Linux yang lebih kompleks atau game Windows
  • Melalui Sophgo Milk-V Pioneer, kini kartu grafis AMD bisa dihubungkan, dan setelah banyak bug RV64 DynaRec diperbaiki serta instruksi x86 baru ditambahkan, The Witcher 3 pun dapat dijalankan

Status saat ini dari RISC-V DynaRec

  • Set instruksi x86 sangatlah luas
  • Backend ARM64 telah mengimplementasikan lebih dari 1.600 instruksi x86, tetapi backend RV64 baru mengimplementasikan sekitar 1.000
  • Instruksi SSE diimplementasikan sebagai instruksi skalar, dan AArch64 menggunakan ekstensi Neon, sementara LoongArch64 menggunakan ekstensi LSX, sehingga performanya menurun
  • RISC-V memiliki ekstensi vektor RVV, dan Milk-V Pioneer serta SoC SpacemiT K1/M1 mendukungnya
  • Baru-baru ini dukungan RVV dasar ditambahkan ke box64 dan beberapa instruksi SSE umum telah diimplementasikan, tetapi ini masih tahap awal

Instruksi yang paling dibutuhkan untuk emulasi x86

  • Dalam emulasi x86, RISC-V kurang ekspresif dibandingkan AArch64 dan LoongArch64
  • RISC-V tidak memiliki instruksi untuk memilih rentang bit dari register atau menyisipkannya ke rentang bit register lain
  • Sebagai contoh, untuk mengimplementasikan instruksi ADD AH, BL di RISC-V diperlukan 10 instruksi

Frustrasi akibat instruksi atomik 16-byte

  • x86 memiliki instruksi operasi atomik dengan prefiks LOCK, dan box64 mengemulasikannya menggunakan urutan LR/SC
  • Instruksi LOCK CMPXCHG16B membandingkan dan menukar memori 16-byte, tetapi RISC-V tidak memiliki instruksi padanannya
  • Karena itu, instruksi ini tidak dapat diimplementasikan secara sempurna, padahal banyak program seperti game Unity menggunakan instruksi tersebut

Kesimpulan

  • Terlepas dari berbagai kekurangannya, The Witcher 3 berjalan di box64 hingga 15fps, dan di menu utama berjalan pada kecepatan penuh

Ringkasan GN⁺

  • Menjalankan The Witcher 3 di RISC-V merupakan peristiwa penting yang menunjukkan kemajuan teknis
  • Emulasi x86 di RISC-V masih tertinggal dibandingkan arsitektur lain, tetapi ada potensi perbaikan melalui ekstensi seperti RVV
  • Kurangnya ekspresivitas RISC-V dan absennya instruksi atomik 16-byte tetap menjadi masalah utama
  • Proyek dengan fungsi serupa antara lain emulator seperti QEMU

1 komentar

 
GN⁺ 2024-08-28
Opini Hacker News
  • Ada pertanyaan tentang hal-hal yang perlu dilakukan berbeda oleh software engineer saat mengembangkan perangkat lunak dengan target RISC-V

    • Ukuran executable bisa membesar sehingga perlu dioptimalkan secara agresif demi lokalitas cache
    • Jenis perangkat lunak tertentu mungkin lebih cocok untuk CISC atau RISC, misalnya game atau web server
  • Ada rasa penasaran apakah mungkin akan muncul sistem yang dilengkapi "GPU" yang diimplementasikan dengan beberapa CPU RISC-V besar dan banyak CPU RISC-V kecil

    • Ada pertanyaan tambahan apakah vector klasik bisa berguna di GPU sebagai pengganti packed SIMD
  • Mengingatkan pada kasus seorang tokoh Rusia terkenal yang menjalankan Atomic Heart di Elbrus 8S

    • Elbrus memiliki penerjemah native, dan Atomic Heart bisa dimainkan pada 15-25 fps
  • Ada pendapat bahwa artikelnya terlalu singkat soal "dasar-dasar"

    • Diperlukan informasi tambahan tentang bagaimana ISA x86_64 diimplementasikan pada chip RISC-V
  • Ada pendapat bahwa RISC-V adalah yang paling kurang ekspresif dalam konteks emulasi x86

    • RISC dijelaskan dalam pelajaran sejarah ilmu komputer sebagai reduced instruction set computer
    • Banyak artikel dan profil RISC-V baru mengusulkan bahwa "beberapa instruksi lagi diperlukan untuk kesetaraan fungsi"
    • RISC-V memang alternatif yang nyaman untuk platform lain, tetapi muncul pertanyaan apakah impian RISC sudah mati
  • Ada pendapat bahwa hasilnya mengejutkan

    • Dibutuhkan banyak kerja, dan dalam beberapa kasus RISC-V tampaknya sudah mencapai batasnya
    • Instruksi bit set dan scatter perlu ditambahkan sebagai extension
  • Ada pertanyaan tentang 86Box

    • Mengingat masa memakai Amstrad PC1512, dan berbagi pengalaman menambahkan hard card serta ekspansi memori
    • Masa-masa menyenangkan memakai Borland TurboPascal dan Zortech C
  • Tangkapan layar menampilkan RAM 31GB

    • Tampaknya menggunakan RAM jauh lebih banyak daripada development board dengan spesifikasi tertinggi
  • Ada tautan ke postingan sebelumnya dan informasi tentang Milk-V Pioneer

    • Produk motherboard dan workstation RISC-V 64-core untuk pengembangan native
  • Ada harapan agar masukan di tingkat ISA bisa disampaikan ke RVI