Realiseerimisele tuleb 8-bitine ujukoma-formaad FP8_E3M4 üks tehetest, abistavad lisa-funktsioond on allpool. Tehteks on omal valikul kas liitmine, lahutamine või korrutamine (soovitav on tehted jagada omavahel). Realiseerimine toimub kolmes etapis - (1) prototüüp tööjaamal ja (2) realisatsioon Basys MX3-l (mikrokontroller). Tööks vajalikud failid leiab M-kettalt (katalog /M/Peeter.Ellervee/IAS0150/fp8_e3m4/ või veebist https://www.tud.ttu.ee/im/Peeter.Ellervee/IAS0150/fp8_e3m4/).

-------------------------------------------------------------------------------------------------

Esitus:  s.eee.mmmm  (bias 3),   väärtus: (-1)^s*(1+mmmm/16)*2^(eee-3)

Erijuhud:
eee==000 - normaliseerimata mantiss, väärtus: (-1)^s*(0+mmmm/16)*2^(-2)
0.000.0000 == 0
s.111.0000 == +/- lõpmatus
x.111.1xxx == nan (not a number)

Väärtuste vahemikud:
0.000.0001  väikseim normaliseerimata   (0+1/16)*2^(1-3) == 0,015625 [1/16/4]
0.000.1111  suurim normaliseerimata    (0+15/16)*2^(1-3) == 0,234375 [15/16/4]

0.001.0000  väikseim normaliseeritud    (1+0/16)*2^(1-3) == 0,25     [16/16/4]
0.110.1111  suurim normaliseeritud     (1+15/16)*2^(6-3) == 15,5     [31/16*8]

Kõikvõimalikud väärtused leiab siit.

-------------------------------------------------------------------------------------------------

1. Prototüüp tööjaamal

Ülesandeks on lisada oma tehte kood faili fp8_e3m4_ops.c (alamkataloogis prototype). Samas failis on näitena realiseeritud jagamistehe. Kõikvõimalike teisenduste näidetana on soovitav vaadata koode ka teistes failides:

  • fp8_e3m4.h - päisefail, kus on defineeritud vajalikud andmetüübid ja funktsioonide prototüübid;
  • fp8_e3m4.c - teisendus-funktsioonid 8- ja 32-bitiste formaatide vahel;
  • main.c - põhiprogramm andmete sisestamiseks ja kuvamuiseks.

Tehte realiseerimisel tuleb arvestada mantissi ja eksponendi muutmise vajadust enne tehet (liitmine ja lahutamine). Tehtejärgne normaliseerimise teeb ära funktsioon fp8_e3m4_pack, (mis siiski ei teosta ümardamist, mis pole ka kohustuslik). Boonusena võite siiski ümardamise lisamist proovida.

Fail proov on kompileeritud programm, mida saab võrdlemisel kasutada - kõik tehted on realiseeritud.

Kompileerimiseks sobib käsk "gcc -std=c99 -Wall -Wpedantic -lm -o proov main.c fp8_e3m4_ops.c fp8_e3m4.c", silumiseks saab lisad võtme "-DDEBUGGING".

-------------------------------------------------------------------------------------------------

2. Realisatsioon mikrokontrolleril

Arendusplaadiks Basys MX3, vajalikud failid paiknevad alamkataloogis basys_mx3. Sealjuures on muudetud ainult main.c, sest sisend-väljund toimub teisiti. Lisaks on failid config.h ja config.c.

MPLAB X IDE kasutamise juhend 
(Juhendis viidatud failid pole mõeldud antud ülesande jaoks)
Õiged failid projekti loomiseks leiab siit.

Oluline - Failide jagunemine MPLAB X IDEs:
*.c -> Source files
*.h -> Header Files

Lühike video näidisarvutamisest

.

-------------------------------------------------------------------------------------------------

3. Realisatsioon FPGA-l

Selle asemel tuleb kodutöö #2 reliseerimine...

-------------------------------------------------------------------------------------------------

Praktikumi arvestamine

Praktikumi arvestamiseks on vaja esitada lisatud kood ja seda selgitada ning demonstreerida lahenduste tööd. TI/AI kasutamisel tuleb lahendust selgitada ja põhejndada.

Hindamisel arvestatakse lahenduse efektiivsust ja korrektsust - 7+3 punkti. 16. nädala FPGA realisatsioon annab 5 punkti.

-------------------------------------------------------------------------------------------------

Lisainfot leiab järgnevatelt veebilehtedelt:

Ajakirjas "IEEE Circuit and Systems Magazine" 2026.a. 1. numbris (Volume 26, Number 1, First Quarter, 2026, ISSN 1531-636X) ilmus Bor-Sung Liang artikkel "AI Compute Architecture and Evolution Trends", kus muu hulgas võrreldakse ka erinevate ujukoma-formaatide energia-efektiivsust tehisintellektirakendustes (tabel 2).

Last modified: Monday, 18 May 2026, 1:08 PM