CUDA Programming - (1) CUDA简介

news2024/11/26 11:58:35

1. GPU 简介

处理器一般包含以下几部分:Cache 缓存,ALU 计算单元,Control 控制中心,RAM 内存。

CPU(Central Processing Unit):中央处理器。适合进行逻辑,ALU计算核心较少。适合控制性密集任务。

GPU(Graphics Processing Unit):图形处理器。也称显卡(graphics card),适合进行密集数据运算,包含大量ALU计算核心。

1.2 CPU与GPU的主要区别:

一个典型的CPU拥有少数几个快速的计算核心,而一个典型的GPU拥有几百到几千个不那么快速的计算核心。

CPU中有更多的晶体管用于数据缓存(cache)和流程控制(control),但GPU中有更多的晶体管用于算术逻辑单元(ALU)。

GPU的浮点运算峰值比同时期的CPU高一个量级。而GPU的内存带宽峰值也比同时期CPU高一个量级。GPU是靠众多的计算核心来获得相对较高的计算性能的。

CPU与GPU都有一个动态随机存取存储器,通过PCle总线进行交互。

1.3 CPU+GPU异构架构

异构计算(heterogeneous computing): GPU本身并不能单独计算,CPU+GPU组成异构(heterogenerous)计算架构;

一块单独的GPU是无法独立完成所有计算任务的,它必须在CPU的调度下才能完成特定任务。

CPU起到控制作用,称为Host,主机。

GPU作为CPU的协处理器,一般称为Device,设备。

主机和设备之间都有自己的DRAM(Dynamic Random-Access Memory,动态随机存取内存),内存访问一般通过PCLe总线连接。

1.4 GPU性能指标

1.核心数  

2.GPU显存容量 ,可计算量越大

3.GPU计算峰值,最大计算能力

GPU并不是计算能力越高,性能就越高,两者之间没有简单的正比关系。表征计算性能的一个重要参数式浮点数的运算峰值,即每秒最多能执行的浮点数运算次数,英文维 Floating-point operations per second,缩写维 FLOPS。GPU的浮点数运算峰值在10^12 FLOPs,即teraFLOPS量级。

浮点数运算峰值有单精度和双精度之分。对于计算双精度还是Tesla好,GeForce双精度就差很多。

4.显存带宽:运算单元与显存的传输速率,带宽越大,交换速率越大

GPU中的内存常称为显存。显存容量是制约应用程序性能的一个因素。

2. 什么是CUDA?(异构编程语言)

CUDA(compute unified device architecture):统一计算设备架构。CUDA是建立在NVIDIA的CPU上的一个通用并行计算平台和编程模型,是一个软件平台,配合GPU使用。目前支持CUDA编程的只有英伟达Nvidia公司推出的GPU,如Quadro OpenGL渲染,专业绘图设计,GeForce游戏娱乐,科学计算,Jetson嵌入式设备。

其他异构编程语言,如OpenCL(open computing language),OpenACC(open accelerators),和CUDA Fortan。

OpenCL是一个更为通用的为各种异构平台编写并行程序的框架,是AMD(Ad vanced Micro Devices)公司的 GPU 的主要程序开发工具。

2.1 CUDA运行时API

CUDA提供两层API接口:CUDA 驱动(driver)API 和 CUDA 运行时(runtime)API。

CUDA驱动API:是更底层的API,为程序员提供了更为灵活的编程接口。

CUDA运行时API:是在CUDA驱动API的基础上构建的一个更为高级的API。

从程序的可读性来看,用CUDA运行时API是更好的选择。在其他编程语言中使用CUDA的时候,驱动API很多时候是必需的。两种API调用性能几乎无差异。

          

CUDA的版本是GPU软件开发平台的版本,在CUDA C++程序中,既有运行于主机的代码,也有运行于设备的代码。其中,运行于主机的代码需要由主机 的C++编译器编译和链接。

2.2 GPU模式

GPU处于WDDM(windowsdisplaydrivermodel)模式。另一个可能的模式是TCC (tesla compute cluster)

2.3 GPU计算模式

Default :在默认模 式中,同一个GPU中允许存在多个计算进程,但每个计算进程对应程序的运行速度 一般来说会降低。

