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.
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.
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.
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.