7.8 TOTAL SCORE

StarFive VisionFive 2

SBC
Performanse 5
Periferije/IO 7
Kvalitet izrade 9
Cena 10
Pros
  • Integrisan GPU
  • Dosta RAM-a
  • Veoma atraktivna cena
  • Koristi ISA otvorenog koda
Cons
  • Donekle limitirane performanse
  • Potrebno je mnogo znanja da bi se koristio
  • Softverska podrška je sporna u najboljem slučaju
Bottomline

VisionFive 2 je ploča puna mogućnosti. Još su rani dani za RISC-V, tako da je nejasno koliko će brzo postati mejnstrim ISA za desktop ili serversko računarstvo, ali s obzirom na brzinu kojom napreduje, možda uopšte nije tako daleko u budućnost.

Sama VisionFive 2 nije najbrža ploča, a njene performanse su slične onima koje su ARM ploče nudile pre nekoliko generacija. Ipak, kao jedan od prvih RISC-V SBC-a i jedan od prvih po pristupačnoj ceni, to je neprocenjiv alat za hobiste i male timove programera koji žele da svoj softver prenesu na novu arhitekturu što pre.

Danas ćemo pregledati sasvim posebnu ploču. Kada je reč o SBC-ovima ili bilo kom računarskom hardveru, generalno, navikli smo da vidimo procesore zasnovane na ARM-u i x86: prvi uglavnom u mobilnim uređajima, a drugi u desktop i serverskoj opremi. Razlikujući se u mnogim važnim aspektima, ove dve arhitekture imaju jednu zajedničku stvar: obe su potpuno zatvorenog koda.

Iako ovo možda nije problem za krajnje korisnike, ISA zatvorenog koda praktično sprečavaju značajan broj ljudi, a posebno pojedinaca i malih timova dizajnera čipova, da ikada implementiraju tehnologiju zbog velikih naknada za licencu i tantijeme.

RISC-V je započeo kao projekat na UC Berkeley, sa ciljem da proizvede ISA koji bi bio otvoren, slobodan za korišćenje i modifikovanje, ali i održiv za upotrebu u opštem računarstvu. Ovaj pristup otvorenog koda ima mnoge prednosti, koje su svima dobro poznate iz softvera sa sličnim politikama. Pristupačna tehnologija prirodno ima mnogo veću podršku zajednice, što uključuje ogromnu bazu talenata i čini da se zupčanici inovacija i razvoja okreću mnogo, mnogo brže.

Pristup je definitivno funkcionisao za RISC-V, sa više velikih kompanija koje su ga koristile u delovima svojih rešenja. Neki, poput SiFive-a, baziraju svoj poslovni model isključivo na RISC-V-u, kreirajući dizajn jezgra CPU-a i drugog suštinskog hardvera koristeći ovaj otvoreni ISA.

Današnja ploča VisionFive 2 dolazi od StarFive, kineske kompanije koja je usko povezana sa SiFive-om, i ima StarFive-ov JH7110 SoC. Ploča može imati do 8 GB RAM-a i reklamira se kao „prvi RISC-V računar na jednoj ploči (SBC) visokih performansi na svetu sa integrisanim GPU-om“. Iako ovo može izgledati pomalo čudno specificirano, važno je zapamtiti da ovo nije prvenac StarFive-a u domenu SBC-ova. Prethodnik VisionFive 2, prikladno nazvan VisionFive, nije imao bilo kakav namenski 3D GPU hardver. Srećom, kroz partnerstvo sa Imagination Technologies, ​​StarFive je uspeo da integriše BXE-4-32 MC1 GPU u JH7110 čip.

Zamišljen kao pristupačan razvojni komplet za RISC-V platformu, VisionFive 2 treba da ponudi jednostavan način za programere da implementiraju svoj softver na novi ISA. Relativno niska cena, koja iznosi oko $100 u zavisnosti od RAM konfiguracije, omogućava računarstvo na RISC-V arhitekturi hobistima i malim timovima, dok nudi performanse ranijih RISC-V ploča cene oko ~$500.

Sve ovo zvuči prilično uzbudljivo, a nama i obećavajuće. Ali, dosta teorije – hajde da bliže pogledamo sam hardver!

Želeli bismo da iskoristimo ovu priliku da se zahvalimo 52Pi, StarFive distributeru, što nam je poslao VisionFive 2 ploču na recenziju.

Specifikacije VisionFive 2

