【CUDA 基础】2.0 CUDA编程模型概述(一)
【CUDA 基础】2.0 CUDA编程模型概述(一)

CUDA编程模型为应用和硬件设备之间的桥梁,所以CUDA C是编译型语言,不是解释型语言,OpenCL就有点类似于解释型语言,通过编译器和链接,给操作系统执行(操作系统包括GPU在内的系统),下面的结构图片能形象的表现他们之间的关系

【CUDA 基础】1.1 异构计算与CUDA
【CUDA 基础】1.1 异构计算与CUDA

GPU本来的任务是做图形图像的,也就是把数据处理成图形图像,图像有个特点就是并行度很高,基本上一定距离意外的像素点之间的计算是独立的,所以属于并行任务。 GPU之前是不可编程的,或者说不对用户开放的,人家本来是做图形计算控制显示器的,虽然对用户不可编程,但是你只要把硬件卖给了我,就由不得你了,然后就有hacker开始想办法给GPU编程,来帮助他们完成规模较大的运算,于是他们研究着色语言或者图形处理原语来和GPU对话。后来黄老板发现了这个是个新的功能啊,然后就让人开发了一套平台,CUDA,然后深度学习火了,顺带着,CUDA也火到爆炸。

【CUDA 基础】1.0 并行计算与计算机架构
【CUDA 基础】1.0 并行计算与计算机架构

CUDA想要运行起来并不困难,但是想要写得好,真的需要研究一下,某乎上各路大牛给出的建议是看CUDA的官方文档,我之前也是过了一遍文档,但是文档教会你更多的是如何写代码,而没有讲解详细的硬件结构(可能在别的文档中,我只看了编程指导),我们学习编程应该同时理解语言,编程模型,硬件执行模型,以及优化方法,单纯的学会写代码,能运行,这是培训班的节奏。

【CUDA 基础】0.0 腾讯云CUDA环境搭建
【CUDA 基础】0.0 腾讯云CUDA环境搭建

而macbook基本没啥问题,内核又是类unix,所以所有工具和linux很相似,但又更顺畅,当然价格也要高出很多。 但是,macbook上已经没有nvidia显卡了,肿么办?本文主要为不支持CUDA的电脑用户提供一个可供选择的CUDA学习环境