E.Process,指的是独占进程模式(exclusiveprocess mode),但不适用于处于WDDM模式的GPU。在独占进程模式下,只能运行一个计算进程独占该GPU。

参考文章:

cuda编程(一)cuda简介-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2035505.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

乒乓球桌上的AI新星:谷歌机器人Agent,是竞技的未来,还是科技的幻想?

在巴黎奥运会乒乓球的激烈角逐中,一个不同寻常的选手悄然登场——谷歌的乒乓球机器人Agent。 这是首个在竞技水平上达到人类标准的AI机器人。 01 AI机器人颠覆初级玩家 Agent不仅能够在正反手之间自如转换,连续进攻,甚至在面对诸如长球、高…

【Qt】QWidegt的enable属性

enabled:描述了一个控件是否处于“可用”状态(相对的概念“禁用”)。 API说明 isEnabled() 获取到控件的可⽤状态 setEnabled 设置控件是否可使⽤. true 表⽰可⽤, false 表⽰禁⽤ 所谓“禁用”指的是该控件不能接收任何用户的输入事件…

localStorage用法

一、localStorage API使用 注意,localStorage 只能存储字符串。 1.1 存储数据 例如,对象存储时,可以使用JSON.stringify 转成字符串; // 假设你有一个对象 const myObject {name: Alice,age: 25, };// 使用 JSON.stringify 将…

解决windows7虚拟机安装不了vmtools问题

安装不了vmtools问题所在: 没打补丁 ​ 打补丁问题 补丁在本地下载之后无法传到win7虚拟机中 补丁获取 补丁链接如下: https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6…

脱胎于 S 语言的R语言,Ross Ihaka 和 Robert Gentleman 和社区的力量让 R 在学术界与研究机构放光彩

R语言从一门用于统计学教学的编程语言,发展成为全球数据科学领域的重要工具,离不开其强大的功能、丰富的社区资源和开源精神。这些都离不开Ross Ihaka 和 Robert Gentleman 和 社区的力量。 在1990年代初,新西兰奥克兰大学的统计学教授Ross I…

图解Kafka | 彻底弄明白 Kafka 两个最重要的配置

我已经使用 Kafka 近两年了,我发现有两个配置很重要,但是不太容易理解。这两个配置分别是acks和min.insync.replicas。 本文将通过一些插图来帮助理解这2个配置,以便更好的使用Kafka为我们服务。 复制 我假设你已经熟悉 Kafka了 &#xff…

【TabBar嵌套Navigation案例-按钮交换图片和文字的位置-分类 Objective-C语言】

一、接下来,我们接着来说这个Button的问题, 1.首先,我要做的事情,就是让它们两个去交换位置, 那么这个时候,我要去自定义一个东西, 然后,我现在要来到发现这个页面的View里边,我要去自定义一个Button, New一个File, 来一个Cocoa Touch Class, 然后,继承的是UIB…

8.13网络编程

笔记 多点通信 一、套接字属性 套接字属性的获取和设置 #include <sys/types.h> /* See NOTES */#include <sys/socket.h>int getsockopt(int sockfd, int level, int optname,void *optval, socklen_t *optlen);int setsockopt(int sockfd, int level…

HarmonyOS.FA开发流程

开发环境配置 1、DevEco Studio的安装 2、DevEcoStudio模拟运行工程&#xff1a;运行Tools->Device Manager&#xff0c;使用已认证的HW开发者联盟帐号Login&#xff08;在DP平台申请测试者权限&#xff09;&#xff0c;点击"允许"授权&#xff0c;选择一个设备运…

【开端】通用数据库连接DatabaseManager支持可配置

一、绪论 Java开发中除了使用spring框架进行数据库连接&#xff0c;又是后也需要手写数据库连接&#xff0c;那么这里提供一种通用数据库连接方式&#xff0c;支持配置mysql orale DM &#xff0c;pg等。 二、DatabaseManager package cn.ctg.codegen.database; import java.…

代理用上了,docker都不能用的解决方案

