AMD RDNA3 GPU driver via raw KFD ioctls. No ROCm, no OpenCL. - Device discovery and topology queries - VRAM/GTT/Userptr memory with shared address space - PM4 compute queue and kernel dispatch - Hand-written RDNA3 ASM kernels: matmul (3100 GFLOP/s), matvec, superlinear - Tile-safe buffer padding for OOB protection - Event-based interrupt wait (no CPU polling) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5 lines
4.0 KiB
Plaintext
5 lines
4.0 KiB
Plaintext
{"$message_type":"diagnostic","message":"unused import: `KernelEntry`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/device.rs","byte_start":619,"byte_end":630,"line_start":17,"line_end":17,"column_start":57,"column_end":68,"is_primary":true,"text":[{"text":"use crate::dispatch::{CodeObject, GpuProgram, KernArgs, KernelEntry};","highlight_start":57,"highlight_end":68}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src/device.rs","byte_start":617,"byte_end":630,"line_start":17,"line_end":17,"column_start":55,"column_end":68,"is_primary":true,"text":[{"text":"use crate::dispatch::{CodeObject, GpuProgram, KernArgs, KernelEntry};","highlight_start":55,"highlight_end":68}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `KernelEntry`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/device.rs:17:57\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m17\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use crate::dispatch::{CodeObject, GpuProgram, KernArgs, KernelEntry};\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default\n\n"}
|
|
{"$message_type":"diagnostic","message":"constant `IOC_NONE` is never used","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src/ioctl.rs","byte_start":321,"byte_end":329,"line_start":10,"line_end":10,"column_start":7,"column_end":15,"is_primary":true,"text":[{"text":"const IOC_NONE: u32 = 0;","highlight_start":7,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: constant `IOC_NONE` is never used\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ioctl.rs:10:7\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m10\u001b[0m \u001b[1m\u001b[94m|\u001b[0m const IOC_NONE: u32 = 0;\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^\u001b[0m\n \u001b[1m\u001b[94m|\u001b[0m\n \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default\n\n"}
|
|
{"$message_type":"diagnostic","message":"constant `IOC_DESTROY_EVENT` is never used","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src/ioctl.rs","byte_start":6326,"byte_end":6343,"line_start":221,"line_end":221,"column_start":7,"column_end":24,"is_primary":true,"text":[{"text":"const IOC_DESTROY_EVENT: u64 = iow::<DestroyEventArgs>(0x09);","highlight_start":7,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: constant `IOC_DESTROY_EVENT` is never used\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/ioctl.rs:221:7\n \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m221\u001b[0m \u001b[1m\u001b[94m|\u001b[0m const IOC_DESTROY_EVENT: u64 = iow::<DestroyEventArgs>(0x09);\n \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^\u001b[0m\n\n"}
|
|
{"$message_type":"diagnostic","message":"3 warnings emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: 3 warnings emitted\u001b[0m\n\n"}
|