CUDA C并行编程:开发环境搭建

1.CUDA开发环境
        要使用CUDA开发应用程序,你需要为它配置开发环境。建立开发环境应具备以下先决条件:
(1)支持CUDA的GPU;(2)英伟达显卡驱动程序;(3)标准C编译器;(4)CUDA开发工具包。
下面的几节将讨论如何检查第1个和第4个先决条件并安装它们。
1.1 支持CUDA的GPU
        CUDA架构仅支持NVIDIA GPU,不支持其他GPU,如AMD和英特尔。英伟达几乎所有GPU都支持CUDA架构,可以在英伟达网站上找到支持CUDA的GPU的详细列表,网址https://developer.nvidia.com/cuda-gpus.

查看自己电脑的GPU型号:

        WIndows:开始菜单>>设备管理器>>显示适配器>>NVIDIA GPU;

        Linux:打开Terminal>>输入sudo lshw -C video>>显卡信息显示;

        Mac:苹果菜单>>关于这个Mac>>更多信息>>内容>>图形/显示>>GPU信息;

2.安装CUDA工具包
        安装CUDA时,可以选择下载在线安装器或离线本地安装器。前者需要手工下载的大
小比较小,但是需要连接互联网。后者下载完成后虽然较大,但是安装时不
需要连接互联网。从http//developer.nvidia.com/cuda-downloads下载适合Windows、
Liux以及macOS的安装包。注意曾经有两种CUDA开发包(32位和64位),但现在
VIDIA已经放弃对32位版本的支持,因此你只能安装64位版本的。下面用CUDAx.x代表你实际下载到的CUDA工具包版本。
        Windows: (1) 双击安装程序。它将要求你选择将提取临时安装文件的文件夹,选择你选择的文件夹,建议将此作为默认值。(2)安装程序将检查系统兼容性。如果你的系统兼容,则可以按照屏幕提示安装CUDA。可以选择快速安装(默认)和自定义安装。自定义安装允许选择要安装的CUDA功能,建议选择快速安装。(3)安装程序还将安装CUDA示例程序和CUDA Visual Studio集成。注意:运行之前,确保已安装Visual Studio安装程序。
        Linux:本节介绍了如何在Linux发行版上安装CUDA开发包。Ubuntu 是一种很流行的Linux
发行版。具体的安装过程,将分别讨论使用NV提供的针对特定( Ubuntu)发行版的安装包
和使用Ubuntu特定的apt-get命令这两种方式。
从前面的CUDA页面下载*.deb安装程序,然后按以下具体步骤安装:
(1)打开终端并运行dpkg命令,该命令用于在基于Debian的系统中安装包:

sudo dpkg -i cuda repo-<distro>_<version>_karchitecture>.deb

(2)使用以下命令安装CUDA公共GPG密钥:

sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub

(3)使用以下命令更新apt repository 缓存:

sudo apt-get update

(4)使用以下命令安装CUDA:

sudo apt-get install cuda

(5)用下面的命令修改PATH环境变量,以包含CUDA安装路径的bin目录:

export PATH=/usx/1ocal/cuda-x.x/bin${PATH:+:${PATH}}

注意:如果你没有在默认位置安装CUDA,则用你的实际安装目录代替这里的例子。
(6)通过这行命令设定LD_ LIBRARY_ PATH环境变量,来设定库搜索目录:

export LD_LIBRARY_PATH=/usr/local/cuda-x.x/1ib64\${LD_LIBRARY PATH:+:${LD_LIBRARY PATH}}

此外,你还可以通过第二种方式来安装CUDA开发包,也就是使用Ubuntu自带的apt-
get。在命令行终端里输人如下命令即可:

sudo apt-get install nvidia-cuda-toolkit

(7)nvcc将分别编译.cu文件中的Host和Device代码,前者是通过系统自带的GCC编译器编译,后者是通过CUDA C前端等工具进行。通过安装NSight Eclipse Edition(NV),用作LInux的CUDA程序的图形化IDE工具。

sudo apt install nvidia-nsight

