carrot efee1712aa
KerryGoldModel, AGNOS12.3, ButtonMode3, autoDetectLFA2, (#181)
* fix.. speed_limit error...

* draw tpms settings.

* fix.. traffic light stopping only..

* fix.. waze cam

* fix.. waze...

* add setting (Enable comma connect )

* auto detect LFA2

* fix.. cruisespeed1

* vff2 driving model.

* fix..

* agnos 12.3

* fix..

* ff

* ff

* test

* ff

* fix.. drawTurnInfo..

* Update drive_helpers.py

* fix..

support eng  voice

eng sounds

fix settings... english

fix.. mph..

fix.. roadlimit speed bug..

* new vff model.. 250608

* fix soundd..

* fix safe exit speed..

* fix.. sounds.

* fix.. radar timeStep..

* KerryGold model

* Update drive_helpers.py

* fix.. model.

* fix..

* fix..

* Revert "fix.."

This reverts commit b09ec459afb855c533d47fd7e8a1a6b1a09466e7.

* Revert "fix.."

This reverts commit 290bec6b83a4554ca232d531a911edccf94a2156.

* fix esim

* add more acc table. 10kph

* kg update..

* fix cruisebutton mode3

* test atc..cond.

* fix.. canfd

* fix.. angle control limit
2025-06-13 15:59:36 +09:00

1.7 KiB

AM Driver

AM driver is a userspace driver targeting AMD's RDNA3/RDNA4. You only need tinygrad to send compute tasks to your GPU!

How to run?

Make sure that amdgpu module is unloaded and just run tinygrad with AMD=1!

Optional requirements:

  • System without IOMMU for P2P / SDMA support
  • vfio-pci module for IRQ handling

Environment Variables

Variable Possible Value(s) Description
AM_RESET [1] Performs a full GPU reset (reloading all firmware and IP blocks)
AM_DEBUG [0-4] Sets the level of additional debugging information

AM Driver Details

Compute & SDMA Queues

AM binds compute queues directly to MEC (bypassing MES). Tinygrad uses only one compute queue, which is bound at pipe=0 queue=0. Similarly, the single SDMA queue is bound at engine=0 queue=0.

Boot

The GPU being passed can be in one of several states:

  1. Not initialized
  2. Initialized by amdgpu
  3. Initialized by AM

The first and second states require a full GPU setup since their states are unknown. The second state also requires a mode1 reset to reinitialize all components.

The third state can be set up partially to optimize boot time. In this case, only the GFX and SDMA IPs need to be initialized. To enable this, AM uses a separate boot memory that is guaranteed not to be overwritten. This physical memory is utilized for all blocks that are initialized only during the initial AM boot. To determine if the GPU is in the third state, AM uses regSCRATCH_REG7 as a flag.

VM Management

Each AM device sets up only a single VMID=0 and one page directory. The page directory used is 3-level and thus supports up to 512GB of virtual addresses. All AM devices are located in one virtual address space.