开个坑…
用pytorch太不灵活了,学习一下CUDA编程。
研究生都第二年了,坚持不下去就有点丢人了奥。
书名见标题,樊哲勇老师的著作,清华大学出版社出版。
重点看前面十二章。
初次阅读,如有理解错误恳请大家批评指正~mua

第一章
GPU(graphics processing unit),显卡。与CPU的区别:CPU有更多晶体管,用于数据缓存和流程控制,只有少数几个逻辑计算单元,适合完成复杂的逻辑计算;GPU有数千个核心,适合大规模矩阵运算。

(GPU的DRAM和CPU的DRAM是通过PCIe总线来通信的~,所以两者在程序中是否能够直接访问对方的存储空间呢?)
异构计算指CPU+GPU两种不同设备的协作计算,CPU为host,GPU为device。书中使用的GPU均为Nvidia GPU,CUDA编程目前仅支持该公司的GPU。有以下几个系列:

雀食,实验室的GPU都是Tesla,自己打游戏的主机是GeForce的。
计算能力表达为X.Y的形式:

前者为主版本号,后者次版本号。但这个并不代表性能,只能为程序运行时判断硬件特征提供依据。版本号越大,GPU架构(architecture)越新。Tesla既是第一代GPU架构的名字,也是科学计算系列GPU的总称,要依据上下文判断。
主版本号一般会绑定一个GPU架构的名字,所以今后看到GPU架构的名字就要大概明白其计算能力如何。而不同的系列(如tesla, quadro, geforce, jetson)针对不同的应用场景。第一代架构Tesla和第二代架构fermi已经不支持最新CUDA。查看GPU架构: developer.nvidia.com/cuda-gpus。


一个疑问:

  1. 目前还是对计算能力没什么清晰的概念。Tesla不愧是适合科学计算的GPU啊,双进度浮点计算的峰值是单精度的1/2,1/3,相比之下GeForce却只有1/32,可能盲僧R闪的角度不需要用32为浮点数来计算8hhhhhh
  2. 还有个疑问,如果程序超过了GPU显存容量,此时使用统一内存难道程序就能正确运行了?统一内存是啥?

    GeForce 2070计算能力强于V100,但后者计算性能更强,也更贵。
    GPU编程工具:CUDA,OpenCL(AMD)

CUDA提供了两层API:CUDA driver API(底层,灵活,不好用), cuda runtime API(高级,可读性强),两者性能无差别。确实,有的时候发现nvidia-smi出来(runtime)的CUDA版本和nvcc -V(driver)出来的CUDA版本不一样,但也可以运行。根据下图这个层级关系,driver的版本应该高于runtime的版本,

CUDA版本是GPU软件开发平台的版本,计算能力对应GPU硬件架构的版本(先暂时将计算能力等同为GPU架构版本号吧,暂时还不知道用什么来衡量这个计算能力)。高架构GPU需要高版本CUDA,CUDA 10.2将CUDA C改为CUDA C++,强调CUDA c++是C++的拓展。
一个疑问:这个有意思了,是不是10.2之前不支持C++的一些操作?

nvidia-smi后,可以发现目前GPU在WDDM模式,只有高端计算型Tesla和渲染型quadro和TITAN支持切换,消费型GeForce不支持。
TCC:该模式下,GPU 完全用于计算,不能作为本地显示输出。

WDDM:该模式下,GPU 既用于计算又用于本地显示输出。

关于TCC模式和WDDM模式:https://dinone.kf5.com/hc/kb/article/1410366/

疑问

