GPU是多核技术的代表之一,在一块芯片上集成多个较低功耗的核心,单个核心频率基本不变,一般在1~3GHz,设计重心转向到多核的集成技术,GPU是一种特殊的多核处理器。本文在联想深腾7000G GPU集群上进行实验,该集群有100个节点,每个节点包含两个4核CPU(Intel XEON),16GB内存,其中16个节点配置一块GPU卡,18个节点配置两块GPU卡。
编译GPU程序:nvcc –o vectorAdd vectorAdd.cu
运行:
为了方便,写了简单的shell脚本,具体内容如下:
if [ -f $@.log ]; then
rm $@.log
fi
if [ -f $@.err ]; then
rm $@.err
fi
bsub -q c2050 -o $@.log -e $@.err ./$@
示例:
1. 向量加法
#include<stdio.h>
#define N 200000
#define M 500
__global__ void kernelvectorAdd(int *dev_a,int *dev_b,int *dev_c)
{
int tid=blockIdx.x*blockDim.x+threadIdx.x;
if(tid<N)
{
dev_c[tid]=dev_a[tid]+dev_b[tid];
}
}