视频讲解:又见PTX,烤机神器Jetson GPU Burn实测_哔哩哔哩_bilibili
又见PTX,烤机神器Jetson GPU Burn实测
jetson核心板测试gpu的应用程序需要考虑多程序占用gpu时的影响及gpu满负荷时温度的变化,影响着硬件、功耗、散热设计,如下为gpu的一个烤机程序
git clone https://github.com/anseeto/jetson-gpu-burn.git
cd jetson-gpu-burn
make -j6
./script.sh
烤机脚本如下,使用stress压测8核,使用gpu_burn 跑满 gpu
xterm -e stress --cpu 8 &
xterm -e ./gpu_burn 100000 &
tegrastats
compare.cu
CUDA是NVIDIA提供的高级GPU编程框架,通过扩展C/C++语法实现并行计算。它抽象了硬件细节(如线程调度、内存模型),允许开发者专注于算法逻辑
extern "C" __global__ void compare(float *C, int *faultyElems, size_t iters) {
size_t iterStep = blockDim.x*blockDim.y*gridDim.x*gridDim.y;
size_t myIndex = (blockIdx.y*blockDim.y + threadIdx.y)* // Y
gridDim.x*blockDim.x + // W
blockIdx.x*blockDim.x + threadIdx.x; // X
int myFaulty = 0;
for (size_t i = 1; i < iters; ++i)
if (fabsf(C[myIndex] - C[myIndex + i*iterStep]) > EPSILON)
myFaulty++;
atomicAdd(faultyElems, myFaulty);
}
compare.ptx
PTX(Parallel Thread Execution)是NVIDIA设计的中间指令集,介于CUDA代码与GPU机器码(SASS)之间,类似于虚拟汇编语言。它提供硬件无关性,支持跨代GPU兼容,但需要依赖驱动程序即时编译(JIT)为具体架构的二进制代码,相较于CUDA的抽象层,PTX允许开发者直接操作底层硬件资源。