安装后,在用户Home目录下,编译执行~/NVIDIA_CUDA-x.x_Samples/下面的deviceQuery例子,如成功编译执行,那么环境安装正确。

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

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

相关文章

springmvc中DispatcherServlet关键对象

以下代码为 spring boot 2.7.15 中自带的 spring 5.3.29 RequestMappingInfo 请求方法相关信息封装&#xff0c;对应的信息解析在 RequestMappingHandlerMapping 的 createRequestMappingInfo() 中实现。 对于 RequestMapping 赋值的相关信息进行解析 protected RequestMappi…

零基础Linux_11(进程)进程程序替换+实现简单的shell

目录 1. 进程程序替换 1.1 程序替换原理 1.2 execl 接口 1.3 execv execlp execvp 1.4 exec 调各种程序 1.5 execle 接口 2. 实现简单的shell 2.1 打印提示和获取输入 2.2 拆开输入的命令和选项 2.3 创建进程和程序替换执行命令 2.4 内建命令实现路径切换 2.5 my…

创建GCP service账号并管理权限

列出当前GCP项目的所有service account 我们可以用gcloud 命令 gcloud iam service-accounts list gcloud iam service-accounts list DISPLAY NAME EMAIL DISABLED terraform …

自动混剪多段视频、合并音频、添加文案的技巧分享

在如今的社交媒体时代&#xff0c;视频的重要性越来越被人们所重视。许多人喜欢记录生活中的美好瞬间&#xff0c;并将其制作成视频分享给朋友和家人。然而&#xff0c;对于那些拍摄了大量视频的人来说&#xff0c;一个一个地进行剪辑和合并可能是一项令人头痛的任务。但是&…

1.6 计算机网络的性能

思维导图&#xff1a; 1.6.1 计算机网络的性能指标 前言&#xff1a; 我的理解&#xff1a; 这段前言主要介绍了关于计算机网络性能的两个方面的讨论。首先&#xff0c;计算机网络的性能可以通过一些重要的性能指标来衡量。但除了这些指标之外&#xff0c;还有一些非性能特征…

【计算机网络】因特网中的电子邮件

文章目录 简单邮件传送协议SMTP邮件访问协议POP3IMAPHTTP 参考资料 电子邮件为异步通信媒介 因特网电子邮件系统 电子邮件系统的三个构件&#xff1a;用户代理、邮件服务器、邮件发送和读取协议 用户代理 User Agent 即UA 电子邮件客户端软件&#xff0c;用户与电子邮件系统的接…

代码随想录算法训练营第五十六天 | 动态规划 part 14 | 1143.最长公共子序列、1035.不相交的线、53. 最大子序和(dp)

目录 1143.最长公共子序列思路代码 1035.不相交的线思路代码 53. 最大子序和&#xff08;dp&#xff09;思路代码 1143.最长公共子序列 Leetcode 思路 本题和718. 最长重复子数组 区别在于这里不要求是连续的了&#xff0c;但要有相对顺序&#xff0c;即&#xff1a;“ace” …

Moonbeam Ignite强势回归

参与Moonbeam上最新的流动性计划 还记得新一轮的流动性激励计划吗&#xff1f;Moonbeam Ignite社区活动带着超过300万枚GLMR奖励来啦&#xff01;体验新项目&#xff0c;顺便薅一把GLMR羊毛。 本次Moonbeam Ignite活动的参与项目均为第二批Moonbeam生态系统Grant资助提案中获…

语义分割 Semantic Segmentation

之前了解过语义分割的内容&#xff0c;感觉可以做好多东西&#xff0c;然后就抽空学习了一下&#xff0c;这里记录一下方便以后查阅&#xff0c;这篇文章可能也会随着学习的深入不断更新。 语义分割 Semantic Segmentation 一些基本概念几种语义分割算法Fully Convolutional Ne…

【单片机】16-LCD1602和12864显示器

1.LCD显示器相关背景 1.LCD简介 &#xff08;1&#xff09;显示器&#xff0c;常见显示器&#xff1a;电视&#xff0c;电脑 &#xff08;2&#xff09;LCD&#xff08;Liquid Crystal Display&#xff09;&#xff0c;液晶显示器&#xff0c;原理介绍 &#xff08;3&#xff…

