PC Ekspert Forum

PC Ekspert Forum (https://forum.pcekspert.com/index.php)
-   DIY i Tinkering (https://forum.pcekspert.com/forumdisplay.php?f=74)
-   -   RISC-V (https://forum.pcekspert.com/showthread.php?t=323707)

Bubba 15.11.2025. 01:03

RISC-V
 
Planirao sam prije izvjesnog vremena napisati/objaviti/potaknuti neki clanak za RISC-V temu, pa evo nefiltriranog i u nekim dijelovima mozebitno pogresnog teksta. S obzirom da imamo ARM temu, nema razloga da ne zagadim MySQL s RISC-V temom, a tldr; je povijesna prica i malo brzih testova meni dostupnog hardvera.

Uvod

Kada je Intel prije gotovo 54 godine izbacio 4004, 4 bitni mikroprocesor koji se smatra prvim komercijalnim mikroprocesorom u povijesti (iako je prvi pravi, doduse nekomercijalni, bio Garrett AiResearch F14 Air Data Computer, oko 8 puta brži i godinu dana stariji od 4004; koga zanima ta priča, može pogledati sljedeću poveznicu, Ray Holtov rad koji je deklasificiran tek 1998.), za tadašnjih 40 američkih dolara (ekvivalent gotovo 470 američkih dolara na današnji dan), otpočela je industrijska revolucija koja je u sljedećih 50 godina omogućila razni spektar novog ljudskog djelovanja - od letova u svemir i planova za kolonizaciju drugih ravnih ploča u istom, do liječenja najtežih oboljenja i dodavanja 10 godina na prosječnu očekivanu dob čovjeka, pa sve do toga da Zdravka iz Ferovaca kraj Požege zalijepi masni selfi na omiljenu platformu za razmjenjivanje brilijantnih ideja preko Interneta s generativnom pozadinom Dubaija u kojemu nikada nije bila gotovo za džabe.

Sportski savjet čitateljima je, da ukoliko ih ne zanima možda ne baš prekratak i potencijalno rubno precizan povijesni osvrt podložan naknadnoj kvalitetnoj forumskoj debati nego samo pregled trenutno nama dostupnog RISC-V hardvera, neka slobodno preskoče sljedećih nekoliko desetaka kilobajta teksta. S druge strane, smatramo da ovakav osvrt može i neupućenom čitatelju dati materijal za razumijevanje motivacije i problematike te podstrek za dodatnim istraživanjem teme.

Prirodno, za tih istih 60 američkih dolara kao i prije 50 i kusur godina, danas možete dobiti Raspberry Pi 5 a za ovih konvertiranih 470 američkih dolara vjerojatno i iscijediti neku komotnu osnovnu PC konfiguraciju koja nije zanemarivih performansi za širok spektar djelatnosti i nadogradivosti.

I u tom čarobnom procesu koji traje tih 50ak godina, dogodile su se zaista čarobne tržišne situacije i komercijalne pojave, no ukoliko zagrebemo malo u subspecijalizaciju konkretne teme, već i prosječnom čitatelju vjerojatno je poznato da postoji ne samo nekoliko različitih igrača na području proizvodnje (mikro)procesora (mikro je u zagradi jer nVidia GB200 ima oko 208 milijardi - 208.000.000.000 - tranzistora, naspram 2.300 Intela 4004, te površinu jezgre od približno 858 mm2 naspram 12 mm2 tog istog Intela - u obzir uzmite i litografije kako bi dobili dojam nesrazmjera veličine jezgara, jasno) nego da postoji i nešto što se zove “arhitektura procesora”, što nije samo povezano s činjenicom kako taj procesor interno funkcionira, što većini ljudi nije niti relevantno niti razumljivo, nego s činjenicom da postoji poseban skup instrukcija koje su čitljive i razumljive specifičnoj arhitekturi, što je nešto što krajnji korisnik “osjeća”, jer bez adekvatne softverske podrške, arhitektura postaje neiskoristiva.

Sa svojih 46 instrukcija, Intel je prije 50 godina omogućio taj put revolucije - umjesto mehaničko-električkog programiranja strojeva tih vremena, korisnik je mogao u Intel 4001 upisati 256 bajtova (odnosno 8 bitnih programskih instrukcija) kako bi opisao, i naknadno potencijalno prepisao način djelovanja periferija i njihovih ulazno/izlaznih parametara. Nije teško za pretpostaviti kakav je to napredak donijelo - koristeći takav čip, proizvođači su mogli temeljem jednog hardverskog dizajna napraviti više različitih proizvoda, a dodatno se pojednostavio i model kvalitete i kontrole samih uređaja - ukoliko bi vaš hardverski dizajn bio adekvatan, dramatično lakše i jeftinije je bilo prepisati, doraditi i popraviti softver nego ponovno prolaziti cijeli dizajnerski i proizvodni proces hardvera. Interesantno, Intel 4004 je imao dovoljno veliki broj internih registara da za određene aplikacije nije bilo potrebno koristiti Intel 4002 čip, 40 bajtni RAM.

Tijekom tih 50 minulih godina, posljedično ovome otkriću, svjedočili smo raznim verzijama i iteracijama raznih procesorskih arhitektura. Stariji korisnici pamte kako je sredinom 90. godina prošlog stoljeća na tržištu osobnih računala nastupila impresivna heterogenost dostupnih procesorskih arhitektura - od Intelovog x86 dizajna, preko Motorole 68000, raznih verzija MIPS-a, PowerPC-a, Sparca, Itaniuma, HP-ovog PA-RISC-a pa sve do Digitalove/Compaqove/HP-ove Alphe uz neke sramežljive izlete raznih ARM baziranih rješenja. Ako se dodatno uz to odmaknete u embedded priču prema dolje ili u enterprise priču prema gore, lista se širi toliko da bi uredništvo ponovno uložilo službenu notu protiv mene da sam zauzeo preveliku količinu diska na PcEkspert serveru! Popratno, uz heterogenost arhitektura, imali ste i heterogenost operativnih sustava, pa dok danas prakticki osim u nekim opskurnim ili visokospecijaliziranim segmentima nemamo ništa osim Windows/Linux/OS X derivata, tadašnji korisnik je mogao (više ili manje uspješno) birati između raznih okusa BSD-ova, RISC OS-a, BeOS-a, HP-UX-a, Atari TOS-a, AmigaOS-a, NeXTSTEP-a, IRIX-a, OS/2 i ostalih još manje popularnih i poznatih pokušaja.

I nekako se početkom novog desetljeća/stoljeća/tisućljeća ta heterogenost počela topiti, prije svega velikom popularizacijom mobilnih uređaja, te uz nekoliko počasnih i više akademskih izleta u tom periodu pa do sada, arhitektura procesora za generalno korištenje u svim sferama može svesti na x86/x64 i ARM, bez smanjenja općenitosti za sve dostupne derivate i finese koje te dvije arhitekture donose.

Sama ta činjenica nije neobična jer je zbog one prethodno navedene revolucije hardver bez softvera kao sarma bez mesa - nejestiv i beskoristan. Podržavati user-space softver za tolik broj platformi (arhitektura + OS) je težak i skup proces i prirodno-tržišna selekcija je odradila svoje, ostavljajući nas u (barem formalno) relativno ograničenom ekosustavu.

Unatoč tome što se još nismo kroz ovaj kratki povijesni pregled dotakli naslovne teme, zbog konteksta i mišljenja kako na hrvatskom jeziku postoji kronični nedostatak ovakih tema, tek sada ćemo se dotaknuti povijesti RISC i onda konkretno RISC-V arhitekture.

Prije toga, jasno, ponovno valja dati pregled nekoliko pojmova, a to je prije svega pojam RISC i CISC u kontekstu arhitekture procesora. Nepopularno, ali ako poznajete opus autora onda niste začuđeni, je kazati činjenicu da dotična dva pojma spadaju pod računalne atavizme, jednako kao i čuveni Turingov test. Naprosto, dotični pojmovi su imali smisao i razumno su mogli opisivati pojave i ponašanja u neka davna vremena. Danas (zapravo, barem zadnjih 20 godina, a možda i više), Complex Instruction Set Computer (CISC) i Reduced Instruction Set Computer (RISC) su pojmovi koji se za ozbiljno jedino uzimaju u službenoj literaturi uz kurikulume hrvatskih visokoobrazovnih ustanova (jedna od notornih konstatacija jest kako “R” znači mali broj instrukcija, primjerice, što je prije svega pogrešna interpretacija teoretskog RISC dizajna), no kako ne bismo ulazili u tu temu dublje, možemo reći da je osnovni koncept reducirane izvedbe skupa instrukcija bio taj da postoje kratke i brze instrukcije koje je moguće izvesti u jednom taktu. Jasno, napretkom arhitektura i potreba tržišta te uz implementaciju cjevovoda, mikrokodiranih instrukcija i sličnih značajki, gotovo da nema procesora koji može zadovoljiti elementarne pretpostavke RISC arhitekture kako je zamišljena prije puno godina. No ono što je povijesno i barem s idejom činilo RISC privlačnom arhitekturom jeste činjenica da su implementacije daleko lakše. To je, prirodno, bilo daleko bitnije u neka davna vremena, ali niti danas nije zanemariv aspekt razvoja. Konačno, RISC/CISC pojmove više možete razmatrati kao filozofske smjerove u računalnoj znanosti, nego konkretne i atomarne koncepte neke arhitekture.

Prapovijest

Pa da barem osnovno zagrebemo ipak malo dublje u povijest i sadašnjost RISC(-V) priče. Ranih 70. godina prošlog stoljeća, IBM-ovi mainframeovi dominirali su tržištem “snažnih” računala. IBM je do tada investirao 5 milijardi američkih dolara, što je u to doba predstavljalo dvostruki godišnji promet) u razvoj System/360 serije. 1970. godine nasljednik S/370 pokazao se kao veliki uspjeh. No S/370 je imao velik broj instrukcija koje su bile često vrlo kompleksne. Neke instrukcije, poput “Move character” bi pročitao skup podataka s memorijske lokacije, manipulirao s tim podacima te ih pohranio u neki drugi dio memorije. Kompleksnost je uvedena zbog činjenice što je memorija u to vrijeme bila vrlo spora (memorija je i danas vrlo spora, no uzmite kontekst “prije 50 godina spora”; te također podsjetnik da prije svega pričamo o latenciji, ne nužno o propusnosti), što je logično usporavalo izvršavanje programa. Jedna instrukcija koja bi omogućila da se više aktivnosti odvije u jednom dohvatu ubrzaval bi taj proces u svrhu izbjegavanja višestrukih dohvata instrukcija.

Poslovični IBM-ov model omogućavao je korisnicima izbor raznih varijanti S/360 i S/370 sustava koji su varirali u cijeni i, posljedično, performansama. Jeftinije izvedbe su intenzivnije koristile “mikrokodove”, odnosno instrukcije izlomljene na manje “mikroinstrukcije”. Dekodiranje i izvršavanje tih instrukcija je trajalo duže, pa je samim time i izvršavanje bilo sporije, dok su skuplje izvedbe imale “hardkodirane” instrukcije u samo fizičko sklopovlje pa su bile brže. U to vrijeme godišta, poslovno je IBM cvjetao na tom modelu.

Sljedeće, 1971. godine, IBM-u je prišao Ericsson s prijedlogom zajedničkog ulaganja u razvoj telefonskog sustava koji bi bio konkurencija velikom IBM-ovom tehnološkom rivalu - AT&T. IBM-ovi inženjeri su ubrzo shvatili kako arhitektura popit S/370 ne bi bila adekvatna za telefoniju - performanse mikrokodiranog sustava ne bi bile dovoljno dobre za taj korisnički slučaj, dok bi hardwired pristup bio preskup. I nakon nekoliko mjeseci internih sastanaka i posljedičnih pregovora s Ericssonom, dogovor nije postignut ali je IBM na sebi svojstven način zaključio kako bi mogli napasti AT&T u potpunosti sami. Nakon dodatnog internog razvoja, IBM-ovi inženjeri predstavili su starijem menadžmentu svoju ideju telefonske centrale, no prijedlog je odbijen.

Ali ideje koje su nastale temeljem tog istraživanja bile toliko napredne da su inženjeri ipak uspjeli nagovoriti menadžment da nastave s projektom. I tako je nastao projekt IBM 801 predvođen IBM Fellowom Johnom Cockeom. Kao veteran Korejskog rata potpomognut ogromnim iskustvom razvoja računalnih sustava te kao osoba koja je bila duboko involvirana u razvoj IBM Stretch sustava, prethodnika S/360, Cocke je bio i ekspert u razvoju kompajlera. Smisao projekta bio je napraviti sustav značajno bolji od IBM-ovog System/3 miniračunala koji nije imao zapaženiji uspjeh u borbi s Digitalovim VAX-om u to doba.

Tim zadužen za razvoj također je imao dubinske detaljne uvide u obrasce izvršavanja programa na S/360 sustavima (tzv. “instruction traces”), što im je dalo uvid u to koje se instrukcije najčešće izvršavaju. To istraživanje pokazalo je kako je veliki broj tih instrukcija u principu - jednostavan. Učitavanje, pohranjivanje, grananje i još nekoliko jednostavnih registarskih operacija činilo je dominantnu glavninu izvršenih instrukcija!

Dodatno, analizom kompleksnih instrukcija poput prethodno navedenog “Move Character” pokazalo se da za tipično korištenje te instrukcije, količina podataka kojom se manipuliralo zapravo koristi vrlo malu količinu podataka te da bi mali broj jednostavnih instrukcija isti posao obavio brže.

Naoružan tim podacima, tim je počeo dizajnirati novi sustav. Kako bi bili uspješni, tim je morao dizajnirati određen broj značajki koje zapravo definiraju ono što ćemo u budućnosti prepoznati kao RISC filozofiju. Prva posuđena ideja bila je Seymour Crayeva, i to iz njegovog CD 6600 superračunala - novi sistem imati će samo “load-store” arhitekturu, gdje bi jednostavne “load” i “store” instrukcije bile jedini način za pristup i mijenjanje memorije. Također je uveden i instrukcijski cache, koji bi smanjio penale dohvata čitanja instrukcija. No razvoj 801 sustava nije bio samo hardverski - za tržišni uspjeh bilo je potrebno razviti i odgovarajuće kompajlere koji bi optimizirali generirani kod i izvukli najviše od hardvera.

Tako je nastao programski jezik PL 0.8; a ime je nastalo jer je jezik inicijalno bio veliki podskup IBM-ovog PL/1 jezika koji se smatrao preopsežnim za reimplementaciju za još uvijek eksperimentalni R&D projekt koji je IBM 801 bio.

Više vrlo zanimljivih detalja možete vidjeti u arhivskom snimku na YouTubeu naslova “Computer History - John Cocke: A Retrospective by Friends - 1990”, što svakako preporučujemo radi opće kulture domene računalne znanosti.

Bez detaljnog ulaženja u specifičnosti IBM 801 sustava, koji je više bio miniračunalo nego mikroprocesor, važno je napomenuti da niti John Cocke niti IBM tim nisu skovali skraćenicu “Reduced Instruction Set Computer - RISC”. Taj termin skovao je David Patterson na Berkeleyu, gdje je zajedno sa Johnom Hennessyjem sa Stanforda i njihovim studentima uzeo ono što ćemo sljedećih desetljeća poznavati kao RISC konceptom i napravio prvi mikroprocesor baziran na tome.

Hajde brate više barem povijest

Ako ste ostali sa nama do ovdje, čestitamo, nećete dobiti ništa materijalno, ali sjetite se kako je Hamlet odgovorio na Polonijevu prijetnju - “Ništa vi ne možete, gospodine, uzeti od mene s čim se ja ne ću dragovoljno oprostiti — osim moje glave, osim života mog”; ponovno se nadamo da je takeout ovog članka motivacija za daljnje istraživanje i osobno napredovanje čitatelja u ispravnom smjeru.

Pa, da krenemo onda s “pravom” poviješću, odnosno onom koja se tiče samog RISC-a i konkretnog dobivanja oblika kakvog poznaje ta filozofija. 1980. u radu “Patterson&Ditzel: The Case for a Reduced Instruction Set Computer” predstavlja se hipoteza RISC računala s ključnim prednostima koje podrazumijevaju bolje performanse od njihovih kompleksnih suvremenika.

Uz taj rad, Berkeley tim je razvio svoj vlastiti RISC mikroprocesor, kasnije poznatiji kao Berkeley RISC-I. RISC-I dizajn imao je samo 31 instrukciju ali veliki broj registara, uz čak 78 32 bitnih posloženih u šest registarskih prozora. Kako je RISC-I napredovao, drugi RISC dizajn, RISC-II (poznatiji kao i Blue - uzevši u obzir neinventivna imena, velika je sreća što su tvorci bili daleko maštovitiji na području računalne znanosti nego humanistike). Paralelno s time, na proplanku Bay Area, John Hennessy sa Stanforda počeo je raditi na drugoj RISC arhitekturi, MIPS. Komercijalna društva poput HP-a, IBM-a, Sparca te Acorna počeli su raditi na svojim RISC verzijama, poput PA-RISC-a, Sparca, PC/RT-a te ARM-a. No kako smo rekli na početku članka, do danas, jedino je ARM ostao u isplativom poslovanju, iako se još negdje može pronaći kakav zalutali MIPS u starim šaržama osvježenih dizajna. Iako nećemo ulaziti u detalje barem 20 godina dugačke RISC borbe na tržištu, podsjećamo čitatelje da su i društva poput Intela (i960/iAPX432/i860) i AMD-a (Am29000) u nekom vremenskom periodu bila RISC-curious sa, evidentno, poprilično nes(p)retnim završetcima, iako ih se neki možda neki sjećaju ako su imali ili u to vrijeme godišta, ili bitno kasnije u “stari hardver za kojim se slinilo” momentu, viđati po SCSI RAID kontrolerima i opskurnim grafičkim karticama, pogotovo Intelov i860.

Naša današnja tema ipak jeste RISC-V; te usput, pogađate, postoje i RISC-III i RISC-IV ( Berkeleyjev SOAR i SPUR su tako retroaktivno nazvani), čisto da popunimo numeraciju. I ponovno se vraćamo na Berkeley u Kaliforniju na početak 2005. godine. Stari znanac David Patterson uz Krstu Asanovića započinje sastanke s diskusijom problema vezanih za paralelizam računalnih sustava. To posljedično dovodi do formiranja “Parallel Computing Laboratory” (Par Lab) na Berkeleyu. Osniva se znansveno istraživački program koji bi trebao istražiti probleme oko izgradnje sustava s velikim brojem (od 64 do 1000+) procesorskih jezgara. Program je dobio i svoje ime - “Research Accelerator for Multiple Processors” odnosno RAMP. U nekoliko sljedećih godina, napravljena je serija sustava poslovično neinventivnih imena - RAMP Red/Blue/White/Gold, baziranih na različitim procesorima, počevši od PPC 405, raznih FPGA-ova te Sunovih SPARC-ova. Paralelno, Intel i Microsoft ulažu sredstva zajedno s Par Labom u razne projekte iste problematike. U isto to vrijeme, Google počinje na razvoju Golanga koji također među raznim problemima cilja na olakšavanje razvoja user-space softvera koji će moći, u razvojnom smislu, puno učinkovitije i lakše koristiti mnoštvo procesorskih jezgara.

Pri kraju petogodišnjeg razvojnog ciklusa, Asanović sa svoja dva studenta, Watermanom and Leejem, počinje na razvoju nove jezgre, primarno potaknut frustracijom kompliciranog IP-a svih do sada korištenih arhitektura. Istraživanjem tada dostupnih potencijalnih rješenja poput SPARC-a, OpenRISC-a, DLX-a i sličnih, zaključuju da niti jedna alternativa nema sve što misle da im je potrebno. U svibnju 2010. godine počinju na razvoju vlastite arhitekture; te već u kolovozu iste godinu imaju ime - “RISC-V - V for Five, V for Vector, V for Variants” (V za pet, V za Vektore, V za Varijante).

U kontekstu 2010. godine, već pričamo o tome da GPGPU nije nepoznanica (CUDA je tada aktivna već 3 godine), heterogenost arhitektura ‘90. godina nije više toliko istaknuta te su x86 i ARM već ozbiljno iskristalizirani kao de-facto predvodnici novog perioda, te se postavlja pitanje može li se u 3 mjeseca zaista napraviti nešto novo i bitno i to sa dva studenta i mentorom. Kako sreća prati hrabre a naivnost nekada može biti ključna za uspjeh jer anihilira strah od objektivnog i realnog, tako već točno godinu dana kasnije, u svibnju 2011. godine, izlazi prva verzija priručnika “RISC-V ISA” od svega 32 stranice. Nova ISA (Instruction Set Architecture) omogućuje jednostavnu komercijalnu izvedbu direktne hardverske implementacije, 32 i 64 bitnu opciju, implementaciju za više jezgara te operacije s pomičnom točkom. Također omogućuje dizajnerima dodavanje vlastitih instrukcijskih proširenja arhitekturi.

Prva izvedba na siliciju nazvana je Raven-1 i izašla je istovremeno s gorenavedenim priručnikom, sljeđen Raven-2 i Raven-3 izvedbama u kolovozu 2012 odnosno rujnu 2013. godine. Već 2014. godine, u radu “A 45nm 1.3GHz 16.7 Double-Precision GFLOPS/W RISC-V Processor with Vector Accelerators” Berkeley tim demonstrirao je značajan uspjeh, pokazavši 10% veći DMIPS/MHz omjer od Cortex-A5 jezgre, uz gotovo 50% veći učinkovitost u smislu površine jezgre. Uz snagu open source filozofije, tim je već tada koristio GCC i LLVM cross-compilere kao i Linux port.

No, RISC-V je, kao i open source, postao zaista filozofski smjer, ne toliko u smislu onoga kojeg smo prethodno naveli, koji je više bio inspiracija nego filozofija. Originalna motivacija bazirala se na tome da kada već ISA može biti vlasnička zbog povijesnih ili poslovnih razloga, ne postoji dobar tehnički razlog zašto ne bi postojala i slobodna, otvorena ISA.

I upravo danas možemo vidjeti kako ARM plovi nesigurnim vodama koje frapantno podsjećaju na Rambus priču od prije 20ak godina te će biti zanimljivo gledati kako, uz neosporan uzlet RISC-V arhitekture, sljedeći period može donijeti vrlo zanimljive događaje. Bilo kako bilo, ono što RISC-V jest je, uz neobavezan prijevod sa službene stranice - RISC-V ISA je slobodna i otvorena uz permisivnu licenciju za korištenje bilo kome u svim vrstama implementacija. Dizajneri su slobodni razviti vlasničke ili otvorene implementacije za komercijalnu ili drugu eksploataciju po vlastitom nahođenju.

Ipak, valja imati na umu da RISC-V nije “isti” open source kao primjerice Linux, nego više naginje otvorenom standardu poput Etherneta. RISC-V ISA definira otvoreni standard kao sučelje između procesora (hardvera) i softvera baš kako Ethernet standard definira skup otvorenih mrežnih standarda.

Iako u ovom trenutku nećemo ići u analizu same arhitekture, jer bi vjerojatno trebali napraviti čitavu seriju usporedbi sa puno specifičnih detalja (primjerice, u klasičnoj usporedbi s ARM arhitekturom prije svega bi trebali odlučiti hoćemo li raditi usporedbu s klasičnim ARM modom, Thumb ili Thumb2 modom ili se prebaciti u Jazelle mod pa tek onda ući u komplikaciju, a kamo li da se isto to proširi na ostale arhitekture), no upravo zbog činjenice da je čitav koncept otvoren čitatelju nije teško doći do relevantnih informacija kratkom pretragom).

Završno, pak, barem za ovaj dio, važno je napomenuti da RISC-V zaista postoji i kako sada stvari stoje, unatoč donekle sramežljivom razvoju, izgleda da je tu da ostane. Počevši od činjenice da je Raspberry Pi lansiranjem RP2350 mikrokontrolera proširio poznati i razvijeni ekosustav Raspberry Pia s RISC-V jezgrom, što spada u domenu “vidljivih” implementacija, pa do toga da je procjena kako je već daleko preko 10 milijardi RISC-V procesora sakriveno po raznim diskovima, procesorima i ostalom hardveru širom uređaja te da ih svakodnevno implicitno koristimo ni ne znajući. Upravo zato, donosimo malo atipičan osvrt na nama trenutno dostupan hardver, koji se sastoji od:
  • MangoPi MQ-Pro SBC pogonjen Allwinnerovom D1 implementacijom baziranoj na XuanTie C906 RISC-V kompatibilnim jezgrama (Raspberry Pi Zero format)
  • Sipeed Lichee Pi 4A SBC pogonjen T-Headovom TH1520 implementacijom baziranoj na XuanTie C910 RISC-V kompatibilnim jezgrama
  • Milk-V Jupiter pogonjen SPACEMIT M1 osmojezgrenim X60 SOC-om (RV64GCVB, RVA22, RVV1.0)
  • DeepComputing DC-ROMA RISC-V Laptop pogonjen StarFive JH7110 implementacijom baziranoj na SiFive U74-MC RISC-V kompatibilnoj implementaciji
U principu, tekst u nastavku nije recenzija (ima ih dosta na engleskom po Internetima), nego brzi testovi na hrpi koji bi se trebali moci lako usporedjivati. Zajednički nazivnik svom dostupnom hardveru je:
  • nedostatak odgovarajućeg mainline truda (u smislu Linuxa)
  • teška i skupa dobavljivost, najčešće putem kineskih dobavljača
  • loša dokumentacija
  • nedostatak lako dobavljivih hladnjaka
  • visoka cijena za mizerne performanse
Ipak, valja imati na umu da je većina hardvera ionako korisna samo za razvoj (i okladu na budućnost), a ne za ugodno dnevno korištenje.

Bubba 15.11.2025. 01:04

Geekbench

MangoPi - premalo RAM-a
Milk-V Jupiter - https://browser.geekbench.com/v6/cpu/15038328
Sipeed Lichee Pi 4A - https://browser.geekbench.com/v6/cpu/8520691
DeepComputing DC-ROMA - https://browser.geekbench.com/v6/cpu/8520677

7-Zip (z) 24.08

MangoPi
Code:

7-Zip (z) 24.08 (riscv64) : Copyright (c) 1999-2024 Igor Pavlov : 2024-08-11
 64-bit locale=C.UTF-8 Threads:1 OPEN_MAX:1024

Compiler:  ver:14.2.0 GCC 14.2.0
Linux : 6.11.0-8-generic : #8.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Oct  1 11:40:56 UTC 2024 : riscv64
PageSize:4KB THP:madvise hwcap:112D
riscv64

1T CPU Freq (MHz):  954  975  975  976  976  977  977

RAM size:    950 MB,  # CPU hardware threads:  1
RAM usage:    437 MB,  # Benchmark threads:      1

                      Compressing  |                  Decompressing
Dict    Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
        KiB/s    %  MIPS  MIPS  |      KiB/s    %  MIPS  MIPS

22:        402  100    392    391  |      7623  100    652    651
23:        371  100    379    378  |      7489  100    649    648
24:        362    99    393    389  |      7347  100    646    645
25:        359  100    411    411  |      7059  100    629    628
----------------------------------  | ------------------------------
Avr:      373  100    394    392  |      7380  100    644    643
Tot:            100    519    518

Milk-V Jupiter
Code:

7-Zip (z) 24.08 (riscv64) : Copyright (c) 1999-2024 Igor Pavlov : 2024-08-11
 64-bit locale=en_US.UTF-8 Threads:8 OPEN_MAX:1024

Compiler:  ver:13.2.0 GCC 13.2.0
Linux : 6.6.63 : #2.2.4.2 SMP PREEMPT Thu Jun 26 05:06:32 UTC 2025 : riscv64
PageSize:4KB THP:madvise hwcap:20112D
riscv64

1T CPU Freq (MHz):  1582  1585  1584  1585  1584  1584  1585
4T CPU Freq (MHz): 397% 1581  399% 1581 
8T CPU Freq (MHz): 795% 1581  755% 1497 

RAM size:  15886 MB,  # CPU hardware threads:  8
RAM usage:  1779 MB,  # Benchmark threads:      8

                      Compressing  |                  Decompressing
Dict    Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
        KiB/s    %  MIPS  MIPS  |      KiB/s    %  MIPS  MIPS

22:      4158  564    717  4045  |    134202  793  1443  11444
23:      4123  623    675  4201  |    130840  795  1424  11318
24:      3807  603    679  4094  |    126979  797  1398  11141
25:      3914  701    638  4469  |    119992  785  1360  10677
----------------------------------  | ------------------------------
Avr:      4000  623    677  4202  |    128003  792  1406  11145
Tot:            707  1042  7674

Sipeed Lichee Pi 4A
Code:

7-Zip (z) 24.08 (riscv64) : Copyright (c) 1999-2024 Igor Pavlov : 2024-08-11
 64-bit locale=C.UTF-8 Threads:4 OPEN_MAX:1024

Compiler:  ver:14.2.0 GCC 14.2.0
Linux : 5.10.113-lpi4a : #2024.02.29.14.50+3eee2bf4d SMP PREEMPT Thu Feb 29 14:51:04 UTC  : riscv64
PageSize:4KB hwcap:20112D
riscv64

1T CPU Freq (MHz):  741  741  743  742  743  743  743
2T CPU Freq (MHz): 199% 740  199% 742 
4T CPU Freq (MHz): 400% 739  399% 740 

RAM size:  15727 MB,  # CPU hardware threads:  4
RAM usage:    889 MB,  # Benchmark threads:      4

                      Compressing  |                  Decompressing
Dict    Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
        KiB/s    %  MIPS  MIPS  |      KiB/s    %  MIPS  MIPS

22:      1884  292    628  1833  |      33635  398    721  2870
23:      1766  300    600  1799  |      33113  398    720  2865
24:      1705  307    597  1834  |      32352  398    713  2839
25:      1715  315    621  1959  |      31229  398    698  2779
----------------------------------  | ------------------------------
Avr:      1767  303    612  1856  |      32582  398    713  2838
Tot:            351    662  2347

DeepComputing DC-ROMA
Code:

7-Zip (z) 24.08 (riscv64) : Copyright (c) 1999-2024 Igor Pavlov : 2024-08-11
 64-bit locale=en_US.utf-8 Threads:4 OPEN_MAX:1024
                                                   
Compiler:  ver:14.2.0 GCC 14.2.0                 
Linux : 5.15.0 : #1 SMP Sun Oct 8 11:18:00 GMT 2023 : riscv64
PageSize:4KB hwcap:112D                                                                                 
riscv64                                                                                                 
                                                                                                       
1T CPU Freq (MHz):  1247  1498  1498  1498  1498  1498  1498
2T CPU Freq (MHz): 197% 1496  199% 1492                                                               
4T CPU Freq (MHz): 397% 1493  377% 1418                                                               
                                                                                                       
RAM size:    7934 MB,  # CPU hardware threads:  4                                                     
RAM usage:    889 MB,  # Benchmark threads:      4                                                     
                                                                                                       
                      Compressing  |                  Decompressing
Dict    Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
        KiB/s    %  MIPS  MIPS  |      KiB/s    %  MIPS  MIPS                                                                                                                                             

22:      3169  334    923  3084  |      69920  381  1564  5965
23:      2950  328    915  3006  |      68852  384  1552  5958
24:      2985  349    920  3210  |      66863  382  1537  5868
25:      2747  335    937  3137  |      66100  388  1516  5883
----------------------------------  | ------------------------------
Avr:      2963  337    924  3109  |      67934  384  1542  5918
Tot:            360  1233  4514

BYTE UNIX Benchmarks (Version 5.1.3)

MangoPi
Code:

  BYTE UNIX Benchmarks (Version 5.1.3)

  System: ubuntu: GNU/Linux
  OS: GNU/Linux -- 6.11.0-8-generic -- #8.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Oct  1 11:40:56 UTC 2024
  Machine: riscv64 (riscv64)
  Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
  19:13:18 up  9:06,  2 users,  load average: 0.66, 0.37, 0.17; runlevel 2024-10-29

------------------------------------------------------------------------
Benchmark Run: Tue Oct 29 2024 19:13:18 - 19:41:36
1 CPU in system; running 1 parallel copy of tests

Dhrystone 2 using register variables        3272866.1 lps  (10.0 s, 7 samples)
Double-Precision Whetstone                    1068.5 MWIPS (10.0 s, 7 samples)
Execl Throughput                                134.1 lps  (29.8 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        37915.2 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          10879.4 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        105093.1 KBps  (30.0 s, 2 samples)
Pipe Throughput                              100306.4 lps  (10.0 s, 7 samples)
Pipe-based Context Switching                  7835.7 lps  (10.0 s, 7 samples)
Process Creation                                331.4 lps  (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                    303.2 lpm  (60.2 s, 2 samples)
Shell Scripts (8 concurrent)                    38.9 lpm  (61.0 s, 2 samples)
System Call Overhead                        159683.9 lps  (10.0 s, 7 samples)

System Benchmarks Index Values              BASELINE      RESULT    INDEX
Dhrystone 2 using register variables        116700.0    3272866.1    280.5
Double-Precision Whetstone                      55.0      1068.5    194.3
Execl Throughput                                43.0        134.1    31.2
File Copy 1024 bufsize 2000 maxblocks          3960.0      37915.2    95.7
File Copy 256 bufsize 500 maxblocks            1655.0      10879.4    65.7
File Copy 4096 bufsize 8000 maxblocks          5800.0    105093.1    181.2
Pipe Throughput                              12440.0    100306.4    80.6
Pipe-based Context Switching                  4000.0      7835.7    19.6
Process Creation                                126.0        331.4    26.3
Shell Scripts (1 concurrent)                    42.4        303.2    71.5
Shell Scripts (8 concurrent)                      6.0        38.9    64.8
System Call Overhead                          15000.0    159683.9    106.5
                                                                  ========
System Benchmarks Index Score                                          76.4

Milk-V Jupiter
Code:

  BYTE UNIX Benchmarks (Version 5.1.3)

  System: Milk-V-M1-Jupiter: GNU/Linux
  OS: GNU/Linux -- 6.6.63 -- #2.2.4.2 SMP PREEMPT Thu Jun 26 05:06:32 UTC 2025
  Machine: riscv64 (riscv64)
  Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
  CPU 0: Spacemit(R) X60 (0.0 bogomips)
         
  CPU 1: Spacemit(R) X60 (0.0 bogomips)
         
  CPU 2: Spacemit(R) X60 (0.0 bogomips)
         
  CPU 3: Spacemit(R) X60 (0.0 bogomips)
         
  CPU 4: Spacemit(R) X60 (0.0 bogomips)
         
  CPU 5: Spacemit(R) X60 (0.0 bogomips)
         
  CPU 6: Spacemit(R) X60 (0.0 bogomips)
         
  CPU 7: Spacemit(R) X60 (0.0 bogomips)
         
  21:07:10 up 10 min,  2 users,  load average: 2.22, 2.26, 1.33; runlevel 5

------------------------------------------------------------------------
Benchmark Run: Fri Nov 14 2025 21:07:10 - 21:35:06
8 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables      11323172.3 lps  (10.0 s, 7 samples)
Double-Precision Whetstone                    2093.7 MWIPS (10.0 s, 7 samples)
Execl Throughput                                590.0 lps  (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        214989.0 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          64835.9 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        466021.4 KBps  (30.0 s, 2 samples)
Pipe Throughput                              402288.8 lps  (10.0 s, 7 samples)
Pipe-based Context Switching                  32315.8 lps  (10.0 s, 7 samples)
Process Creation                              1536.2 lps  (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  1860.3 lpm  (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    714.7 lpm  (60.1 s, 2 samples)
System Call Overhead                        608736.2 lps  (10.0 s, 7 samples)

System Benchmarks Index Values              BASELINE      RESULT    INDEX
Dhrystone 2 using register variables        116700.0  11323172.3    970.3
Double-Precision Whetstone                      55.0      2093.7    380.7
Execl Throughput                                43.0        590.0    137.2
File Copy 1024 bufsize 2000 maxblocks          3960.0    214989.0    542.9
File Copy 256 bufsize 500 maxblocks            1655.0      64835.9    391.8
File Copy 4096 bufsize 8000 maxblocks          5800.0    466021.4    803.5
Pipe Throughput                              12440.0    402288.8    323.4
Pipe-based Context Switching                  4000.0      32315.8    80.8
Process Creation                                126.0      1536.2    121.9
Shell Scripts (1 concurrent)                    42.4      1860.3    438.8
Shell Scripts (8 concurrent)                      6.0        714.7  1191.2
System Call Overhead                          15000.0    608736.2    405.8
                                                                  ========
System Benchmarks Index Score                                        366.4

------------------------------------------------------------------------
Benchmark Run: Fri Nov 14 2025 21:35:06 - 22:03:04
8 CPUs in system; running 8 parallel copies of tests

Dhrystone 2 using register variables      90498806.1 lps  (10.0 s, 7 samples)
Double-Precision Whetstone                    16493.9 MWIPS (10.0 s, 7 samples)
Execl Throughput                              3012.6 lps  (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        372752.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          110215.4 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        802227.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                            3194690.5 lps  (10.0 s, 7 samples)
Pipe-based Context Switching                290869.0 lps  (10.0 s, 7 samples)
Process Creation                              6524.6 lps  (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  6925.2 lpm  (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    898.9 lpm  (60.3 s, 2 samples)
System Call Overhead                        1650156.0 lps  (10.0 s, 7 samples)

System Benchmarks Index Values              BASELINE      RESULT    INDEX
Dhrystone 2 using register variables        116700.0  90498806.1  7754.8
Double-Precision Whetstone                      55.0      16493.9  2998.9
Execl Throughput                                43.0      3012.6    700.6
File Copy 1024 bufsize 2000 maxblocks          3960.0    372752.5    941.3
File Copy 256 bufsize 500 maxblocks            1655.0    110215.4    666.0
File Copy 4096 bufsize 8000 maxblocks          5800.0    802227.5  1383.2
Pipe Throughput                              12440.0    3194690.5  2568.1
Pipe-based Context Switching                  4000.0    290869.0    727.2
Process Creation                                126.0      6524.6    517.8
Shell Scripts (1 concurrent)                    42.4      6925.2  1633.3
Shell Scripts (8 concurrent)                      6.0        898.9  1498.2
System Call Overhead                          15000.0    1650156.0  1100.1
                                                                  ========
System Benchmarks Index Score                                        1350.4

Sipeed Lichee Pi 4A
Code:

  BYTE UNIX Benchmarks (Version 5.1.3)

  System: lpi4a: GNU/Linux
  OS: GNU/Linux -- 5.10.113-lpi4a -- #2024.02.29.14.50+3eee2bf4d SMP PREEMPT Thu Feb 29 14:51:04 UTC
  Machine: riscv64 (unknown)
  Language: en_US.utf8 (charmap="UTF-8", collate="ANSI_X3.4-1968")
  19:12:59 up 2 days, 10:20,  1 user,  load average: 0.28, 0.08, 0.02; runlevel Oct

------------------------------------------------------------------------
Benchmark Run: Tue Oct 29 2024 19:12:59 - 19:41:04
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables        5155406.0 lps  (10.0 s, 7 samples)
Double-Precision Whetstone                    1071.0 MWIPS (10.0 s, 7 samples)
Execl Throughput                                346.8 lps  (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        45483.3 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          12696.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        139251.3 KBps  (30.0 s, 2 samples)
Pipe Throughput                              109577.1 lps  (10.0 s, 7 samples)
Pipe-based Context Switching                  12000.3 lps  (10.0 s, 7 samples)
Process Creation                                659.4 lps  (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  1226.8 lpm  (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    424.0 lpm  (60.1 s, 2 samples)
System Call Overhead                        108354.2 lps  (10.0 s, 7 samples)

System Benchmarks Index Values              BASELINE      RESULT    INDEX
Dhrystone 2 using register variables        116700.0    5155406.0    441.8
Double-Precision Whetstone                      55.0      1071.0    194.7
Execl Throughput                                43.0        346.8    80.7
File Copy 1024 bufsize 2000 maxblocks          3960.0      45483.3    114.9
File Copy 256 bufsize 500 maxblocks            1655.0      12696.0    76.7
File Copy 4096 bufsize 8000 maxblocks          5800.0    139251.3    240.1
Pipe Throughput                              12440.0    109577.1    88.1
Pipe-based Context Switching                  4000.0      12000.3    30.0
Process Creation                                126.0        659.4    52.3
Shell Scripts (1 concurrent)                    42.4      1226.8    289.3
Shell Scripts (8 concurrent)                      6.0        424.0    706.6
System Call Overhead                          15000.0    108354.2    72.2
                                                                  ========
System Benchmarks Index Score                                        132.8

------------------------------------------------------------------------
Benchmark Run: Tue Oct 29 2024 19:41:04 - 20:09:14
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables      20508463.4 lps  (10.0 s, 7 samples)
Double-Precision Whetstone                    4263.5 MWIPS (10.0 s, 7 samples)
Execl Throughput                              1352.8 lps  (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        184627.3 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          50431.5 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        522817.6 KBps  (30.0 s, 2 samples)
Pipe Throughput                              426844.1 lps  (10.0 s, 7 samples)
Pipe-based Context Switching                  75082.7 lps  (10.0 s, 7 samples)
Process Creation                              2155.8 lps  (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  3231.2 lpm  (60.1 s, 2 samples)
Shell Scripts (8 concurrent)                    440.2 lpm  (60.2 s, 2 samples)
System Call Overhead                        421074.0 lps  (10.0 s, 7 samples)

System Benchmarks Index Values              BASELINE      RESULT    INDEX
Dhrystone 2 using register variables        116700.0  20508463.4  1757.4
Double-Precision Whetstone                      55.0      4263.5    775.2
Execl Throughput                                43.0      1352.8    314.6
File Copy 1024 bufsize 2000 maxblocks          3960.0    184627.3    466.2
File Copy 256 bufsize 500 maxblocks            1655.0      50431.5    304.7
File Copy 4096 bufsize 8000 maxblocks          5800.0    522817.6    901.4
Pipe Throughput                              12440.0    426844.1    343.1
Pipe-based Context Switching                  4000.0      75082.7    187.7
Process Creation                                126.0      2155.8    171.1
Shell Scripts (1 concurrent)                    42.4      3231.2    762.1
Shell Scripts (8 concurrent)                      6.0        440.2    733.7
System Call Overhead                          15000.0    421074.0    280.7
                                                                  ========
System Benchmarks Index Score                                        462.2

DeepComputing DC-ROMA
Code:

  BYTE UNIX Benchmarks (Version 5.1.3)

  System: starfive: GNU/Linux
  OS: GNU/Linux -- 5.15.0 -- #1 SMP Sun Oct 8 11:18:00 GMT 2023
  Machine: riscv64 (unknown)
  Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
  12:12:59 up 1 day, 21:23,  2 users,  load average: 1.02, 0.87, 0.85; runlevel

------------------------------------------------------------------------
Benchmark Run: Tue Oct 29 2024 12:12:59 - 12:40:59
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables        8409087.4 lps  (10.0 s, 7 samples)
Double-Precision Whetstone                    1463.4 MWIPS (10.0 s, 7 samples)
Execl Throughput                              1529.3 lps  (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        192489.8 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          62340.4 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        358460.2 KBps  (30.0 s, 2 samples)
Pipe Throughput                              410120.1 lps  (10.0 s, 7 samples)
Pipe-based Context Switching                  39843.7 lps  (10.0 s, 7 samples)
Process Creation                              1525.7 lps  (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  2630.4 lpm  (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                  1356.4 lpm  (60.0 s, 2 samples)
System Call Overhead                        721779.2 lps  (10.0 s, 7 samples)

System Benchmarks Index Values              BASELINE      RESULT    INDEX
Dhrystone 2 using register variables        116700.0    8409087.4    720.6
Double-Precision Whetstone                      55.0      1463.4    266.1
Execl Throughput                                43.0      1529.3    355.7
File Copy 1024 bufsize 2000 maxblocks          3960.0    192489.8    486.1
File Copy 256 bufsize 500 maxblocks            1655.0      62340.4    376.7
File Copy 4096 bufsize 8000 maxblocks          5800.0    358460.2    618.0
Pipe Throughput                              12440.0    410120.1    329.7
Pipe-based Context Switching                  4000.0      39843.7    99.6
Process Creation                                126.0      1525.7    121.1
Shell Scripts (1 concurrent)                    42.4      2630.4    620.4
Shell Scripts (8 concurrent)                      6.0      1356.4  2260.6
System Call Overhead                          15000.0    721779.2    481.2
                                                                  ========
System Benchmarks Index Score                                        407.1

------------------------------------------------------------------------
Benchmark Run: Tue Oct 29 2024 12:40:59 - 13:09:05
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables      33425412.9 lps  (10.0 s, 7 samples)
Double-Precision Whetstone                    5808.1 MWIPS (10.0 s, 7 samples)
Execl Throughput                              5793.1 lps  (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        707502.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          242905.3 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks      1077891.0 KBps  (30.0 s, 2 samples)
Pipe Throughput                            1623020.3 lps  (10.0 s, 7 samples)
Pipe-based Context Switching                168873.7 lps  (10.0 s, 7 samples)
Process Creation                              11872.0 lps  (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  11076.3 lpm  (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                  1252.2 lpm  (60.1 s, 2 samples)
System Call Overhead                        2876881.1 lps  (10.0 s, 7 samples)

System Benchmarks Index Values              BASELINE      RESULT    INDEX
Dhrystone 2 using register variables        116700.0  33425412.9  2864.2
Double-Precision Whetstone                      55.0      5808.1  1056.0
Execl Throughput                                43.0      5793.1  1347.2
File Copy 1024 bufsize 2000 maxblocks          3960.0    707502.5  1786.6
File Copy 256 bufsize 500 maxblocks            1655.0    242905.3  1467.7
File Copy 4096 bufsize 8000 maxblocks          5800.0    1077891.0  1858.4
Pipe Throughput                              12440.0    1623020.3  1304.7
Pipe-based Context Switching                  4000.0    168873.7    422.2
Process Creation                                126.0      11872.0    942.2
Shell Scripts (1 concurrent)                    42.4      11076.3  2612.3
Shell Scripts (8 concurrent)                      6.0      1252.2  2087.0
System Call Overhead                          15000.0    2876881.1  1917.9
                                                                  ========
System Benchmarks Index Score                                        1477.0

cryptsetup (benchmark)

MangoPi
Code:

# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1        43458 iterations per second for 256-bit key
PBKDF2-sha256      56790 iterations per second for 256-bit key
PBKDF2-sha512      49951 iterations per second for 256-bit key
PBKDF2-ripemd160  33065 iterations per second for 256-bit key
PBKDF2-whirlpool  21445 iterations per second for 256-bit key
argon2i      4 iterations, 65536 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id      4 iterations, 65536 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
#    Algorithm |      Key |      Encryption |      Decryption
        aes-cbc        128b        7.6 MiB/s        10.3 MiB/s
    serpent-cbc        128b        5.5 MiB/s        7.8 MiB/s
    twofish-cbc        128b        6.7 MiB/s        11.0 MiB/s
        aes-cbc        256b        5.8 MiB/s        8.4 MiB/s
    serpent-cbc        256b        5.5 MiB/s        7.8 MiB/s
    twofish-cbc        256b        6.8 MiB/s        11.0 MiB/s
        aes-xts        256b        11.3 MiB/s        11.4 MiB/s
    serpent-xts        256b        8.2 MiB/s        8.2 MiB/s
    twofish-xts        256b        12.1 MiB/s        12.1 MiB/s
        aes-xts        512b        9.0 MiB/s        9.0 MiB/s
    serpent-xts        512b        8.2 MiB/s        8.2 MiB/s
    twofish-xts        512b        12.1 MiB/s        12.0 MiB/s

Milk-V Jupiter
Code:

# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1      174529 iterations per second for 256-bit key
PBKDF2-sha256    197100 iterations per second for 256-bit key
PBKDF2-sha512    182806 iterations per second for 256-bit key
PBKDF2-ripemd160  152942 iterations per second for 256-bit key
PBKDF2-whirlpool  72575 iterations per second for 256-bit key
argon2i      4 iterations, 283705 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id      4 iterations, 286809 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
#    Algorithm |      Key |      Encryption |      Decryption
        aes-cbc        128b      219.0 MiB/s      225.5 MiB/s
    serpent-cbc        128b        26.4 MiB/s        27.5 MiB/s
    twofish-cbc        128b        41.6 MiB/s        44.7 MiB/s
        aes-cbc        256b      206.4 MiB/s      206.8 MiB/s
    serpent-cbc        256b        27.4 MiB/s        27.5 MiB/s
    twofish-cbc        256b        43.3 MiB/s        44.9 MiB/s
        aes-xts        256b      212.5 MiB/s      214.7 MiB/s
    serpent-xts        256b        27.4 MiB/s        28.0 MiB/s
    twofish-xts        256b        44.4 MiB/s        45.9 MiB/s
        aes-xts        512b      195.3 MiB/s      194.8 MiB/s
    serpent-xts        512b        28.6 MiB/s        28.0 MiB/s
    twofish-xts        512b        46.4 MiB/s        45.8 MiB/s

Sipeed Lichee Pi 4A
Code:

izgubljeni po putu - ako pronađem, dopunim
DeepComputing DC-ROMA
Code:

# Tests are approximate using memory only (no storage IO).                                                                                                   
PBKDF2-sha1      117870 iterations per second for 256-bit key                                                                                               
PBKDF2-sha256    152055 iterations per second for 256-bit key                                                                                               
PBKDF2-sha512    145151 iterations per second for 256-bit key                                                                                               
PBKDF2-ripemd160  102080 iterations per second for 256-bit key         
PBKDF2-whirlpool  52851 iterations per second for 256-bit key         
argon2i      4 iterations, 202897 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id      4 iterations, 212779 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
#    Algorithm |      Key |      Encryption |      Decryption             
        aes-cbc        128b        32.2 MiB/s        32.1 MiB/s       
    serpent-cbc        128b              N/A              N/A                                                                                               
    twofish-cbc        128b              N/A              N/A       
        aes-cbc        256b        31.6 MiB/s        31.9 MiB/s             
    serpent-cbc        256b              N/A              N/A             
    twofish-cbc        256b              N/A              N/A           
        aes-xts        256b              N/A              N/A               
    serpent-xts        256b              N/A              N/A         
    twofish-xts        256b              N/A              N/A                                                                                               
        aes-xts        512b              N/A              N/A                                                                                               
    serpent-xts        512b              N/A              N/A               
    twofish-xts        512b              N/A              N/A

C-Blosc2

MangoPi
Code:

********************** Run info ******************************
Blosc version: 2.15.2.dev ($Date:: 2024-07-30 #$)
Using synthetic data with 19 significant bits (out of 32)
Dataset size: 8388608 bytes    Type size: 4 bytes
Working set: 256.0 MB          Number of threads: 8
********************** Running benchmarks *********************
memcpy(write):          126943.1 us, 63.0 MB/s
memcpy(read):            7095.7 us, 1127.4 MB/s
Compression level: 0
comp(write):    8878.0 us, 901.1 MB/s    Final bytes: 8388640  Ratio: 1.00
decomp(read):    10127.6 us, 789.9 MB/s  OK
Compression level: 1
comp(write):    115394.0 us, 69.3 MB/s  Final bytes: 2143456  Ratio: 3.91
decomp(read):    108290.4 us, 73.9 MB/s  OK
Compression level: 2
comp(write):    178519.8 us, 44.8 MB/s  Final bytes: 681248  Ratio: 12.31
decomp(read):    121218.7 us, 66.0 MB/s  OK
Compression level: 3
comp(write):    222997.8 us, 35.9 MB/s  Final bytes: 681408  Ratio: 12.31
decomp(read):    121230.8 us, 66.0 MB/s  OK
Compression level: 4
comp(write):    196402.4 us, 40.7 MB/s  Final bytes: 594880  Ratio: 14.10
decomp(read):    119931.7 us, 66.7 MB/s  OK
Compression level: 5
comp(write):    195443.2 us, 40.9 MB/s  Final bytes: 594880  Ratio: 14.10
decomp(read):    120160.3 us, 66.6 MB/s  OK
Compression level: 6
comp(write):    195476.7 us, 40.9 MB/s  Final bytes: 594880  Ratio: 14.10
decomp(read):    119981.1 us, 66.7 MB/s  OK
Compression level: 7
comp(write):    148712.5 us, 53.8 MB/s  Final bytes: 326800  Ratio: 25.67
decomp(read):    116033.0 us, 68.9 MB/s  OK
Compression level: 8
comp(write):    125588.0 us, 63.7 MB/s  Final bytes: 179712  Ratio: 46.68
decomp(read):    113405.3 us, 70.5 MB/s  OK
Compression level: 9
comp(write):    118062.5 us, 67.8 MB/s  Final bytes: 105404  Ratio: 79.59
decomp(read):    112235.3 us, 71.3 MB/s  OK

Round-trip compr/decompr on 2.5 GB
Elapsed time:      87.2 s, 64.6 MB/s

Milk-V Jupiter
Code:

********************** Run info ******************************
Blosc version: 2.15.2 ($Date:: 2024-11-28 #$)
Using synthetic data with 19 significant bits (out of 32)
Dataset size: 8388608 bytes        Type size: 4 bytes
Working set: 256.0 MB                Number of threads: 8
********************** Running benchmarks *********************
memcpy(write):                13586.0 us, 588.8 MB/s
memcpy(read):                3376.0 us, 2369.7 MB/s
Compression level: 0
comp(write):        3271.6 us, 2445.3 MB/s          Final bytes: 8388640  Ratio: 1.00
decomp(read):        3489.7 us, 2292.5 MB/s          OK
Compression level: 1
comp(write):        9317.5 us, 858.6 MB/s          Final bytes: 2143456  Ratio: 3.91
decomp(read):        5180.8 us, 1544.2 MB/s          OK
Compression level: 2
comp(write):        12624.8 us, 633.7 MB/s          Final bytes: 681248  Ratio: 12.31
decomp(read):        4771.5 us, 1676.6 MB/s          OK
Compression level: 3
comp(write):        15886.4 us, 503.6 MB/s          Final bytes: 681408  Ratio: 12.31
decomp(read):        4769.0 us, 1677.5 MB/s          OK
Compression level: 4
comp(write):        15236.1 us, 525.1 MB/s          Final bytes: 594880  Ratio: 14.10
decomp(read):        7184.3 us, 1113.5 MB/s          OK
Compression level: 5
comp(write):        15342.4 us, 521.4 MB/s          Final bytes: 594880  Ratio: 14.10
decomp(read):        7147.2 us, 1119.3 MB/s          OK
Compression level: 6
comp(write):        15168.4 us, 527.4 MB/s          Final bytes: 594880  Ratio: 14.10
decomp(read):        7213.9 us, 1109.0 MB/s          OK
Compression level: 7
comp(write):        13073.7 us, 611.9 MB/s          Final bytes: 326800  Ratio: 25.67
decomp(read):        7247.3 us, 1103.9 MB/s          OK
Compression level: 8
comp(write):        11786.6 us, 678.7 MB/s          Final bytes: 179712  Ratio: 46.68
decomp(read):        7382.9 us, 1083.6 MB/s          OK
Compression level: 9
comp(write):        14870.5 us, 538.0 MB/s          Final bytes: 105404  Ratio: 79.59
decomp(read):        10125.7 us, 790.1 MB/s          OK

Round-trip compr/decompr on 2.5 GB
Elapsed time:            6.8 s, 824.3 MB/s

Sipeed Lichee Pi 4A
Code:

********************** Run info ******************************
Blosc version: 2.15.2.dev ($Date:: 2024-07-30 #$)
Using synthetic data with 19 significant bits (out of 32)
Dataset size: 8388608 bytes    Type size: 4 bytes
Working set: 256.0 MB          Number of threads: 8
********************** Running benchmarks *********************
memcpy(write):          32941.3 us, 242.9 MB/s
memcpy(read):            5023.6 us, 1592.5 MB/s
Compression level: 0
comp(write):    6575.0 us, 1216.7 MB/s  Final bytes: 8388640  Ratio: 1.00
decomp(read):    6461.7 us, 1238.1 MB/s  OK
Compression level: 1
comp(write):    24221.4 us, 330.3 MB/s  Final bytes: 2143456  Ratio: 3.91
decomp(read):    30445.4 us, 262.8 MB/s  OK
Compression level: 2
comp(write):    30683.5 us, 260.7 MB/s  Final bytes: 681248  Ratio: 12.31
decomp(read):    31659.3 us, 252.7 MB/s  OK
Compression level: 3
comp(write):    34052.7 us, 234.9 MB/s  Final bytes: 681408  Ratio: 12.31
decomp(read):    30983.7 us, 258.2 MB/s  OK
Compression level: 4
comp(write):    34215.2 us, 233.8 MB/s  Final bytes: 594880  Ratio: 14.10
decomp(read):    24260.1 us, 329.8 MB/s  OK
Compression level: 5
comp(write):    33726.2 us, 237.2 MB/s  Final bytes: 594880  Ratio: 14.10
decomp(read):    27296.5 us, 293.1 MB/s  OK
Compression level: 6
comp(write):    34255.0 us, 233.5 MB/s  Final bytes: 594880  Ratio: 14.10
decomp(read):    33035.4 us, 242.2 MB/s  OK
Compression level: 7
comp(write):    37501.4 us, 213.3 MB/s  Final bytes: 326800  Ratio: 25.67
decomp(read):    26261.4 us, 304.6 MB/s  OK
Compression level: 8
comp(write):    36286.2 us, 220.5 MB/s  Final bytes: 179712  Ratio: 46.68
decomp(read):    28579.6 us, 279.9 MB/s  OK
Compression level: 9
comp(write):    35552.4 us, 225.0 MB/s  Final bytes: 105404  Ratio: 79.59
decomp(read):    18996.4 us, 421.1 MB/s  OK

Round-trip compr/decompr on 2.5 GB
Elapsed time:      19.8 s, 283.9 MB/s

DeepComputing DC-ROMA
Code:

********************** Run info ******************************
Blosc version: 2.15.2.dev ($Date:: 2024-07-30 #$)
Using synthetic data with 19 significant bits (out of 32)
Dataset size: 8388608 bytes    Type size: 4 bytes
Working set: 256.0 MB          Number of threads: 8
********************** Running benchmarks *********************
memcpy(write):          18745.6 us, 426.8 MB/s
memcpy(read):            13126.4 us, 609.5 MB/s
Compression level: 0
comp(write):    8091.7 us, 988.7 MB/s    Final bytes: 8388640  Ratio: 1.00
decomp(read):    7910.2 us, 1011.4 MB/s  OK
Compression level: 1
comp(write):    15664.1 us, 510.7 MB/s  Final bytes: 2143456  Ratio: 3.91
decomp(read):    13518.0 us, 591.8 MB/s  OK
Compression level: 2
comp(write):    20544.3 us, 389.4 MB/s  Final bytes: 681248  Ratio: 12.31
decomp(read):    14085.6 us, 568.0 MB/s  OK
Compression level: 3
comp(write):    23715.1 us, 337.3 MB/s  Final bytes: 681408  Ratio: 12.31
decomp(read):    14083.1 us, 568.1 MB/s  OK
Compression level: 4
comp(write):    23254.7 us, 344.0 MB/s  Final bytes: 594880  Ratio: 14.10
decomp(read):    14586.4 us, 548.5 MB/s  OK
Compression level: 5
comp(write):    22891.2 us, 349.5 MB/s  Final bytes: 594880  Ratio: 14.10
decomp(read):    14426.9 us, 554.5 MB/s  OK
Compression level: 6
comp(write):    22880.3 us, 349.6 MB/s  Final bytes: 594880  Ratio: 14.10
decomp(read):    14452.3 us, 553.5 MB/s  OK
Compression level: 7
comp(write):    20923.6 us, 382.3 MB/s  Final bytes: 326800  Ratio: 25.67
decomp(read):    15295.4 us, 523.0 MB/s  OK
Compression level: 8
comp(write):    18797.9 us, 425.6 MB/s  Final bytes: 179712  Ratio: 46.68
decomp(read):    15163.4 us, 527.6 MB/s  OK
Compression level: 9
comp(write):    17940.8 us, 445.9 MB/s  Final bytes: 105404  Ratio: 79.59
decomp(read):    16372.5 us, 488.6 MB/s  OK

Round-trip compr/decompr on 2.5 GB
Elapsed time:      12.0 s, 470.4 MB/s


radi.neradi 15.11.2025. 03:15

Zahvaljujem se na poučnom tekstu.


Sva vremena su GMT +2. Sada je 00:50.

Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 1999-2024 PC Ekspert - Sva prava pridržana ISSN 1334-2940
Ad Management by RedTyger