JH7110 SoC je nesumnjivo proizvod saradnje između StarFive-a i SiFive-a, sa jezgrima koje su dizajnirali potonji. Naime, čip sadrži klaster jezgara U74-MC koji radi na 1,5 GHz i 32-bitni E24 klaster realtime jezgara.

SiFive-ova dokumentacija otkriva šta je ovo „core cluster“. U suštini, U74-MC sadrži četiri 64-bitna U7 jezgra i S7 jezgro za monitoring, zajedno sa potrebnim pratećim periferijama, kao što su interapt tajmeri i kola za otklanjanje grešaka.

Proučavajući relevantni datasheet proizvođača, vidimo da je klaster jezgara E24 zasnovan na E2 jezgru i da mu dodaje potrebna kola.

U74-MC klaster ne treba mešati sa U74 (bez MC, za koji pretpostavljamo da znači „višejezgarni“) klasterom jezgara, koji sadrži jedno jezgro U7 (i, pogađate, potrebna kola oko njega). Prema zvaničnom datasheet-u, U74-MC klaster se sastoji od četiri U7 jezgra, a ne U74 klastera, što bi podrazumevalo jedan skup gore pomenutih pomoćnih kola koja se dele preko jezgara. Ovo je prikazano dijagramom koji se nalazi na strani 25 uputstva. Međutim, ovaj dijagram takođe koristi termin „U74 jezgro“ kada se odnosi na U7 jezgra, što podrazumeva postojanje pet odvojenih kopija, na osnovu informacija iz U74 datasheet-a.

Ovo nema smisla, pogotovo jer se S7 jezgro tako naziva. U7 je zvanično ime za ova jezgra na veb lokaciji SiFive i u datasheet-ovima, tako da ćemo ga se držati do kraja pregleda.

Zašto je ovo zahtevalo tako dugačko objašnjenje: većina recenzija i zvanične StarFive JH7110 specifikacije nazivaju ova jezgra „U74 jezgra“, za šta verujemo da je pogrešan naziv uzrokovan SiFive sopstvenim zamršenim šemama označavanja i opštim poznavanjem ARM Cortex-A serije metodologija imenovanja (gde bi U74 jezgro definitivno imalo više smisla od U7).
Dakle, da rezimiramo, ovde imamo posla sa četiri U7, jednim S7 i jednim E2 jezgrom. U7 jezgra su aplikativna jezgra, sposobna za pokretanje Linux-a, zahvaljujući svim ISA ekstenzijama koje imaju (ovo su RV64GC jezgra, tj. RV64IMAFDCZicsr_Zifencei jezgra sa skraćenicom G proširenom do punog oblika). Oni imaju dual-issue, pipeline za izvršavanje po redosledu (uporediv sa ARM Cortex-A55).

S7 jezgro je po dizajnu izuzetno slično U7, ali nije u stanju da pokrene puni Linux. Ovo je uglavnom zbog toga što OS očekuje najmanje RV64IMAFDC ISA, a ovo jezgro koristi RV64IMACB, nedostaju F i D ekstenzije za podršku jednostruke i dvostruke preciznosti s pomičnim zarezom. Pored toga, nedostatak jedinice za upravljanje memorijom predstavlja još jednu prepreku za pokretanje punih operativnih sistema na ovom jezgru.

Umesto toga, jezgro S7 treba da radi kao svojevrsni supervizor, koristan za praćenje performansi ili prenošenje određenih rutinskih zadataka na niži nivo softvera od operativnog sistema. Ne ulazeći previše duboko u režime privilegija RISC-V, ovde je dovoljno napomenuti da sposobnost S7 da radi u M-režimu, najvišem nivou privilegija, omogućava kodu napisanom za njega da pristupi svakoj periferiji i registruje se na sistemu i pokreće interapt – bez koda koji se pokreće na nižim, U- i S-mod, nivoima privilegija. U teoriji, ovo omogućava izgradnju softvera koji koristi ovo nezavisno jezgro za praćenje sistema ili upravljanje periferijama čak i ako nepopravljiva greška onesposobi glavni aplikativni procesor.
E2 poseduje RV32IMAFCB ISA (imajte na umu da je ovo 32-bitno jezgro) i ima jedan problem, in-order pipeline. Na sličan način kao kod S7, jezgro E2 je namenjeno da se koristi za rutinske zadatke niskog nivoa, ali i kao jednostavan procesor male snage u realnom vremenu. Ovo obezbeđuje bolju energetsku efikasnost sistema u praznom hodu.

