cuda编程初尝试
来源:互联网 发布:雅思怎么做精听 知乎 编辑:程序博客网 时间:2024/05/17 04:06
纸上得来终觉浅,绝知此事要躬行
看了很久很久的书,觉得自己大致的框架以了解,但是从未动手尝试,一旦动手你就会发现很多地方就卡顿了,当你把这些卡顿解决以后,你才踏入cuda编程的大门;
#define data_size 5__global__ void addKernel(const int *a,const int *b,int *c){int tid;tid = threadIdx.x;c[tid] = a[tid] + b[tid];}int main(){int a[data_size] = { 1,2,3,4,5 };int b[data_size] = { 2,4,6,7,8 };int c[data_size] = { 0 };int *da, *db, *dc;cudaMalloc((void**)&da, data_size * sizeof(int));cudaMalloc((void**)&db, data_size * sizeof(int));cudaMalloc((void**)&dc, data_size * sizeof(int));cudaMemcpy(da, a, data_size * sizeof(int), cudaMemcpyHostToDevice);cudaMemcpy(db, b, data_size * sizeof(int), cudaMemcpyHostToDevice);cudaMemcpy(dc, c, data_size * sizeof(int), cudaMemcpyHostToDevice);addKernel << <1, data_size>> > (da, db, dc);cudaMemcpy(c, dc, data_size * sizeof(int), cudaMemcpyDeviceToHost);printf("%d%d%d%d%d\n", c[0], c[1], c[2], c[3], c[4]);cudaFree(da);cudaFree(db);cudaFree(dc);return 0;}这是一个很简单的数组相加的程序,程序还是分为两部分host和device:
host:负责变量申明,赋初值,内存分配,函数调用
device:负责计算的描述,线程的分配,内存的使用
阅读全文
1 0
- cuda编程初尝试
- CUDA编程
- cuda编程
- CUDA编程
- CUDA编程
- CUDA编程
- cuda 编程
- CUDA编程
- cuda编程
- cuda编程
- 【CUDA编程】 CUDA编程初始
- fedora+cuda的配置尝试3
- 【CUDA编程】CUDA一些基本概念
- [CUDA]CUDA C并行编程
- 尝试ruby编程
- 菜鸟尝试初步编程
- 尝试phpStorm编程
- 中文编程尝试
- Vivado HLS中指针作为Top函数参数的处理
- 手把手教你开发一款简单的AR软件
- EU4-11: Giving feedback
- 读《你和年薪百万的距离,不仅仅是钱》感悟
- 每日一题之栈的实现
- cuda编程初尝试
- The kth great number
- SQlite3使用
- go语言1小时——从不会到入门
- js,根据包名,在指定空间中创建对象
- 面试提问垃圾回收机制
- 找合法帧 QAQ
- epoll_server实现web服务器
- c++ winpcap开发(7)