当前位置:网站首页>CUDA编程(一):实现两个数组相加
CUDA编程(一):实现两个数组相加
2022-06-10 16:53:00 【武乐乐~】
前言
由于最近忙着秋招,本系列博客最近只记录下自己学CUDA的例子,不会做出注释,后期有空会补上基础知识和代码详解。
#include <stdio.h>
const double a = 1.23;
const double b = 2.34;
void __global__ add(const double *x, const double *y, const double *z,const int N );
void __global__ add(const double *x, const double *y, double *z, const int N)
{
const int tid = blockDim.x * blockIdx.x + threadIdx.x;
if(tid < N)
{
z[tid] = x[tid] + y[tid];
}
}
int main()
{
const int N = 1000;
const int M = sizeof(double) * N;
double *ha = (double *)malloc(M);
double *hb = (double *)malloc(M);
double *hc = (double *)malloc(M);
// assignment
for(int i=0; i < N; ++i)
{
ha[i] = a;
hb[i] = b;
}
//
double *da, *db, *dc;
cudaMalloc((void**)&da, M);
cudaMalloc((void**)&db, M);
cudaMalloc((void**)&dc, M);
cudaMemcpy(da,ha,M,cudaMemcpyHostToDevice);
cudaMemcpy(db,hb,M,cudaMemcpyHostToDevice);
// kernel fun
const int block_size = 128;
const int grid_size = (N + block_size -1)/ block_size;
add<<<grid_size,block_size>>>(da,db,dc,N);
cudaMemcpy(hc,dc,M,cudaMemcpyDeviceToHost);
free(ha);
free(hb);
free(hc);
cudaFree(da);
cudaFree(db);
cudaFree(dc);
return 0;
}
编译指令
nvcc -arch=sm_75 add.cu -o add
边栏推荐
- Nacos注册中心
- Eliminate if Five ways of else
- 单片机底层通信协议① —— 同步和异步、并行和串行、全双工和半双工以及单工、电平信号和差分信号
- Overseas data centers need to be prepared for unpredictable disasters
- Nacos configuration management
- 为什么宇宙会将最大速度限制在光速
- Accuracy of alphafold and NMR determination of protein structure in solution
- Facebook AI | 从数百万预测结构中学习逆向折叠
- 丢失的遗传力--Missing heritability
- 聊聊消息中间件(1),AMQP那些事儿
猜你喜欢

B站不想成为“良心版爱优腾”

Why 0.1+0.2=0.3000000000000004

SOA架构/测试阶段接口描述语言转换方案

线上交流丨技能网络:解决多任务多模态问题的稀疏模型(青源Talk第19期 唐都钰)

well! One new star, please look over | elder martial brother and elder martial sister say

Talk about message oriented middleware (1) and AMQP

蓝桥杯_挑选子串_组合数学_乘法原理_ / 尺取法

2022年G2电站锅炉司炉考试模拟100题及模拟考试

Draw confusion matrix

Web3 is the most complete money making secret script. Just read this one
随机推荐
Overseas data centers need to be prepared for unpredictable disasters
几个对程序员的误解,害人不浅!
HTML+PHP+Mysql登录注册页面
厉害了,工信部推出 “一键解绑” 手机号绑定的互联网账号,堪称神器
牛客网:表达式求值
Richard Behrman, the founder of dynamic planning
安全感
Facebook AI | 从数百万预测结构中学习逆向折叠
Is the fund of futures account safe?
域名备案和icp备案有哪些区别?
期货账户资金安全吗?
Open source project PM how to design official website
Numpy np set_ Usage of printoptions () -- control output mode
Primekg: building a knowledge map to achieve precision medicine
web集群基础知识学习(1)
牛客网:两数之和
Daily question -1287 Elements that appear more than 25% in an ordered array
Fabric. JS centered element
基于PHP+Web+Mysql的在线问卷调查系统
Photoshop如何打开、编辑和导出Webp格式图片的方法