东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 1175|回复: 1
打印 上一主题 下一主题

[C/C++] cuda编程:数组运算放GPU上操作,看占显存

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14439
QQ
跳转到指定楼层
楼主
发表于 2021-6-8 11:37:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式


cuda编程:数组运算放GPU上操作,看占显存


  1. #include <stdio.h>
  2. #include <unistd.h>

  3. __global__ void add(int *a, int *b, int *c, int num){
  4.     int i = threadIdx.x;
  5.     //线程id 每个线程是并行执行
  6.     //如果数据量很大,就需要很多block和thread;当足够大的数据时,需要考虑数据的划分的!
  7.     int j = blockIdx.x;
  8.     printf("线程id=%d;block块id=%d\n", i, j);
  9.     if (i<num){
  10.         //防止溢出
  11.         c[i] = a[i] + b[i];
  12.     }
  13.    
  14. }
  15. //cuda编程:数组运算放GPU上操作,看占显存
  16. int main(){
  17.     int num = 30;
  18.     int a[num], b[num], c[num];
  19.     int *a_gpu, *b_gpu, *c_gpu;

  20.     //cudaSetDevice(0);
  21.     for(int i=0;i<num;i++){
  22.         a[i] = i;
  23.         b[i] = i*i;
  24.     }
  25.     cudaMalloc(&a_gpu, num*sizeof(int));
  26.     cudaMalloc(&b_gpu, num*sizeof(int));
  27.     cudaMalloc(&c_gpu, num*sizeof(int));

  28.     cudaMemcpy(a_gpu, a, num * sizeof(int), cudaMemcpyHostToDevice);
  29.     cudaMemcpy(b_gpu, b, num * sizeof(int), cudaMemcpyHostToDevice);

  30.     // 具体计算操作
  31.     add<<<1,num>>>(a_gpu,b_gpu,c_gpu,num);

  32.     cudaMemcpy(c, c_gpu, num*sizeof(int), cudaMemcpyDeviceToHost);

  33.    

  34.     //看看结果

  35.     for (int i=0;i<num;i++){
  36.         printf("看结果:%d+%d=%d\n", a[i],b[i],c[i]);
  37.     }

  38.     usleep(10*1000*1000);  //10秒 看显存到底占用多少M?

  39.     cudaFree(a_gpu);
  40.     cudaFree(b_gpu);
  41.     cudaFree(c_gpu);

  42.     return 0;
  43. }
复制代码


cuda00.png (44.96 KB, 下载次数: 79)

cuda00.png

cuda01.png (72.47 KB, 下载次数: 79)

cuda01.png
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

0

主题

98

帖子

200

积分

中级会员

Rank: 3Rank: 3

积分
200
沙发
发表于 2021-11-23 19:40:37 | 只看该作者
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-5-19 11:53 , Processed in 0.186436 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表