Userspace API for using a GPU

Amdgpu memory allocation always uses 4096 byte sized pages.

IP blocks

A gpu is split into multiple types of units responsible for different tasks. For example:

  • gfx for graphics pipeline,
  • comp for compute
  • vcn_dec for video decoding
  • vcn_enc for video encoding
  • sdma for memory transfers as far as I can tell

Fat binaries

An executable can be fat, which means it contains bytecode for multiple target platforms in one executable.

Common usability scenarios

How can I run RDNA assembly on a gpu?

How to view RDNA instructions generated by a compiler?

How to convert raw binary into RDNA assembly?