Nažalost, i S7 i E2 trenutno ostaju nekorišćena od strane Linux kernela, u suštini nedostupni sistemu, a mogu se koristiti samo korišćenjem izvornog koda. U nbudućnosti se nadamo da ćemo videti softver na sistemskom nivou koji ih koristi i obezbeđuje API-je za prebacivanje koda niskog nivoa na ova jezgra i dobijanje podataka sa njih. Upravljanje ovim bez narušavanja bezbednosnih paradigmi postavljenih u režimima privilegija biće, naravno, izazov, ali bi ponudilo jedinstvene prednosti sistema zasnovanim na RISC-V u poređenju sa drugim arhitekturama.

VisionFive 2 CPU

photo: magazin Mehatronika

Kao što je pomenuto u prvom delu recenzije, JH7110 čip sadrži integrisani GPU: Imagination BXE-4-32 MC1. Razbijanje ove šeme imenovanja malo otkriva neke detalje o jezgru. Počnimo sa „MC1“, što označava da imamo posla sa jednim GPU-om. Ova terminologija je slična onoj koju ARM koristi u svojim GPU-ovima Mali serije. „BXE“ je oznaka linije, koja ukazuje na GPU B serije optimizovan za efikasnost prostora (XE serija). Konačno, deo „4-32“ je zapravo pogled na performanse: prvi označava broj teksela obrađenih po ciklusu takta, a drugi broj FP32 FLOP-a po ciklusu takta. Prema Imagination-u, GPU takođe može da isporuči dvostruko veći iznos, 64, od FP16 operacija u svakom ciklusu takta.

Prema zvaničnoj dokumentaciji RVspace-a, ovaj GPU može da radi do 600 MHz, ali je podrazumevano podešen na 400 MHz. Izvođenje nekih brzih proračuna daje nam performanse od 19,2 FP32 GFLOP (38,4 FP16 GFLOP) pri radu na 600 MHz i 12,8 FP32 GFLOP (25,6 FP16 GFLOP) pri standardnoj brzini. Iako ovi brojevi nisu baš šokantni, oni su više nego dovoljni za jednostavne grafičke zadatke i miljama su ispred onoga što CPU može da ponudi korišćenjem softverskog renderovanja.

Ovaj SoC je uparen sa 2, 4 ili 8 GB LPDDR4 RAM-a, koji proizvodi BIWIN. Naša ploča je model sa 8 GB, a jedan RAM čip ima oznaku BVMZCX32H2A-64G. Nažalost, izgleda da ne postoji lista sa podacima o ovom čipu koja je lako dostupna na mreži, tako da ne možemo biti sigurni u brzinu RAM-a, iako zvanični dokument tvrdi da je brzina „do 2800 Mbps“, što je neobičan broj sveobuhvatno za ovu vrstu memorije. Čini se da ovde imamo samo jednokanalnu RAM memoriju, tako da očekivanja nisu prevelika, ali ćemo proveriti tačne performanse u odeljku benchmark na našem sajtu.

Ports on the VisionFive 2 board

photo: magazin Mehatronika

Izbor IO je standardan. Imamo četiri USB 3.0 porta (ili modernim terminima, USB 3.2 Gen 1 porta) koje pokreće VIA Labs VL805 kontroler, što bi trebalo da omogući brz prenos od 5 Gbps. Ovo je poznati čip, jer se nalazi i na Raspberry Pi 4. Pomalo zabrinjavajuće za performanse, zvanični list sa podacima pominje da su oni multipleksirani sa PCIe 2.0 1x linijom. Ova PCIe linija je usmerena ka M.2 NVMe konektor na dnu ploče radi proširivanja kapaciteta skladišta za podatke. Proverićemo performanse oba ova konektora niže.

VisionFive 2 board right side

photo: magazin Mehatronika

Okretanje ploče otkriva još dve važne opcije za skladištenje: slot za microSD karticu i eMMC konektor, koji je namenjen za povezivanje modula. Ovo je dobra količina opcija za skladištenje za ploču ovog tipa. Sve dok su IO performanse pristojne, VisionFive 2 bi mogao odlično da radi kao lokalni server za skladištenje ili backup box.

Left side of board

photo: magazin Mehatronika

Pored USB-ova nalazi se HDMI 2.0 port, sposoban za prikaz do 4K30 ili 1440p60 video zapisa. Zanimljivo je da sam hardverski video dekoder može da podnese 4K60. Ostale video opcije prisutne na ploči uključuju dva različita MIPI DSI porta za prikaz, jedan sa 2 trake i jedan sa 4 trake, sposoban za izlaz do 1080p30 i 1440p30. Ugrađeni video enkoder može da podnese 1080p30 ulaz, i prikladno, MIPI CSI port sa 2 linije može da radi sa kamerama do ove specifikacije. Četvoropolni 3,5 mm audio priključak je takođe prisutan, na sreću. To je funkcija koju sve češće viđamo kako nestaje, što je šteta jer rešenja za zaobilaženje – HDMI audio ili eksterni DAC – nigde nisu tako uredna.

