Hikâye
- 1 yıl önce RV64 DynaRec yalnızca Stardew Valley, World of Goo gibi görece "kolay çalıştırılabilen" yerel Linux oyunlarını çalıştırabiliyordu
- Birçok yeni x86_64 komutu RISC-V'e hızla uygulandı, ancak DynaRec'te hâlâ çok sayıda hata vardı
- O dönemde AMD ekran kartı bağlanabilen bir RISC-V cihazı yoktu ve VisionFive 2 ile LicheePi 4A'nın IMG entegre grafik birimleri OpenGL'i desteklemiyordu
gl4es kullanılarak Stardew Valley gibi oyunlar çalıştırılabiliyordu, ancak bu daha karmaşık Linux oyunları veya Windows oyunları için yeterli değildi
- Sophgo'nun Milk-V Pioneer'ı sayesinde AMD ekran kartı bağlanabilir hâle geldi ve çok sayıda RV64 DynaRec hatası düzeltilip yeni x86 komutları eklenerek The Witcher 3 çalıştırılabildi
RISC-V DynaRec'in mevcut durumu
- x86 komut seti çok geniştir
- ARM64 backend'i 1.600'den fazla x86 komutu uyguladı, ancak RV64 backend'i yaklaşık 1.000 komut uyguladı
- SSE komutları skaler komutlar olarak uygulandı ve AArch64, Neon genişletmesini; LoongArch64 ise LSX genişletmesini kullandığından performans düşüyor
- RISC-V'de RVV adlı bir vektör genişletmesi bulunuyor ve Milk-V Pioneer ile SpacemiT K1/M1 SoC bunu destekliyor
- Kısa süre önce box64'e temel RVV desteği eklendi ve bazı yaygın SSE komutları uygulandı, ancak bu hâlâ erken aşamada
x86 emülasyonu için en gerekli komutlar
- x86 emülasyonunda RISC-V, AArch64 ve LoongArch64'e kıyasla ifade gücü açısından yetersiz kalıyor
- RISC-V'de bir register'ın bit aralığını seçmek veya bunu başka bir register'ın bit aralığına yerleştirmek için komut yok
- Örneğin
ADD AH, BL komutunu RISC-V'de uygulamak için 10 komut gerekiyor
16 baytlık atomik komutların yarattığı hayal kırıklığı
- x86'da LOCK öneki taşıyan atomik işlem komutları bulunuyor ve box64 bunları LR/SC dizisi kullanarak emüle ediyor
LOCK CMPXCHG16B komutu 16 baytlık belleği karşılaştırıp değiştirir, ancak RISC-V'de buna karşılık gelen bir komut yok
- Bu nedenle bu komut tam olarak uygulanamıyor ve Unity oyunları gibi birçok program bu komutu kullanıyor
Sonuç
- Çeşitli dezavantajlara rağmen The Witcher 3, box64 üzerinde en fazla 15 fps ile çalışıyor ve ana menüde tam hızda çalışıyor
GN⁺ özeti
- The Witcher 3'ün RISC-V üzerinde çalıştırılması, teknik ilerlemeyi gösteren önemli bir gelişme
- RISC-V'nin x86 emülasyonu hâlâ diğer mimarilere kıyasla geride, ancak RVV gibi genişletmelerle gelişme potansiyeli var
- RISC-V'nin ifade gücü eksikliği ve 16 baytlık atomik komutların yokluğu başlıca sorunlar olmaya devam ediyor
- Benzer işlevlere sahip projeler arasında QEMU gibi emülatörler bulunuyor
1 yorum
Hacker News yorumu
RISC-V’yi hedefleyerek yazılım geliştirirken yazılım mühendislerinin farklı olarak ne yapması gerektiğine dair bir soru var
Birkaç büyük RISC-V CPU ve çok sayıda küçük RISC-V CPU ile oluşturulmuş bir "GPU" taşıyan bir sistemin ortaya çıkma olasılığı merak ediliyor
Ünlü bir Rus’un Elbrus 8S üzerinde Atomic Heart çalıştırdığı örneği hatırlatılıyor
Makalenin "temeller" konusunda kısa kaldığı yorumu yapılıyor
x86 emülasyonu bağlamında RISC-V’nin en az ifade gücüne sahip olduğu görüşü var
Sonucun şaşırtıcı olduğu yorumu var
86Box hakkında bir soru var
Ekran görüntüsünde 31GB RAM görünüyor
Önceki gönderi bağlantısı ve Milk-V Pioneer hakkında bilgi veriliyor
RVI’ye ISA düzeyinde geri bildirim iletilebilmesini uman bir görüş var