Dweve

Core no iekšienes: vairāk nekā 2 900 operāciju 12 izpildes vidēs

Simtiem tūkstošu rūpīgi pielāgotu kodola funkciju. Vairāk nekā 2 900 operāciju 76 kategorijās. 25 skaitliskie formāti un 12 izpildes vides. Iepazīstiet Core...

Core no iekšienes: vairāk nekā 2 900 operāciju 12 izpildes vidēs

Ko atklāj operāciju skaits

Matricas reizināšana izklausās pēc viena uzdevuma. Taču tās īstenojums ir atkarīgs no vērtību nozīmes, glabāšanas veida, starprezultātu uzkrāšanas un aparatūras, kas veic aprēķinu. Matrica ar sapakotām binārām vērtībām un peldošā komata matrica var atbilst vienai abstraktai operācijai, taču tām vajadzīgi atšķirīgi skaitļošanas noteikumi un kods.

Core ir Dweve skaitļošanas pamats apmācībai un inferenču izpildei. Publiskajā katalogā ir simtiem tūkstošu manuāli pielāgotu kodola funkciju, kas aptver vairāk nekā 2 900 operāciju 76 kategorijās, 25 skaitliskos formātos un 12 izpildes vidēs. Šie skaitļi raksturo dažādas sistēmas daļas. Operācija nosauc aprēķinu. Skaitliskais formāts nosaka reprezentāciju. Izpildes vide norāda mērķi, kurā aprēķins tiek veikts. Kodola funkcija īsteno konkrētu šo izvēļu kombināciju.

Svarīgāk ir saprast šo atšķirību, nevis uztvert katalogu kā vienu lielu funkciju skaitu. Izstrādātājam jāzina, vai vajadzīgā kombinācija ir pieejama un kādam līgumam tā atbilst.

Vairāk nekā 2 900 operāciju 76 kategorijās; 25 skaitliskie formāti; 12 izpildes vides. Simtiem tūkstošu manuāli pielāgotu kodola funkciju īsteno atbalstītās izpildes izvēles.

Aprēķins un tā reprezentācija ir saistīti

Aplūkosim reducēšanu: paņem vērtību kopu un apvieno tās vienā rezultātā. Vārds “summa” atstāj vairākus jautājumus neatbildētus. Vai ievades dati ir veseli skaitļi ar zīmi, fiksēta komata vai peldošā komata skaitļi? Kādā reprezentācijā glabā uzkrāto rezultātu? Kas notiek, ja nākamā vērtība tajā vairs neietilpst?

Core šīs izvēles piesaista pašai operācijai. Izpildes līgumā ietilpst datu tips, platums, sapakojums, akumulators, izpildes vide, instrukciju kopa, nosūtīšanas politika un determinisma režīms. Mainot kādu no šiem nosacījumiem, var mainīties aprēķina nozīme, pat ja operācijas nosaukums paliek tas pats.

25 skaitlisko formātu vidū ir binārie, ternārie, veselo skaitļu, fiksēta komata, adaptīvie un peldošā komata formāti. Formātu saimes nosaukums ir tikai sākumpunkts aritmētikas raksturošanai. Svarīgs ir arī platums, zīme, mērogs un glabāšanas izkārtojums. Tāpēc katalogs jāuztver kā atbalstīto kombināciju kopums, nevis solījums, ka katra operācija pieejama ikvienā iedomājamā formātā uz katra izpildes mērķa.

Tāpēc arī apmaiņas formāts neatbild uz visiem ar izpildi saistītajiem jautājumiem. ONNX apraksta aprēķinu grafu ar tipizētām ievadēm, izvadēm un operatoriem. Tas dod sistēmām kopīgu modeļa aprakstu, taču izpildvidei šie operatori joprojām jāīsteno. ONNX jēdzienu dokumentācijā skaidrota atšķirība starp grafa reprezentāciju un izpildi.

Izpildes izvēli var izprast, aplūkojot operāciju, reprezentāciju, akumulatoru, izpildes vidi un atkārtojamības noteikumus. Diagrammā redzams raksturīgs piemērs, nevis pārklājuma matrica.

12 izpildes vides un skaidri noteiktas izvēles

Core 12 izpildes vides aptver skalāru izpildi, CPU instrukciju kopas, GPU un pārnesamus mērķus. Publiskajā mērķu sarakstā ir Scalar, SSE2, AVX2, AVX-512, NEON, SVE2, CUDA, ROCm, Metal, Vulkan, WebGPU un WASM. Šie nosaukumi apzīmē Core izpildes ceļus, nevis atsevišķas modeļa versijas.

Nosūtīšanas mehānisms pašreizējā resursdatorā izvēlas atbalstītu operācijas īstenojumu, kas atbilst tās izpildes līgumam. Izvēlētais ceļš tiek reģistrēts kopā ar izpildes šūnu, resursdatoru un izvēles pamatojumu. Tāpēc izpildi var pārbaudīt pēc faktiskajām izvēlēm.

Pārnesamībai ir savas robežas. Piemēram, WebAssembly dokumentācijā nošķirts pārnesams binārais formāts no resursdatora nodrošinātajām API. Pārlūkprogrammā un ārpus tās var būt pieejamas atšķirīgas saskarnes. WebAssembly pārnesamības dokumentācija sniedz noderīgu kontekstu. Ar izpildes vides nosaukumu vien nepietiek, lai saprastu, kādā vidē darbojas lietotne.

Core vieta Dweve sistēmā

Core izmanto primitīvu bibliotēku pamata operācijām un apvieno tās skaitļošanas sistēmā. Loom ir veidots uz Core pamata un spriešanas uzdevumiem izmanto risinātāju bibliotēku. Katrai daļai ir skaidra atbildība: primitīvi nodrošina pamatoperācijas, Core veic aprēķinus, bet Loom uz šī pamata veido spriešanas iespējas.

Dweve ir pakalpojums. Fabric ir tā API un portāls, caur kuru cilvēki un lietotnes piekļūst pakalpojumam. Fabric neaizstāj Core skaitļošanas lomu vai Loom spriešanas lomu. Saskarne un tās pamatā esošās sistēmas pilda atšķirīgus uzdevumus.

Core izmanto primitīvu bibliotēku. Loom ir veidots uz Core pamata un izmanto risinātāju bibliotēku. Fabric ir Dweve pakalpojuma API un portāls.

Sāciet ar vajadzīgo izpildi

Novērtējot skaitļošanas sistēmu, sāciet ar konkrētu aprēķinu un tam vajadzīgo reprezentāciju. Pēc tam noskaidrojiet, kura izpildes vide to veiks, kādi akumulatora un sapakojuma noteikumi ir spēkā un kāds atkārtojamības līgums ir deklarēts. Šie jautājumi palīdz komandai izmantot katalogu praksē.

Core publiskie rādītāji raksturo kataloga plašumu. Izpildes līgums paskaidro, kā to lasīt. Abi ir jāņem vērā: kādus uzdevumus sistēma aptver un ko nozīmē konkrēts īstenojums, to lietojot.