VisionFive 2 board ports

photo: magazin Mehatronika

Dva gigabitna Ethernet porta su takođe tu, što čini prilično moćne mrežne mogućnosti. Nažalost, ploča nema ugrađeni Wi-Fi ili Bluetooth, tako da su spoljni USB adapteri neophodni ako je bežično umrežavanje neophodno.

Etherrnet ports

photo: magazin Mehatronika

Napajanje se može napajati ploči na nekoliko različitih načina: ili pomoću ugrađenog USB-C porta (5V/3A USB-C napajanje bi trebalo da posluži), ili preko seta GPIO hedera, ili konačno, preko PoE, što zahteva PoE HAT priključen na Raspberry Pi 4 PoE heder.

VisionFive 2 reset button

photo: magazin Mehatronika

Pun 40-pinski GPIO heder je takođe prisutan i koristi Raspberry Pi 4 pinout. Ovo je odlično, jer je postao industrijski standard, prisutan na različitim sistemima napravljenim za veoma različite aplikacije.

GPIO pins

photo: magazin Mehatronika

Konačno, ploča ima dugme za resetovanje (samo po sebi razumljivo) i DIP prekidač za izbor režima pokretanja. Ovo je direktno povezano sa eksperimentalnom prirodom verzije ploče. Prebacivanje izbora prioriteta pokretanja na hardverski prekidač je pametan potez za sprečavanje otkaza ploče ako softver koji upravlja ovim operacijama još nije u potpunosti stabilan.

Switch on board

photo: magazin Mehatronika

Hardver VisionFive 2 SBC-a

VisionFive 2 je nesumnjivo sjajno napravljena ploča. Sa visokokvalitetnim sitotiskom i robusnim, debelim PCB-om, nema sumnje da je postojao određeni osećaj ponosa u njegovom dizajnu, što je dovelo do veće pažnje od uobičajenog. Svaki pojedinačni priključak i konektor su robusni i rad lemljenja je besprekoran.

Iako nema ugrađene pozadinske ploče koja bi držala donju stranu ploče dalje od prljavštine i prašine, kao što postoji na Jetson Orin Nano ili LattePanda Sigma, što je pomalo problematično s obzirom na pozicioniranje M.2 slota sa donje strane (cela ploča se malo klati zbog toga), to nije veliki previd i lako se popravlja čak i najjednostavnijim rešenjima – četiri plastična držača će učiniti trik.

VisionFive 2 board down side

photo: magazin Mehatronika

Prezentacija ovde je takođe prilično zgodna. VisionFive 2 se isporučuje u čvrstoj providnoj plastičnoj kutiji ubačenoj u šareni kartonski omot. Videli smo sličan tip pakovanja sa Radxa Zero, i nama se lično dopada jer razumno štiti lomljive zaglavlje iglica tokom transporta.

„Prigrlite promenu“, primećuje kartonska navlaka odmah pored logotipa proizvoda. „Zagrli budućnost.“ Ovo su neke velike reči, i dok sam hardver na prvi pogled izgleda obećavajuće, stvarna upotrebljivost platforme će odrediti koliko su istinite.

eMMC connector on board

photo: magazin Mehatronika

Benčmarci

VisionFive 2 je nezreo sistem. Za razliku od mnoštva novih objavljenih ploča zasnovanih na ARM-u, koje bi se mogle smatrati nezrelom zbog izazova u vezi sa implementacijom perifernih komponenti, VisionFive 2 se suočava sa izazovom kroćenja relativno nove CPU arhitekture koja je tek nedavno napravila prve korake u svetu Linux-a.

Prvi RISC-V SoC koji podržava Linux, Freedom U540, objavio je SiFive 2018. godine, a HiFive Unmatched 2020 je prva desktop platforma zasnovana na ovoj arhitekturi. Da stvari stavimo u perspektivu, prvi put kada je glavna Linux distribucija podržala ARM bila je 2000. godina, sa izdanjem Debiana 2.2. To je bilo pre više od 20 godina – a to zamagljuje činjenicu da je Rasel King, možda najistaknutija figura u prenošenju Linux kernela na ARM, već počeo da radi na projektu 1994, radeći na Acorn A5000.