【分布式计算】二、架构 Architectures

1.中心化架构&#xff08;Centralized Architectures&#xff09; 1.1.经典C/S模型 服务器&#xff1a;一个或多个进程提供服务 客户端&#xff1a;一个或多个进程使用服务 客户端和服务器可以在不同的机器上 客户端遵循请求/回复模型 1.2.传统三层视图 用户界面层&#x…

JUC中的设计模式

文章目录 1. 终止模式之两阶段终止模式 1. 终止模式之两阶段终止模式 需求&#xff1a;用一个线程每两秒检测***状态&#xff0c;当不想检测时&#xff0c;用另一个线程将其停止 在一个线程 T1 中如何“优雅”终止线程 T2&#xff1f;这里的【优雅】指的是给 T2 一个料理后事…

910数据结构(2019年真题)

算法设计题 问题1 有一种排序算法叫做计数排序。这种排序算法对一个待排序的表&#xff08;采用顺序存储&#xff09;进行排序&#xff0c;并将排序结果存放到另一个新的表中。必须注意的是&#xff0c;表中所有待排序的关键字互不相同&#xff0c;计数排序算法针对表中的每个…

【AI处理器组合】python实现-附ChatGPT解析

1.题目 AI处理器组合 知识点数组 时间限制:1s 空间限制: 256MB 限定语言:不限 题目描述: 某公司研发了一款高性能AI处理器。每台物理设备具备8颗AI处理器,编号分别为0、1、2、3、4、5、6、7。编号0-3的处理器处于同一个链路中,编号4-7的处理器处于另外一个链路中,不通链路中…

10.03

代码 #include <iostream>using namespace std; class cz { private:int num1; //实部int num2; //虚部 public:cz(){}cz(int a,int b):num1(a),num2(b){}cz(const cz &other):num1(other.num1),num2(other.num2){}~cz(){}const cz operator(const cz &othe…

HTML5 跨屏前端框架 Amaze UI

Amaze UI采用国际最前沿的“组件式开发”以及“移动优先”的设计理念&#xff0c;基于其丰富的组件&#xff0c;开发者可通过简单拼装即可快速构建出HTML5网页应用&#xff0c;上线仅半年&#xff0c;Amaze UI就成为了国内最流行的前端框架&#xff0c;目前在Github上收获Star数…

Java开源工具库使用之Lombok

文章目录 前言一、常用注解1.1 AllArgsConstructor/NoArgsConstructor/RequiredArgsConstructor1.2 Builder1.3 Data1.4 EqualsAndHashCode1.5 Getter/Setter1.6 Slf4j/Log4j/Log4j2/Log1.7 ToString 二、踩坑2.1 Getter/Setter 方法名不一样2.2 Builder 不会生成无参构造方法2…

互联网Java工程师面试题·ZooKeeper 篇·第一弹

目录 1. ZooKeeper 面试题&#xff1f; 2. ZooKeeper 提供了什么&#xff1f; 3. Zookeeper 文件系统 4. ZAB 协议&#xff1f; 5. 四种类型的数据节点 Znode 6. Zookeeper Watcher 机制 -- 数据变更通知 7. 客户端注册 Watcher 实现 8. 服务端处理 Watcher 实现 9. 客…

第10章 MySQL(一)

10.1 谈谈MySQL的架构 难度:★★ 重点:★ 白话解析 要想彻底的理解MySQL,它的架构一定要先弄清楚,当Java程序员通过JDBC或者Mybatis去执行一条SQL的时候,到底经历了什么。下边先看一幅图: 户端:Java程序员通过JDBC或者Mybatis去拿MySQL的驱动程序,实际上就是拿客户端。…

oracle分组合并数值带顺序

比如&#xff1a;有如下一张设备电子围栏位置坐标的表&#xff08;tb_equ_point&#xff09;。 equ_name:设备电子围栏名称 point_id:点位坐标id point_x:点位x坐标 point_y:点位y坐标。 附数据&#xff1a; INSERT INTO "tb_equ_point" ("EQU_NAME",…