Skip to content

zaykl/gpu-burn

 
 

Repository files navigation

gpu-burn

Multi-GPU CUDA stress test(support int8 and float16 compare) http://wili.cc/blog/gpu-burn.html

Easy docker build and run

git clone https://github.com/zaykl/gpu-burn
cd gpu-burn
sudo docker build -t gpu_burn .
#burn with all gpu
sudo docker run --rm --gpus all gpu_burn
#burn with single gpu
sudo docker run --rm --gpus "device=0" gpu_burn
#interact with gpu_burn
sudo docker run -it --gpus all gpu_burn /bin/bash
#load with local data
sudo docker run -it -v ./:/data --gpus "device=0" gpu_burn /bin/bash
#compare float32/float16/int8 gemm
make test_gemm
make test_int
./test_gemm
./test_int

Building

To build GPU Burn:

make

To remove artifacts built by GPU Burn:

make clean

GPU Burn builds with a default Compute Capability of 5.0. To override this with a different value:

make COMPUTE=<compute capability value>

CFLAGS can be added when invoking make to add to the default list of compiler flags:

make CFLAGS=-Wall

LDFLAGS can be added when invoking make to add to the default list of linker flags:

make LDFLAGS=-lmylib

NVCCFLAGS can be added when invoking make to add to the default list of nvcc flags:

make NVCCFLAGS=-ccbin <path to host compiler>

CUDAPATH can be added to point to a non standard install or specific version of the cuda toolkit (default is /usr/local/cuda):

make CUDAPATH=/usr/local/cuda-<version>

CCPATH can be specified to point to a specific gcc (default is /usr/bin):

make CCPATH=/usr/local/bin

CUDA_VERSION and IMAGE_DISTRO can be used to override the base images used when building the Docker image target, while IMAGE_NAME can be set to change the resulting image tag:

make IMAGE_NAME=myregistry.private.com/gpu-burn CUDA_VERSION=12.0.1 IMAGE_DISTRO=ubuntu22.04 image

Usage

GPU Burn
Usage: gpu_burn [OPTIONS] [TIME]

-m X   Use X MB of memory
-m N%  Use N% of the available GPU memory
-d     Use int8
-tc    Try to use Tensor cores (if available)
-l     List all GPUs in the system
-i N   Execute only on GPU N
-h     Show this help message

Example:
//burn fp16 600 second
./gpu_burn  600
//burn int8 600 second
./gpu_burn -d 600

About

Multi-GPU CUDA stress test

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 80.9%
  • Cuda 13.3%
  • Makefile 3.2%
  • Roff 1.9%
  • Dockerfile 0.7%