Međutim, tek 2007. sa izlaskom Androida, više od decenije nakon Raselovog originalnog rada, Linux na ARM-u je došao u ruke mejnstrim publike, a do 2012. i prvog Raspberry Pi-ja tradicionalnije distribucije su dobile značajnu publiku.

„Šta je sa pozadinskom pričom?“ čujemo te kako kažeš. „Nije li ovo deo sa benčmarcima?“

Pa… hm… kao što ćete brzo videti, i ovaj i sledeći deo recenzije moraće da se vrti oko nezrelosti softvera. Imajući na umu ~25-godišnji jaz u razvoju softvera, kada je u pitanju izbor i stabilnost softvera, ali i optimizacija lanca alata, apelujemo na čitaoce da rezultate u nastavku shvate sa rezervom. Sa RISC-V, u suštini smo tamo gde je ARM bio kasnih 90-ih. Impresivno je koliko daleko je zajednica stigla ovako brzo, što je dobrim delom zbog prirode ISA otvorenog koda (ako ništa drugo, ovo je veličanstven dokaz koncepta za otvoreni hardver), ali još uvek ima mnogo posla koji treba obaviti i osnovnog softvera koji treba portovati.

Konačno, poređenje ARM-a i x86 je problematično, a obe su stabilne, dobro podržane arhitekture gde je opšte očekivanje da je sav softver optimizovan da izvuče maksimum iz svakog čipa. Poređenje ARM i RISC-V ploča je još veći izazov i u suštini je nepravedan poduhvat, pošto većina softvera, uključujući referentne vrednosti, nije optimizovana da u potpunosti iskoristi prednosti hardvera na kojem rade.

Raspberry Pi 5, Orange Pi 5 and VisionFive 2

photo: magazin Mehatronika

Imajući to na umu, idemo dalje. Pokrećemo benčmarke sa Geekbench 5, a Primate Labs na sreću nudi RISC-V binarne datoteke. Rezultat 77/270 sa jednim/više jezgara je u skladu sa rezultatom Raspberry Pi 3B 98/258. Opet, čini se da postoji potencijal za mnogo više performansi iznad četiri A53 jezgra Pi 3, iako ne očekujemo da će ikada dostići nivoe Raspberry Pi 4.

Sysbench je naš referentni standard za testiranje performansi CPU-a i RAM-a, i zaista smo želeli da ga pokrenemo, jer daje odličan uvid u to kako se čip nosi sa jednostavnim, ponovljenim operacijama. Nažalost, naišli smo na nekoliko problema. U početku, nakon što apt nije uspeo da locira sysbench paket, mislili smo da je to zbog toga što se niko još nije potrudio da ga kompajlira, pa smo se uputili na GitHub i klonirali izvorni kod paketa. Nažalost, ubrzo nakon toga otkrili smo razlog zašto paket nedostaje: LuaJIT još uvek nije bila dostupna za RISC-V! Ovo je ponovo poremetilo naše planove, što je značilo da smo za sada morali da preskočimo ovaj test.

Pošto su dva testa završena, bilo je prilično bitno da ostali budu funkcionalni (zapamtite čitavu našu napomenu o tome da je sistem nezreo – da, evo zašto).

Prelazeći na OpenSSL rezultate, važno je napomenuti nekoliko stvari. JH7110 ima akceleratore kriptografije, ali oni nigde nisu tako dobro podržani kao ARM-ovi. U7 jezgra su takođe prethodila ratifikaciji RISC-V kripto ekstenzija, što dodatno komplikuje stvari. Ipak, sudeći po ovim rezultatima, mislimo da OpenSSL 3.0.7, verzija koju smo koristili za testiranje, koristi neku vrstu hardverskog kripto ubrzanja pošto su prijavljeni rezultati znatno iznad onoga što su ranije verzije OpenSSL-a mogle da postignu (u proseku, videli smo četvorostruko poboljšanje).

Međutim, u poređenju sa rezultatima Raspberry Pi Zero 2W, koji su samo softverski, možemo primetiti da su prilično slični. Ovo može ukazivati na to da su kripto motori još uvek neaktivni, ali su OpenSSL algoritmi ručno optimizovani za RISC-V. Ako u budućnosti uočimo neko veće povećanje performansi, ovo je verovatniji scenario.

Sledeći test na našoj listi, tinimembench, se, na sreću kompajlirao, ali su rezultati koje smo dobili bili prilično niski (međutim, u skladu sa rezultatima drugih). Ovde je važno da vidimo opštu brzinu od ~800 MB/s, što je iznenađujuće čak i u svim testovima.

