Code Monkey home page Code Monkey logo

cuda-tutorial's Introduction

Author YunYang1994
E-mail [email protected]

logo

《CUDA C 编程权威指南》

正在学习和使用,敬请期待。

内容简介

CUDA (Compute Unified Device Architecture, 统一计算设备架构) 是NIVIDIA提出的并行计算架构, 结合了CPU和GPU的优点,主要用来处理密集型及并行计算。CPU和GPU是两个独立的处理器,通过单个计算节点的 PCI-Express总线相连。GPU 用来提高计算密集型应用程序中并行程序段的执行速度, CPU则负责管理设备端的资源。 CUDA编程的独特优势在于开放的架构特性可以使得程序员在功能强大的硬件平台上充分挖掘其并行,既满足了计算密集型的程序的需要,又实现了程序的易读性及便捷性。

CUDA编程平台

CUDA是一种通用的并行计算平台和编程模型,是在C语言上扩展的。借助于CUDA,你可以像编写C语言程序一样实现并行算法。你可以在NIVDIA的GPU平台上用CUDA为多种系统编写应用程序,范围从嵌入式设备、平板电脑、笔记本电脑、台式机工作站到HPC集群。在CUDA编程平台中,GPU并不是一个独立运行的计算平台,而需要与CPU协同工作,可以看成是CPU的协处理器,因此当我们在说GPU并行计算时,其实是指的基于CPU+GPU的异构计算架构。在异构计算架构中,GPU与CPU通过PCIe总线连接在一起来协同工作,CPU所在位置称为为主机端(host),而GPU所在位置称为设备端(device),如下图所示。

logo

CUDA内存结构

logo

在CUDA的并行运行环境中,涉及到线程块线程的概念。每个线程有自己的私有本地内存(Local Memory),而每个线程块有包含共享内存(Shared Memory),可以被线程块中所有线程共享,其生命周期与线程块一致。而且,所有的线程都可以访问全局内存(Global Memory),还可以访问一些只读内存块:常量内存(Constant Memory)和纹理内存(Texture Memory)。此外,我们可以通过寄存器(register)或常量内存来进行参数的传递。如果使用寄存器来传参,那么每个线程用一个寄存器来传递一个参数。

目录结构

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.