在CPU上定义两个数并赋值,然后使用GPU核函数将两个数相加并返回到CPU,在CPU上显示

#include "cuda_runtime.h"
#include "device_launch_parameters.h"#include <iomanip>
#include <iostream>
#include <stdio.h>using namespace std;//检测GPU
bool CheckCUDA(void){int count = 0;int i = 0;cudaGetDeviceCount(&count);if (count == 0) {printf("找不到支持CUDA的设备!\n");return false;}cudaDeviceProp prop;for (i = 0; i < count; i++) {if (cudaGetDeviceProperties(&prop, i) == cudaSuccess) {if (prop.major >= 1) {break;}}}if (i == count) {printf("找不到支持CUDA的设备!\n");return false;}cudaGetDeviceProperties(&prop, 0);printf("GPU is: %s\n", prop.name);cudaSetDevice(0);printf("CUDA initialized success.\n");return true;
}//使用指针相加
__global__ void addNumber(double a, double b, double *c);int main(){//检测GPUif (!CheckCUDA()){cout << "No CUDA device.";return 0;}cout << "*************************************************************************************************************" << endl;double h_a, h_b, h_c;       //在CPU上定义三个变量double *d_c;           //定义一个将指向GPU的指针
h_a = 2.2;h_b = 3.3;cudaMalloc((void **)&d_c, sizeof(double));     //为指针在GPU上分配内存空间   //调用核函数并启用一个线程块和一个线程addNumber<<<1, 1>>>(h_a, h_b, d_c);            //只是单独的两个数相加,不是两个数组相加,只需使用单线程,数组相加可以使用多线程cudaMemcpy(&h_c, d_c, sizeof(double), cudaMemcpyDeviceToHost);    //将GPU上计算好的结果返回到CPU上定义好的变量//setw(10)表示输出10个空格,需添加 #include <iomanip>cout << setw(10) << h_a << " + " << h_b << " = " << h_c << endl;  cout << endl << endl;system("pause");return 0;
}__global__ void addNumber(double a, double b, double *c){*c = a + b;
}

显示结果如下

转载于:https://www.cnblogs.com/xiaoxiaoyibu/p/10088972.html

CUDA学习(三)之使用GPU进行两个数相加相关推荐

  1. 【java】java 如何不使用第三个变量来交换两个数的值

    文章目录 1.概述 2.方案 2.1 算术运算 2.2 位运算 1.概述 今天是一个悲伤的一天,我的悲伤逆流成河.非常非常的悲伤.主要是有这个一个面试题.如何不使用第三个变量来交换两个数的值. 考官说 ...

  2. c语言不用第三个变量 实现两个数的对调,下面程序功能是不用第三个变量,实现两个数对调操作 ....docx...

    下面程序功能是不用第三个变量,实现两个数对调操作 ... [3.1]下面程序的功能是不用第三个变量,实现两个数的对调操作.#include main(){ int a,b:scanf("%d ...

  3. 求数组最大数,该数为数组中某两个数相加

    题目: 百度笔试:在一个正整数集合S中,找出一个最大数C,使得C=A+B,其中A和B也是S种的元素. 思想: 首先,我们将数组从小到大进行快速排序.其次: 1.将最后一个数设为最大数设定为S: 2.用 ...

  4. 在O(N)时间内求解 正数数组中 两个数相加的 最大值

    一,问题描述 给定一个正数数组arr(即数组元素全是正数),找出该数组中,两个元素相加的最大值,其中被加数的下标大于加数的下标.由加法运算的可逆性,j >i 这个条件可以去掉. 即求出: max ...

  5. python怎么设编程两个数相加时_黄哥Python, LeetCode 第二题两数相加代码

    来源力扣​leetcode-cn.com 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相 ...

  6. 【LeetCode-面试算法经典-Java实现】【002-Add Two Numbers (单链表表示的两个数相加)】...

    [002-Add Two Numbers (单链表表示的两个数相加)] 原题 You are given two linked lists representing two non-negative ...

  7. mysql 两个数相加_LeetCode 01两数之和02两数相加

    LeetCode01两数之和 题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案 ...

  8. 作业帮:给定一个整数数组,找出其中两个数相加等于目标值(去重set)

    题目描述 给定一个整数数组,找出其中两个数相加等于目标值输入 [1,3,5,7,9,11] 10输出 1,9 3,7 代码: import java.util.HashMap; import java ...

  9. python每个数都可由集合中的某两个数相加而得

    python每个数都可由集合中的某两个数相加而得(这两个数可以相同) 问题表述 思路 代码 运行结果 问题表述 有一个自然数集合,其中最小的数是1,最大的数是100.这个集合中的数除了1之外,每个数都 ...

最新文章

  1. 洞悉linux下的Netfilteriptables
  2. 笔记本软件页面分辨率低_AMD宠粉日 适合设计师的高色域笔记本电脑
  3. java中intvalue_Java Short类intValue()方法及示例
  4. [LeetCode]--3. Longest Substring Without Repeating Characters
  5. 中的图片文字识别_文字识别 图片转文字【小程序】
  6. ORDER BY分类
  7. nodejs生成pdf文件
  8. 华为移动路由Pro测评:不用办理固话宽带也可高速上网
  9. python 常用股票走势图绘制
  10. MySQL提示Can‘t connect to MySQL server on localhost (10061)解决方法
  11. JS VLC插件 js
  12. 小白科研笔记:简析图神经网络收敛性的理论证明
  13. 模板会有多层镜像_【保持最新版本】EVE-NG 新版模板,镜像。2020-12-27有更新
  14. 按Enter键起到Tab键的效果
  15. TED演讲集 TED视频打包下载(MP4+中英字幕) TED中英文对照字幕视频 TED资料文档 完整
  16. 从one hot vector到Attention, Bert——NLP基本思想串连回顾
  17. Maxthon广告猎手规则,简简单单屏蔽广告
  18. python语言程序设计基础网课-沿河高校邦数据科学通识课【Python基础语法】答案...
  19. 2021年安全员-B证新版试题及安全员-B证证考试
  20. android Q获取SN

热门文章

  1. Data Lake Analytics: 基于OSS文件自动推断建表
  2. 数字信号处理2:傅里叶变换
  3. opencvpython图像代码_PythonOpenCV各种图像库的图像读写 增强 方式的简单介绍(附代码)...
  4. 代理后台中间件_Golang Gin 实战(十三)| 中间件详解看这一篇就够了
  5. Java获取泛型类的实际类型的实例
  6. Spring源码解析 -- SpringWeb请求参数获取解析
  7. vb连接mysql出现的问题_连接数据库问题用户定义类型未定义【vb6】
  8. 实验三 lr分析器的设计与实现_实验室规划设计趋势之一灵活性|无风管通风柜的灵活性是如何实现的?...
  9. gba徽章机器人_《徽章机器人》倒计时网站开启 20周年纪念插画欣赏
  10. java 三种错误类型 区别_请列举至少三种在java语言中发生“严重错误”的情况...