CUDA 学习笔记 1

CUDA 如今已是基本功了,得抓紧学习。

从哪开始呢,就先简介吧。

在这个数据爆炸的时代,对计算机性能的要求越来越高。而CPU时钟频率因接近物理极限无法继续提高,所以并行计算便成为了解决这一难题的最好方法。

如今 的CPU早已是多核心了,但并行计算还应该发掘更多的计算能力。GPU 作为一个具有很强运算能力的子系统,自然应当仁不让,尽力发挥作用。事实上这些研究早在几十年前就开始了。

GPU 的设计初衷就是代替CPU完成图形学中复杂的坐标变换和像素处理计算。由于顶点和像素众多,GPU 天然具有很高的并行性。当然这种并行计算有很大的局限性,所计算的对象有很强的图形学特征。GPU的编程接口基本上只有 OpenGL 和 DirectX ( Mantle / Vulkan / DX12 / Metal 是近年来的事,而且也都是图形编程接口),这种情况下如果要进行通用并行计算,需要把数据整理成OpenGL / DirectX可接受的图形数据形式。

2006 Microsoft 发布新一代Windows Vista,并推出了划时代的DirectX 10,提出了统一渲染架构。简单说就是之前的图形硬件的计算资源都是分为坐标计算单元和像素计算单元的,在DX 10之后,要求硬件不再区分这两个计算单元,以提高硬件资源利用率。这是一个非常现代的思想,所以各大GPU 厂商和其他图形编程接口(主要是OpenGL)纷纷跟进。而NVIDIA作为GPU 硬件产业的领军者,则想得更加深远。除了在硬件和驱动程序层面支持DirectX 和OpenGL 之外,还专门定义了新的编程接口,用于并行计算。采用这个新接口,在进行通用并行计算的时候,可以直接输入数据计算,不再需要把数据整理成图形数据的格式了,也完全不需要了解图形学背景知识。NIVIDA 为这个接口构建了完整的平台,包括驱动程序,runtime,基于C的编程语言,以及编译器、SDK等。这个平台就是Compute Unified Device Architecture,简称CUDA。

经过10年的发展,CUDA在科研、医学、航天等众多领域得到广泛应用。在这10年中,还有其他的通用计算语言和平台或标准出现,比如Microsoft的Direct Compute,Vulkan通用计算API,开放的通用计算API OpenCL,但由于易用性和生态建设的原因,如今CUDA 已经成了GPU 通用计算领域的事实标准,其他竞争者再难撼其地位,Direct Compute 和Vulkan的通用计算API 更是专注于图形学领域的大规模计算,无法和CUDA相提并论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值