Imamo mnogo više iskustva u tumačenju ARM i x86 rezultata, tako da nismo sasvim sigurni šta uzrokuje niže rezultate, ali to je verovatno zbog rane MMU revizije korišćene u U7 jezgrima, kao i zbog opšte nestabilnosti softvera. U svakom slučaju, čini se da ovde imamo jednokanalnu RAM konfiguraciju, što nije previše idealno sa podešavanjima od 8 GB. Ipak, čak i sa sporijom RAM memorijom (i nažalost, samo jednim testom koji to potvrđuje), zadovoljni smo kako ploča radi. Opet, srećni smo što vidimo da RISC-V ploče rade pristojno, tako da bi bilo nepravedno očekivati vrhunske performanse.

UnixBench je mesto gde stvari počinju da prepoznaju VisionFive 2. Rezultati ga stavljaju negde u skladu sa rezultatima Raspberry Pi 4, što je prilično impresivno. UnixBench je odličan test jer je konstruisan na jednostavnim, osnovnim operacijama i donekle izjednačava teren između različitih arhitektura. Ovo je velika pobeda za VisionFive 2 i ponosni smo na to koliko je postigao.

Octane 2.0, jedan od naših zastarelih testova koji se u velikoj meri oslanja na optimizaciju softvera, takođe daje VisionFive 2 pristojan rezultat, mnogo iznad Raspberry Pi 3B+. Još nije sasvim na nivou Raspberry Pi 4, ali pokazuje određeni stepen optimizacije softvera i hardverske snage koji se ne vide uvek, čak i na nekim jeftinijim ARM pločama.

IO performanse su pristojne. Uspeli smo da izmerimo do 20,94 Mbps na SD kartici koristeći hdparm. Brzine NVMe, s druge strane, su spore, na samo 171,2 MB/s, merene istom komandom. Kingston NV2 SSD koji smo koristili ima brzinu do 3.000 MB/s, što je skoro 15 puta brže od onoga što vidimo ovde. Obično ne testiramo USB brzine jer smo otkrili da većina ploča dostiže one koje su prijavljene, ali nas je „multipleksirano sa PCIe 2.0 1x linijom“ pomalo privuklo.

USB 3.2 Gen 1 portovi bi trebalo da budu u stanju da dostignu 5 Gbps, što bi trebalo da im pruži teoretski propusni opseg do 625 MB/s, ili u stvarnosti, nešto ispod 500 MB/s, uz uračunavanje usporenja usled kodiranja.

Proveravajući sa nekoliko USB fleš diskova određenih za ove brzine, završili smo sa prosekom od samo 168,2 MB/s (i ne, nije bilo nikakvih grešaka koje su smanjile ovaj broj, svi pojedinačni rezultati su bili unutar ~5% jedan od drugog). Ovo je sumnjivo slično performansama NVMe. Možda je NVMe veza implementirana preko VIA USB kontrolera, sa podelom propusnog opsega između portova (to bi se samo dodalo), ili se suočavamo sa nekim softverskim problemima. Jedna PCIe 2.0 traka treba da postigne 500 MB/s. Nadamo se da je to samo softver, ali moramo napomenuti da se Jean-Luc Aufranc iz CNKSSoft-a suočio sa vrlo sličnim problemima tokom svog rada.

Imamo ugrađen hardverski video koder koji obećava 1080p30 mogućnosti kodiranja. Iznenađujuće, podržava samo H.265 kodiranje u hardveru, a ne H.264, što je malo šteta, ali radi iznenađujuće dobro!

Da bismo testirali hardverski koder, pokrenuli smo:

ffmpeg -i big_buck_bunny_1080p_H264_AAC_25fps_7200K.MP4 -c:v hevc_omx -preset medium -b:v 4000k output_h264.mp4

Ovo nam je dalo oko 31 FPS – kao što je obećano u specifikaciji. Impresivni rezultati za ovu malu ploču, i definitivno može koristiti kao enkoder kamere ili čak za laka transkodiranja.

Međutim, softversko kodiranje je bilo druga priča. Startovali smo:

ffmpeg -i big_buck_bunny_1080p_H264_AAC_25fps_7200K.MP4 -c:v libx264 -preset medium -b:v 4000k output_h264.mp4

Ovog puta, ploča je postigla oko 1,6 FPS, što je presporo da bi bilo korisno za bilo koju aplikaciju. Prebacivanje -preset zastavice na ultrabrzo je malo ubrzalo proces, dajući nam 10 FPS, što je još uvek malo. Čini se da četiri U7 jezgra jednostavno ne mogu da prate zahtevne tokove kodiranja softvera, što nije iznenađujuće s obzirom na njihove opšte rezultate.