CUDA编程 基础与实践 学习笔记(一)相关推荐

  1. 2023年的深度学习入门指南(10) - CUDA编程基础

    2023年的深度学习入门指南(10) - CUDA编程基础 上一篇我们走马观花地看了下SIMD和GPGPU的编程.不过线条太粗了,在开发大模型时遇到问题了肯定还会晕. 所以我们还是需要深入到CUDA中 ...

  2. AI Studio 飞桨 零基础入门深度学习笔记1-深度学习的定义

    AI Studio 飞桨 零基础入门深度学习-笔记 人工智能.机器学习.深度学习的关系 机器学习 机器学习的实现 机器学习的方法论 案例:牛顿第二定律 确定模型参数 模型结构介绍 深度学习 神经网络的 ...

  3. AI Studio 飞桨 零基础入门深度学习笔记4-飞桨开源深度学习平台介绍

    AI Studio 飞桨 零基础入门深度学习笔记4-飞桨开源深度学习平台介绍 深度学习框架 深度学习框架优势 深度学习框架设计思路 飞桨开源深度学习平台 飞桨开源深度学习平台全景 框架和全流程工具 模 ...

  4. NVIDIA可编程推理加速器TensorRT学习笔记(二)——实操

    NVIDIA可编程推理加速器TensorRT学习笔记(二)--实操 ​ TensorRT 是 NVIDIA 自家的高性能推理库,其 Getting Started 列出了各资料入口,如下: 本文基于博 ...

  5. AI Studio 飞桨 零基础入门深度学习笔记6.3-手写数字识别之数据处理

    AI Studio 飞桨 零基础入门深度学习笔记6.3-手写数字识别之数据处理) 概述 前提条件 读入数据并划分数据集 扩展阅读:为什么学术界的模型总在不断精进呢? 训练样本乱序.生成批次数据 校验数 ...

  6. JAVA基础与高级学习笔记

    JAVA基础与高级学习笔记 /记录java基础与高级,除了较简单的内容,没有必要记录的没有记录外,其余的都记录了/ java初学者看这一篇就够了,全文 6万+ 字. JAVA基础 java会出现内存溢 ...

  7. CUDA编程基础知识整理

    CUDA编程基础知识整理 CUDA编程和GPU架构基本概念 CUDA核函数调度方式 前言:最近在尝试通过CUDA加速Swin Transformer,第一次接触CUDA的相关知识,将这些天学习到的内容 ...

  8. .NET Core 在 K8S 上的开发实践--学习笔记

    摘要 本主题受众是架构师,开发人员,互联网企业 IT 运维人员.大纲:1. K8S 对应用的要求:2. .NET Core 上 K8S 的优势:3. K8S 下的 .NET Core 配置:4. .N ...

  9. 自学python能学成吗-没有任何编程基础可以直接学习python语言吗?学会后能够做什么?...

    很明确的说 python非常适合没有任何编程基础的人入门.. 目前应用最多的:全栈开发.数据分析.运维开发,今天我们就以这三个重点的岗位来做一下自学Python的规划,希望你在学之前就能有结果的来走得 ...

最新文章

  1. qt 实现窗口局部镂空,并截图显示。
  2. mv 重命名或移动文件
  3. 深入理解JavaScript定时机制
  4. k8s:资源类型及yaml语法
  5. [CodeForces 1603C] Extreme Extension(贪心 + 数论分块优化dp)
  6. 执行git push出现Everything up-to-date
  7. 中国娱乐社交企业出海发展专题报告
  8. elasticsearch安装bigdest插件
  9. 5 . 2 查 询 优 化 器
  10. detectmultiscale函数参数含义_OpenCV人脸识别--detectMultiScale函数
  11. STM32——库函数版——数码管静态显示程序
  12. 视频时序与BT1120的关系 FPGA实现BT.1120编码
  13. vue-app开发入门
  14. python模块:Sockets阻塞和非阻塞测试
  15. 随手笔记(九)———类型装换技巧
  16. 正则表达式,匹配数字
  17. android storage 路径,风儿带你了解Android存储路径。
  18. 爬虫 (二十一) 最完整的文件操作(值得收藏) (十二)
  19. hrbust 2188 星际旅行
  20. 转:zabbix 2.0.6监控cisco交换机 2950 2960s 3560G

热门文章

  1. 3*3矩阵乘法 c语言,c语言矩阵相乘
  2. query和params的区别
  3. windows下crashrpt使用方法小记
  4. 【Transformer系列(1)】encoder(编码器)和decoder(解码器)
  5. 088 定积分几何应用之面积、体积、弧长计算方法总结
  6. [Go] 解决 imported from implicitly required module
  7. 优化切尔诺贝利灾难模型——附matlab代码
  8. 002拯救oibh总部
  9. PTA:7-16 求符合给定条件的整数集 (15分)
  10. 绘制图形可以使用什么python数据库_使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例...