https://docs.docker.com/engine/daemon/proxy/https://docs.docker.com/engine/daemon/proxy/ 1、 sudo mkdir -p /etc/systemd/system/docker.service.d 2、/etc/systemd/system/docker.service.d/http-proxy.conf [Service] Environment="HTTP_PROXY=http://127.0.…

vue3 路由带传参跳转;刷新后消失。一次性参数使用。

解决vue3 怎么做到路由跳转传参刷新后消失 解决路由跳转传参去除问题 想要跳转后根据参数显示对应的tab&#xff0c;但url传参刷新会持续保留无法重置。 router.replace替换又会导致显示内容为router.replace后的&#xff0c;传参目的丢失。 业务逻辑&#xff1a; 完成对应操作…

基于LPF改进的反电势观测器+锁相环PLL的永磁无感控制

导读:上期文章介绍的基于EMF+PLL的中高速永磁无感控制,其中决定转速和位置的估算精度的是反电势的获取精度。直接计算法很难保证反电势的估算精度,所以本期文章介绍一种基于LPF的改进型EMF观测器。 一、基于LPF改进的EMF观测器 传统的EMF观测器的表达式为: 注:这里重点强…

怎么用dos编译python

无论windos还是Linux只要安装了python&#xff0c;配置好了环境变量&#xff0c;则在命令行输入python这个命令的时候就会进入交互模式。在这个模式下可以进行一些简单的python代码编写。退出可以使用exit()方法。 Python程序是可以执行的&#xff0c;例如下面代码&#xff0c…

【LeetCode Cookbook(C++ 描述)】一刷二叉树之层序遍历(BFS)

目录 LeetCode #102&#xff1a;Binary Tree Lever Order Traversal 二叉树的层序遍历递归解法迭代解法 LeetCode #107&#xff1a;Binary Tree Level Order Traversal II - 二叉树的层序遍历 II递归解法迭代解法 LeetCode #429&#xff1a;N-ary Tree Level Order Traversal -…

8月13日

思维导图 作业 TCP机械臂测试 通过w(红色臂角度增大)s(红色臂角度减小)d(蓝色臂角度增大)a(蓝色臂角度减小)按键控制机械臂 代码 #include<myhead.h>#define SER_PORT 8888 #define SER_IP "192.168.0.108" #define CLI_PORT 6666 #define CLI_IP "192.…

Unity数据持久化 之 LitJson序列化与反序列化

语法规则可以看这篇文章&#xff1a;Unity数据持久化 之 Json 语法速通-CSDN博客 1.LitJson是什么 LitJSON - Home&#xff0c;Release LitJSON 0.19.0 LitJSON/litjson GitHub LitJSON是一个net库&#xff0c;用于处理与JSON (JavaScript Object Notation)字符串之间的转换…

【RTOS面试题】临时屏蔽/禁用中断的方法有什么用?什么时候用?做这种方法时应该注意什么?

目录 一、临时屏蔽中断的用途二、使用场景三 、 注意事项四、 示例代码五、结论 临时屏蔽/禁用中断的方法在嵌入式系统开发中非常重要&#xff0c;尤其在处理中断密集型的任务时。下面将详细介绍这种方法的用途、应用场景以及注意事项。 一、临时屏蔽中断的用途 保护关键代码段…

GStreamer 简明教程(二):基本概念介绍,Element 和 Pipeline

系列文章目录 GStreamer 简明教程&#xff08;一&#xff09;&#xff1a;环境搭建&#xff0c;运行 Basic Tutorial 1 Hello world! 文章目录 系列文章目录前言一、查看插件信息1.1 gst-inspect 介绍1.2 源码中运行 gst-inspect1.3 理解插件的基本信息1.4 插件与元素1.5 总结…

Stable Diffusion XL【模型推荐】沙雕手绘Lora,贼开心!不要问我这个有什么用,因为只有真正懂沙雕的才知道

前言 hello&#xff0c;大家好** 看惯了满屏的精致画面&#xff0c;咱们也来改改画风。今天老徐给大家带来了一款别有风趣的Lora模型——YFilter_ShaDiaoShouHui沙雕手绘模型。看腻了精致严谨的作品&#xff0c;这块模型肯定让你觉得太惊艳了。用作者的话说——不要问我这个Lo…