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];
}
}
int main(void)
{
int a[N],b[N],c[N];
int *dev_a,*dev_b,*dev_c;
cudaMalloc((void**)&dev_a,N*sizeof(int));
cudaMalloc((void**)&dev_b,N*sizeof(int));
cudaMalloc((void**)&a

本文介绍了在GPU上进行并行编程的实际操作,以联想深腾7000G GPU集群为平台,展示了如何编译GPU程序,并提供了向量加法和矩阵乘法的实例。实验结果将保存在.log文件中,错误信息则存储在.err文件。
最低0.47元/天 解锁文章
1483

被折叠的 条评论
为什么被折叠?



