Deep Dive into Tyr: A Rust GPU Driver for Arm Mali CSF

2025-08-07
Deep Dive into Tyr: A Rust GPU Driver for Arm Mali CSF

This post, the second in a series, delves into the development of Tyr, a cutting-edge Rust GPU driver for the Linux kernel supporting Arm Mali CSF-based GPUs. Using the VkCube application (rendering a rotating cube via Vulkan) as a case study, it explains the interaction between User Mode Drivers (UMDs) and Kernel Mode Drivers (KMDs). The article provides a concise overview of Tyr's API, comparing it to Panthor (the C driver for the same hardware). Key KMD responsibilities, such as memory allocation, job submission, and hardware scheduling, are highlighted. The article breaks down Tyr's API into sections covering device information, memory management, group creation and management, job submission, and tiler heap management.

Read more
Development

Rust's Type Safety: A Deep Dive via Stock Order Example

2025-05-06
Rust's Type Safety: A Deep Dive via Stock Order Example

This article compares Rust and C++'s handling of function parameters to illustrate the importance of type safety. Using a simulated stock order function as an example, it shows C++'s struggles in preventing parameter type confusion, highlighting how even with multiple improvements, errors remain possible. Rust, however, leverages its powerful type system and compile-time checks to effortlessly solve these issues. Even when converting user-supplied strings to numerical types, Rust effectively prevents errors, avoiding crashes and incorrect results. The article emphasizes Rust's advantages in ensuring code safety and reliability, showcasing features beyond just memory safety.

Read more
Development Type Safety