Dweve

Core sisältäpäin: yli 2 900 operaatiota 12 taustajärjestelmälle

Satojatuhansia käsin viritettyjä ytimiä. Yli 2 900 operaatiota 76 kategoriassa. 25 lukumuotoa ja 12 taustajärjestelmää. Tutustu Coreen, Dweven...

Core sisältäpäin: yli 2 900 operaatiota 12 taustajärjestelmälle

Mitä operaatiomäärä kertoo

Matriisikertolasku kuulostaa yhdeltä tehtävältä. Sen toteutus riippuu siitä, mitä arvot tarkoittavat, miten ne tallennetaan, miten osatulokset kootaan ja millä laitteistolla työ tehdään. Pakatuista binääriarvoista koostuva matriisi ja liukulukumatriisi voivat vastata samaa abstraktia operaatiota, vaikka ne vaativat erilaiset laskentasäännöt ja koodin.

Core on Dweven laskentaperusta koulutukseen ja päättelyyn. Sen julkinen luettelo kattaa satojatuhansia käsin viritettyjä ytimiä yli 2 900 operaatiolle 76 kategoriassa, 25 lukumuodossa ja 12 taustajärjestelmässä. Luvut kuvaavat järjestelmän eri osia. Operaatio nimeää laskutoimituksen. Lukumuoto määrittää esitystavan. Taustajärjestelmä kertoo, missä suoritus tapahtuu. Ydin toteuttaa tietyn yhdistelmän näitä valintoja.

Luetteloa ei kannata käsitellä yhtenä suurena ominaisuuslukuna. Kehittäjän on tiedettävä, löytyykö tarvittava yhdistelmä ja millaisia ehtoja sen käyttöön liittyy.

Yli 2 900 operaatiota 76 kategoriassa; 25 lukumuotoa; 12 taustajärjestelmää. Satojatuhansia käsin viritettyjä ytimiä toteuttaa tuetut suoritusvaihtoehdot.

Laskutoimitus ja sen esitystapa kuuluvat yhteen

Tarkastellaan reduktiota: arvokokoelma yhdistetään yhdeksi tulokseksi. Sana ”summa” jättää monta kysymystä auki. Ovatko syötteet etumerkillisiä kokonaislukuja, kiinteän pisteen lukuja vai liukulukuja? Missä muodossa välitulosta säilytetään? Mitä tapahtuu, jos seuraava arvo ei mahdu siihen?

Core liittää nämä valinnat operaatioon. Suoritussopimus määrittää tietotyypin, bittileveyden, pakkauksen, kertyvän tuloksen tyypin, taustajärjestelmän, käskykannan, valintakäytännön ja determinismitilan. Yhdenkin valinnan muuttaminen voi muuttaa laskutoimituksen merkitystä, vaikka operaation nimi pysyy samana.

25 lukumuotoa kattavat binääri-, ternaari-, kokonaisluku-, kiinteän pisteen, mukautuvat ja liukulukumuodot. Lukumuotoperheen nimi on vasta lähtökohta aritmetiikan kuvaamiseen. Myös bittileveydellä, etumerkillisyydellä, skaalalla ja tallennusasettelulla on merkitystä. Luetteloa tulee siis lukea tuettujen yhdistelmien kokoelmana, ei lupauksena siitä, että jokainen operaatio toimii kaikissa kuviteltavissa lukumuodoissa ja kaikilla kohdealustoilla.

Myöskään tiedonsiirtomuoto ei ratkaise kaikkia suoritukseen liittyviä kysymyksiä. ONNX kuvaa laskentagraafin tyypitetyillä syötteillä, tulosteilla ja operaattoreilla. Se tarjoaa järjestelmille yhteisen mallikuvauksen, mutta suoritusaikaisen ympäristön on silti toteutettava operaattorit. ONNX-käsitteiden dokumentaatio selittää graafiesityksen ja suorituksen eron.

Suoritusvaihtoehtoa voi tarkastella operaation, esitystavan, kertyvän tuloksen, taustajärjestelmän ja toistettavuussääntöjen kautta. Kaavio näyttää edustavan otoksen, ei kattavuusmatriisia.

12 taustajärjestelmää, selkeät suoritusvalinnat

Coren 12 taustajärjestelmää kattavat skalaarisuorituksen, suorittimien käskykannat sekä grafiikkasuoritin- ja siirrettävät kohteet. Julkiseen kohdejoukkoon kuuluvat Scalar, SSE2, AVX2, AVX-512, NEON, SVE2, CUDA, ROCm, Metal, Vulkan, WebGPU ja WASM. Ne ovat Coren suorituspolkuja, eivät mallin erillisiä versioita.

Valintamekanismi valitsee nykyiselle isäntälaitteelle tuetun toteutuksen operaation ja sen suoritussopimuksen perusteella. Valittu polku, suoritusympäristö, isäntälaite ja valinnan syy tallennetaan. Näin voidaan tarkastella, mitä valintoja suoritus todella käytti.

Siirrettävyydellä on silti rajansa. Esimerkiksi WebAssemblyn dokumentaatio erottaa siirrettävän binäärimuodon isäntäympäristön tarjoamista rajapinnoista. Selaimessa ja sen ulkopuolella voi olla käytettävissä eri rajapintoja. WebAssemblyn siirrettävyyttä käsittelevä dokumentaatio antaa tälle hyödyllistä taustaa. Pelkkä taustajärjestelmän nimi ei kerro, millaisessa ympäristössä sovellus toimii.

Coren paikka Dwevessä

Core käyttää perusoperaatioihin primitiivikirjastoa ja tuo nämä perusteet osaksi laskentajärjestelmää. Loom rakentuu Coren päälle ja käyttää päättelytyössään ratkaisijakirjastoa. Osilla on näin selkeät vastuut: primitiivit tarjoavat perusoperaatiot, Core suorittaa laskennan ja Loom rakentaa niiden varaan päättelyä.

Dweve on palvelu. Fabric on sen API ja portaali, jonka kautta ihmiset ja sovellukset käyttävät palvelua. Fabric ei korvaa Coren laskentatehtävää eikä Loomin päättelytehtävää. Käyttöliittymällä ja sen taustalla toimivilla järjestelmillä on omat tarkoituksensa.

Core käyttää primitiivikirjastoa. Loom rakentuu Coren päälle ja käyttää ratkaisijakirjastoa. Fabric on Dweve-palvelun API ja portaali.

Aloita tarvitsemastasi laskutoimituksesta

Kun arvioit laskentajärjestelmää, aloita konkreettisesta laskutoimituksesta ja sen vaatimasta esitystavasta. Selvitä sitten, mikä taustajärjestelmä suorittaa sen, mitä sääntöjä kertyvään tulokseen ja pakkaukseen sovelletaan ja millainen toistettavuussopimus on määritelty. Näiden kysymysten avulla luettelosta tulee tiimille käyttökelpoinen.

Coren julkiset luvut kuvaavat luettelon laajuutta. Suoritussopimus kertoo, miten sitä luetaan. Molempia tarvitaan: mitä työtä järjestelmä kattaa ja mitä tietty toteutus tarkoittaa käytännössä.