GPU je još uvek pomalo crna kutija, a Vulkan je glavni „podržani“ API. Stavljamo to pod navodnike jer je i dalje prilično maglovito, sa mnogo problema sa performansama koje značajno usporavaju ploču. Voleli bismo da dobijemo tačnu procenu brzine Imagination GPU-a koji se ovde koristi, ali to će morati da sačeka dok ne budu izašli stabilniji grafički drajveri.

Ovo nam daje prilično pristojan pregled glavnih tačaka performansi ploče. Pristojne performanse CPU-a koje definitivno imaju prostora za rast sa budućim ažuriranjima (sa celim komadićima silikona koji se ne koriste), donekle slabe performanse RAM-a, koje bi svakako imale koristi od dvokanalnog čipa, i na kraju, slabe performanse IO datoteka koje, po našem mišljenju , ozbiljno ometa korišćenje servera.

Da je ovo ARM SBC, mi bismo se mnogo teže bavili nedostacima, ali imamo posla sa potpuno novom tehnologijom i bilo bi nepravedno upoređivati je direktno sa višedecenijskom platformom. Ipak, postoji mnogo prostora za poboljšanje, kako u dizajnu hardvera (posebno sa RAM-om), tako i sa NVMe i USB performansama.

Korisničko iskustvo i softverska podrška

Ovog puta smo ih grupisali zajedno jer će, baš kao i referentne vrednosti, korisničko iskustvo biti prilično oslonjeno na samu softversku podršku.

Na prvi pogled, naizgled je mnogo dostupnih distribucija, kao što su Debian, Arch, Gentoo, Ubuntu i Deepin. Postoje specijalni OS kao što su OpenWRT i ROS, ali i imidži specifični za Kinu kao što su OpenEuler i OpenKylin. Divno! Lepo je videti toliko truda zajednice koji se ulaže u razvoj softvera za novu platformu.

Međutim, skoro svaki od njih je ili veoma eksperimentalan ili… samo uglavnom eksperimentalan. Teško je nekome opisivati novu arhitekturu, a da mu ne dozvolite da se okuša u upotrebi VisionFive-a. Na svakom ćošku, treba biti svestan, ima mnogo čuda i problema i potrebno je mnogo znanja da biste ih prevazišli. Debian je jedini „zvanični“ OS za ploču, i u suštini se „raspada po šavovima“. Jedna sudo apt-get update && apt-get nadogradnja je dovoljna da razbije sistem do te mere da će ga spasiti samo nova ponovna instalacija.

Mnoge stvari ovde ne rade kako bi trebalo, ili rade – ali jedva. A to je Debian, zvanični OS.

Na primer: ako pokušate da pokrenete sudo apt-get upgrade, pokvarićete ceo OS, ali problemi počinju i pre toga: sa sudo apt-get ažuriranjem koje obaveštava korisnike o isteklim ključevima za potpis repozitorija. Više paketa ne radi, iako su dostupni, a neke sistemske funkcije imaju tendenciju da se pokvare. Usput smo čak doživeli i nekoliko padova sistema. Ovde definitivno nije idealno iskustvo.

Canonical, sami proizvođači Ubuntua, uložili su ogroman napor da obezbede first party podršku za ploču, i oni su, u partnerstvu sa StarFive, razvili funkcionalni port za OS. Međutim, i on ima značajne nedostatke. Nije podržan sav ugrađeni hardver. Lista stvari koje jednostavno ne rade uključuju USB portove, PCIe i grafički podsistem uopšte, što UART komunikaciju čini jedinim održivim metodom.

Da stvar bude još gora, postoje dve verzije ploče u opticaju: uobičajena v1.3B varijanta koja generalno ima bolju podršku i mnogo ređa i starija ploča v.1.2A koja obično zahteva neku modifikaciju softverskog stabla uređaja i obično čak i više ograničenja (na primer, jedan od Ethernet portova je onemogućen u Ubuntu-u). Podrazumeva se da ćete sve vreme ručno kompajlirati, podešavati i menjati kod da bi neki osnovni uslužni programi funkcionisali, pa ako vam to ne odgovara, ova ploča definitivno neće biti za vas.

Board VisionFive 2

photo: magazin Mehatronika

Dakle, softverske opcije nisu baš uglađene i veoma su projekti koji su u toku. Međutim, ovo nije najveći izazov za nove korisnike.

