Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Forth, za one sa razlčitim rasporedom vijuga...
Evo nastavka priče od onih 200 Forth VM-ova na grafičkoj, sad je to preraslo u ozbiljan projekat Smile

Forth jezgra pisana ručno u asembleru, za svaku porodicu procesora posebno

Jedan isti Forth, a ispod njega ručno pisano jezgro za svaki procesor posebno. Jezgro je mala virtuelna mašina: NEXT petlja, opkodi i tabela skokova.
Svako jezgro se proverava protiv iste reference (moj forth.c): isti ulaz, pa se poredi stek, status i cela memorija VM-a, bajt po bajt.

Živo, pravo ovde: ekran sa prozorima crta Forth u WASM jezgru, preko GPU-a vašeg pregledača (prozor Demo ima film, logo, tunel, plazmu...).
ceo ekran

1. Koja jezgra imam i koliko su velika
Veličina u bajtovima flash-a, samo jezgro, bez programa i podataka.
PorodicaČipoviJezgro (B)Provereno
DOS 16-bit8086, .COM563DOS emulator
PIC16PIC16F18855, PIC16F17125924pravi čip (PICkit 5)
x86-32i386+, Linux bez libc1 028Linux
WASMbrowser1 392Node, browser
PRUTI PRU-ICSS (AM335x, AM64)1 520pravi PRU0 na BBB
C2000TI Piccolo F28x1 682simulator
RISC-VRV32IMC: ESP32-C3/C6, CH32V2 104QEMU
XtensaESP32, S2, S32 342QEMU
Thumb-1STM32 F0, RP2040, nRF512 346QEMU
Thumb-2STM32 F1/F4/G4/H73 214QEMU + prava BBB
AArch64RPi 3/4, Zero 2 W3 496QEMU
80518051, 80524 031simulator
x86-64PC, serveri4 035Linux
ARMv6RPi Zero, BeagleBone Black4 552prava BBB
Z80Z80—simulator
PTXNVIDIA GPU—RTX 5060 Ti
Od pola kilobajta do četiri i po, zavisno od procesora.

2. Konzola (REPL) nad ASM jezgrom
Pun interaktivni Forth (parser, rečnik, ispis, sve) radi direktno nad ručno pisanim jezgrom.
JezgroKonzola (B)GdeRezultat
x86-6425 792PC, Linux201/201 isto kao forth.c
Thumb-215 721Cortex-M4 (-Os); pravi test na BBB201/201, 1,7–1,8x brža od forth.c

3. GPU — hiperparalelno
Svaka nit na grafičkoj je jedan ceo Forth VM, sa svojom memorijom i stekovima. Pustim N VM-ova odjednom, pa onda svaki od njih ponovo kroz CPU referencu i uporedim stek, status, broj koraka i celu memoriju.
N VM-ovaGPU koraka/s1 CPU jezgroGPU/CPUisto kao referenca
11,6 M520 M0,0031 / 1
1 024681 M513 M1,31 024 / 1 024
16 38410,8 G531 M2016 384 / 16 384
65 53617,9 G504 M3665 536 / 65 536
262 14412,9 G486 M27262 144 / 262 144
  • Do 262 144 Forth mašina istovremeno na RTX 5060 Ti, nijedna razlika u odnosu na referencu.
  • Vrh je ~18 milijardi Forth koraka u sekundi, oko 36x jedno CPU jezgro.
  • Kad se uračuna i prenos podataka na karticu i nazad, ostaje ~11x.
Reply


Messages In This Thread
RE: Forth, za one sa razlčitim rasporedom vijuga... - by mikikg - 11 hours ago

Forum Jump:


Users browsing this thread: 1 Guest(s)