Daniel Almeida, i angazhuar në zhvillimin e kodeve video në kompaninë Collabora, publikoi në listën e postimeve të zhvilluesve të kernelit Linux një implementim fillestar të drejtorit Tyr për GPU ARM Mali, që përdor teknologjinë CSF (Comand Stream Frontend), si Mali G310, G510 dhe G710. Kodi i drejtorit është shkruar në gjuhën Rust dhe ka pak më shumë se 600 rreshta kodi. Puna mbi drejtorin Tyr po zhvillohet në bashkëpunim me punonjësit e kompanive Collabora, Arm dhe Google.
Si kornizë për krijimin e drejtorit të ri janë përdorur komponentët e drejtorit abstrakt rust_platform_driver dhe drejtorit Nova, i zhvilluar për GPU NVIDIA, i shkruar në Rust dhe pjesërisht i shtuar në kernelin 6.15. Funksionaliteti për ndërveprimin me GPU Mali është portuar nga drejtorin ekzistues DRM Panthor (Direct Rendering Manager), i shkruar në gjuhën C. uAPI i drejtorit Tyr është identik me uAPI-në e drejtorit Panthor, çka lejon përdorimin e komponentëve ekzistues në hapësirën e përdoruesit.
Teknologjia CSF, e përdorur që nga gjenerata e 10-të e GPU Mali, është e njohur për transferimin e disa funksioneve të drejtorit në firmuer dhe përdorimin e një modeli të ri të organizimit të ekzekutimit të punëve në GPU. Në GPU me ndërfaqen CSF, në vend të modelit të bazuar në dërgimin e një rrjete punësh, përdoret një model i bazuar në rrjedhën e komandave me planifikimin e radhës së rrjedhës së komandave në anën e firmuerit. Për të organizuar punën e planifikuesit në GPU është integruar një mikro-kontroller i veçantë Cortex-M7, si dhe një bllok i veçantë për ekzekutimin e komandave (Command Execution Unit) për realizimin e komandave CSF.
Funksionaliteti i Tyr ka ende disa mangësi në krahasim me drejtorin Panthor, por zhvilluesit janë të angazhuar të reduktojnë hendekun deri sa të arrihet barazia në mundësitë e drejtorëve. Funksionet e mungueshme kërkojnë integrimin e abstraksioneve të tjera në kernel për krijimin e drejtorëve në Rust, ndaj zhvillimi i drejtorit Tyr do të sinkronizohet me shtimin në kernel të këtyre abstraksioneve. Për shembull, aktualisht në kernel nuk ka mundësi për hartimin e memories në drejtorët Rust për GPU, që zhvillohen në një grup patch-esh GPUVM ende të papranueshëm.
Burimi: opennet.ru
