请选择 进入手机版 | 继续访问电脑版

cuda编程与gpu并行计算(三):一个小demo了解cuda基本语法

[复制链接]
为你演绎 发表于 2021-1-2 17:48:56 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
gpu步调的一般步调

  • CPU分配空间给GPU(cudaMalloc)
  • CPU复制数据给GPU(cudaMemcpy)
  • CPU加载kernels给GPU做盘算(Kernel核: 可以明白为C/C++中的一个函数function)
  • CPU把GPU盘算效果复制返来
过程中,一般要只管低落数据通讯的消耗,所以如果步调需要复制大量的数据到GPU,显然不是很符合使用GPU运算,最抱负的情况是,每次复制的数据很小,然后运算量很大,输出的效果照旧很小,复制回CPU。
先做一个小demo,对一个8位数组求平方,很简单
global 关键字谁人函数就是在GPU上运行,我们先写完kernel,那还需要从cpu拿数据已往也就是上面的1和2 这里我们为了区分cpu和gpu变量,用h_表现cpu变量(host),用d_表现gpu变量(device),host和device我们在之前的概论提了这里就不表明了。
[code]#include //这个就是kernel__global__ void square(float* d_out,float* d_in){  int idx = threadIdx.x;  float f = d_in[idx];  d_out[idx] = f * f;}int main(int argc,char** argv){  const int ARRAY_SIZE = 8;  const int ARRAY_BYTES = ARRAY_SIZE * sizeof(float);  // 在cpu中界说要输入的数组  float h_in[ARRAY_SIZE];  for(int i=0;i
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )