« All posts

Anatomy of a CUDA Binary

Explore the structure of CUDA binaries and EIATTR encoding. Learn about Nvidia's undocumented features.

Nvidia does not provide a specification for the binary format of CUDA kernels, prompting a detailed investigation. A .cubin file is an ELF64 executable with undocumented "EIATTR" attributes that encode essential information for kernel launches. The .nv.info file employs undocumented TLV encoding to ensure kernels are self-describing. Notably, the constant bank parameter base is not an architectural constant and has changed across toolkit versions, revealing complexities in the section layout and encoding conventions.