Tyr wurdt presintearre, Linux- in stjoerprogramma foar de ARM Mali GPU, skreaun yn Rust

Daniel Almeida, dy't wurket oan fideokodekûntwikkeling by Collabora, pleatste op 'e mailinglist foar ûntwikkelders Linux- de earste ymplemintaasje fan 'e Tyr-stjoerprogramma foar ARM Mali GPU's dy't gebrûk meitsje fan Command Stream Frontend (CSF)-technology, lykas de Mali G310, G510 en G710. De stjoerprogrammakoade is skreaun yn Rust en bestiet út krekt mear as 600 rigels koade. It wurk oan 'e Tyr-stjoerprogramma wurdt mienskiplik útfierd troch Collabora, Arm en Google.

It ramt foar it meitsjen fan de nije stjoerprogramma brûkt komponinten fan 'e abstrakte rust_platform_driver-stjoerprogramma en de Nova-stjoerprogramma, ûntwikkele foar NVIDIA GPU's, skreaun yn Rust en foar in part tafoege oan 'e 6.15-kernel. De funksjonaliteit foar ynteraksje mei de Mali GPU wurdt portearre fan 'e besteande Panthor (Direct Rendering Manager) DRM-stjoerprogramma, skreaun yn C. De uAPI fan 'e Tyr-stjoerprogramma is identyk oan 'e uAPI fan 'e Panthor-stjoerprogramma, wêrtroch't besteande brûkersromtekomponinten dermei brûkt wurde kinne.

De CSF-technology, dy't brûkt wurdt sûnt de 10e generaasje fan Mali GPU's, is opmerklik foar it ferpleatsen fan guon stjoerprogrammafunksjes nei de firmwarekant en it brûken fan in nij model foar it organisearjen fan wurkútfiering op 'e GPU. Yn GPU's mei in CSF-ynterface wurdt, ynstee fan in model basearre op it ferstjoeren fan in keatling fan wurken, in model brûkt basearre op in kommandostream mei planning fan 'e kommandostreamwachtrige oan 'e firmwarekant. Om it wurk fan 'e planner te organisearjen, is in aparte Cortex-M7-mikrokontroller yn 'e GPU ynboud, en wurdt in spesjale kommando-útfieringsienheid (Command Execution Unit) levere om CSF-ynstruksjes út te fieren.

De funksjonaliteit fan Tyr rint noch altyd efter op de Panthor-stjoerprogramma, mar de ûntwikkelders binne fan doel om de kloof stadichoan te ferminderjen oant pariteit yn stjoerprogrammamooglikheden berikt is. De ûntbrekkende funksjes fereaskje dat ekstra abstraksjes yn 'e kernel yntegrearre wurde om stjoerprogramma's yn Rust te meitsjen, sadat de ûntwikkeling fan 'e Tyr-stjoerprogramma syngronisearre wurdt mei de tafoeging fan dizze abstraksjes oan 'e kernel. Bygelyks, de kernel hat noch net de mooglikheden foar ûnthâldmapping yn Rust-stjoerprogramma's foar GPU's, dy't ûntwikkele wurde yn 'e GPUVM-patchset, dy't noch net oannaam is.

Boarne: opennet.ru

Keapje betroubere hosting foar siden mei DDoS-beskerming, VPS VDS-tsjinners 🔥 Keapje betroubere websidehosting mei DDoS-beskerming, VPS VDS-tsjinners | ProHoster