测试opencl软件,c – 我的opencl测试运行速度不如CPU快

我试图测量GPU的执行时间并将其与CPU进行比较.

我写了一个simple_add函数来添加一个短int向量的所有元素.

内核代码是:

global const int * A, global const uint * B, global int* C)

{

///------------------------------------------------

/// Add 16 bits of each

int AA=A[get_global_id(0)];

int BB=B[get_global_id(0)];

int AH=0xFFFF0000 & AA;

int AL=0x0000FFFF & AA;

int BH=0xFFFF0000 & BB;

int BL=0x0000FFFF & BB;

int CL=(AL+BL)&0x0000FFFF;

int CH=(AH+BH)&0xFFFF0000;

C[get_global_id(0)]=CH|CL;

}

我为这个函数编写了另一个CPU版本,经过100次执行后测量了它们的执行时间

clock_t before_GPU = clock();

for(int i=0;i<100;i++)

{

queue.enqueueNDRangeKernel(kernel_add,1,

cl::NDRange((size_t)(NumberOfAllElements/4)),cl::NDRange(64));

queue.finish();

}

clock_t after_GPU = clock();

clock_t before_CPU = clock();

for(int i=0;i<100;i++)

AddImagesCPU(A,B,C);

clock_t after_CPU = clock();

调用整个测量功能10次后,结果如下:

CPU time: 1359

GPU time: 1372

----------------

CPU time: 1336

GPU time: 1269

----------------

CPU time: 1436

GPU time: 1255

----------------

CPU time: 1304

GP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值