1. 如果问题规模较小,逻辑控制较为复杂,并行性很小优先使用CPU处理该问题,如果包含较大规模的数据处理,则考虑使用GPU进行处理。

  2. CPU上线程是重量级实体,可以开启1~32个线程,且上下文切换较为缓慢,GPU上线程是高度轻量级的,可以开几百甚至上千个线程。

  3. CUDA通过两种API来对设备GPU设备进行控制,包括驱动API和运行API,其中驱动API较难编程,但是设备控制能力和利用率高。两者只能选择其中一种,不能混合使用。

  4. 一个CUDA程序包含了两个部分代码,在CPU上运行的主机代码和在GPU上运行的设备代码。

  5. 判断自己的主机上是否存在nvidia设备可以使用命令:

        ls -l /dev/nv*

  1. hello.cu代码:

  #include <cuda_runtime.h>

  #include <stdio.h>

  __global__ void HelloFromGPU(void)

  {

    printf("Welcome to CUDA!\n");

  }

  int main(){

  cudaSetDevice(0);

  HelloFromGPU<<<1,10>>>();

  cudaDeviceReset();

  return 0;

  }

  1. 在这个代码中调用了10个GPU线程,cudaSetDevice(int)是对GPU的特定选择,而cudaDeviceReset()用来释放和清空所有在GPU中的资源。在进行程序生成运行的时候需要使用

            nvcc -arch sm_61 hello.cu -o hello

    来运行,-arch
sm_61是个开关语句,使编译器为Pascal架构生成设备代码,以运行,sm_61是与具体设备有关,如果设备的计算能力不同那么对应的也不一样,一旦运行错误的运算能力,可能也无法得到想要的结果。

初识CUDA的更多相关文章

  1. Android动画效果之初识Property Animation(属性动画)

    前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...

  2. 初识Hadoop

    第一部分:              初识Hadoop 一.             谁说大象不能跳舞 业务数据越来越多,用关系型数据库来存储和处理数据越来越感觉吃力,一个查询或者一个导出,要执行很长 ...

  3. python学习笔记(基础四:模块初识、pyc和PyCodeObject是什么)

    一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...

  4. 初识IOS,Label控件的应用。

    初识IOS,Label控件的应用. // // ViewController.m // Gua.test // // Created by 郭美男 on 16/5/31. // Copyright © ...

  5. UI篇(初识君面)

    我们的APP要想吸引用户,就要把UI(脸蛋)搞漂亮一点.毕竟好的外貌是增进人际关系的第一步,我们程序员看到一个APP时,第一眼就是看这个软件的功能,不去关心界面是否漂亮,看到好的程序会说"我 ...

  6. Python导出Excel为Lua/Json/Xml实例教程(一):初识Python

    Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...

  7. 初识SpringMvc

    初识SpringMvc springMvc简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 s ...

  8. 初识redis数据类型

    初识redis数据类型 1.String(字符串) string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据 ...

  9. Redis初识、设计思想与一些学习资源推荐

    一.Redis简介 1.什么是Redis Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.从2010 年 ...

随机推荐

  1. 记一次被吊打的排位赛(writeup)

    XMAN通行证 给了一串疑似base64的东西: a2FuYmJyZ2doamx7emJfX19ffXZ0bGFsbg== 解密后得到: kanbbrgghjl{zb____}vtlaln 想到应该是 ...

  2. VS code 代码高亮

    因为平时经常切换笔记本.家里台式机.工作台式机用 VS code,遂发现笔记本中的 javascript 不像台式机中对象和方法语法高亮,只有简单的关键词高亮.后来找到原因系主题设置.[文件]-[首选 ...

  3. python正则表达式--match search方法

    1.re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回None. (1)函数语法: re.match(pattern, st ...

  4. MySQL Percona server 5.5 安装审计插件

    近期,公司要求对MySQL 数据库上操作进行审计:通过了解MySQL 官方企业版(付费版)本中集成了audit_log审计插件,但是社区开源版本中并不包含该插件,也没提供下载.进一步了解 MariaD ...

  5. 微信小程序开发01 --- 微信小程序项目结构介绍

    一.微信小程序简单介绍: 微信官方介绍微信小程序是一个不需要下载安装就可使用(呵呵,JS代码不用下载吗?展示的UI不用下载吗?)的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用. ...

  6. Unity中锚点的动态设置

    问题背景 在做签到系统时,需求给的效果图如下 效果图像这样,中间是模型,周围其他是签到框这样的布局,我想动态生成各个动态框,涉及到一个定位问题,锚点的设置(动态去设置每个item的位置) 实现方法 S ...

  7. 【算法】Bert预训练源码阅读

    Bert预训练源码 主要代码 地址:https://github.com/google-research/bert create_pretraning_data.py:原始文件转换为训练数据格式 to ...

  8. struts2第一章-基本用法

    一.struts简介 1.回顾 MVC M-model模型层 V-view 视图层  前端界面 C-controller 控制层 struts2: Apache提供的开源的控制层框架,相当于servl ...

  9. 使用docker 部署rabbitmq 镜像

    1.使用带有web管理功能 sudo docker pull rabbitmq:management 2.运行镜像文件创建容器 sudo docker run -d --name rabbitmq - ...

  10. vs2017更新出错:The entire Box execution exiting with result code: 0x0

    在将vs2017 15.7.4更新至15.9.5出现“The entire Box execution exiting with result code: 0x0”错误,也就是文件解压下载开始安装后, ...