Sve ploče v1.2A i v1.3B dolaze sa starom verzijom firmvera. Samo najnoviji firmver čini ploču sposobnom da pokrene najnovije OS imidže, tako da bi ažuriranje trebalo da bude vaš prvi prioritet. Ako imate dovoljno sreće da nabavite ploču sa novim – ili barem jednim od srednjih – izdanja firmvera, procedura ažuriranja neće biti složenija od nekoliko komandi ukucanih u Linux terminalu. Međutim, ako nemate sreće – kao mi – i dobijete jednu od tih ranih ploča (naša je v1.2A), ono što vas čeka je noćna mora za novajlije.

VisionFive 2 board detail

photo: magazin Mehatronika

Da biste pokrenuli program za pokretanje na najnoviju verziju, prvo će vam biti potreban USB-to-UART kabl za serijske komunikacije da biste pristupili konzoli za pokretanje sistema. Nakon toga, trebaće vam rezervna Linux mašina za pokretanje TFTP servera. Nakon što ste ovo postavili i osigurali da je vaš TFTP server potpuno funkcionalan, moraćete da usmerite U-boot na vaš TFTP server slanjem nekoliko komandi preko serijskog porta sa vašeg računara. Ako sve ovo prođe dobro, uspešno ste ažurirali firmver! Čestitamo!

Međutim, koliko god zvučalo jednostavno, u praksi to nije tako lako. StarFive ima vodič u svojim zvaničnim dokumentima, ali kao što je Džejms Čejmbers istakao u svom odličnom članku u vezi sa procesom ažuriranja, zvanični dokumenti imaju neke nedostatke. Iskusni Linux korisnik može da se probije kroz ovaj proces, ali mi ozbiljno sumnjamo koliko bi početnik mogao da uradi. U stvari, sumnjamo u ovu činjenicu toliko da nam je teško da preporučimo VisionFive 2 onima koji su još uvek novajlija za embedovane Linux ploče.
Na kraju, moramo priznati da je sve ispalo dobro. Nije bilo ćorsokaka. Nije bilo nerešivih pitanja. Pokrenuli smo sistem i to mnogo govori o radu StarFive-a.

Ovo je ploča za programere i iskusne Linux korisnike. Cilj mu je da korisnicima pruži jeftinu platformu koja im omogućava da doprinesu razvoju RISC-V. To je ploča za one koji žele da budu u toku sa najnovijim dostignućima u razvoju Linuxa za ovaj novi ISA, ali definitivno nije dobra početna ploča ili ploča namenjena opštoj publici.

Zaključak

VisionFive 2 je intrigantan ploča. Zaista jeste. Uzbudljivo je jer prvi put vidimo takvu računarsku snagu i podršku zajednice iza uređaja koji je zasnovan na zaista otvorenom ISA. Otvoreni hardver se svodi bukvalno na nivo silikona, a mi smo svi za to.

Kao što smo istakli ranije, sav softver je u suštini u različitim nijansama eksperimentalnog. Ništa dostupno nije pravo produkcijsko izdanje, ali i ne mora biti, pošto je VisionFive 2 više razvojni sistem. Njegov pravi cilj nije bio da dovede RISC-V u mase, ne još, već da omogući programeru hobistima da uskoče i pomognu u nastajanju potpuno funkcionalne RISC-V mašine niske cene. U zavisnosti od toga gde nabavite svoj primerak, može vas koštati samo 70 dolara. Za 100 dolara više je nego moguće nabaviti i jedan od modela od 8 GB, a za oko 140 dolara možete uzeti komplete koji sadrže i potrebnu dodatnu opremu.

Boards on desk

photo: magazin Mehatronika

Naša jedina prava zamerka su performanse (donekle nepovezane sa sirovim performansama procesora, koje smatramo zadovoljavajućim), ali smo voljni da ih previdimo s obzirom na trenutno konkurentnu cenu sistema.

Sve u svemu, VisionFive 2 je ploča za one koji su dovoljno vešti i odvažni da pređu na samu ivicu trenutne embedovane tehnologije. Njegov softver je još uvek u svojim ranim fazama, ali takva i cela njegova CPU arhitektura, tako da je nestabilnost razumljiva. Dovoljno impresivno, softverska podrška je mnogo bolja od onoga što su čak i vodeće ARM ugrađene ploče imale pre samo deceniju, sve sa strastvenom zajednicom koja se okuplja da bi RISC-V učinila održivom arhitekturom desktopa i servera. I to je zaista nešto neverovatno.

Dušan Dakić