NVIDIA GSP Firmware

On recent driver revisions for Linux x86_64 (this does not apply to AArch64 NVIDIA drivers at this time), NVIDIA shipped firmware for a new coprocessor, the GPU System Processor. This coprocessor uses the RISC-V instruction set.

The current revisions of the GSP firmware has code for TU10x (Turing), GA100 (Ampere datacenter), GA10x (Ampere) and Gnext (Ampere Next). This firmware is shipped in tandem with a new driver, its version corresponding to the driver revision.

% file gsp.bin 
gsp.bin: ELF 64-bit LSB executable, UCB RISC-V, soft-float ABI, version 1 (SYSV), statically linked, stripped
% ls -lh gsp.bin
-rwxr-xr-x  1 root  wheel    34M Jun 15 23:32 ../firmware/gsp.bin

This allows to offload a significant portion of the driver to the GPU itself. The practical consequences to that are to be investigated more. (notably, could be quite useful for an OSS driver project, by having the code running on the main CPU being fully open-source)

Leave a comment

Your email address will not be published. Required fields are marked *