目录
1.CUDA 介绍
1.1 CUDA 的基本概念
1.2 CUDA 的工作原理
1.3 CUDA 的应用领域
2. 安装CUDA
2.1 查看GPU版本
2.2 升级驱动(可选)
2.3 查看CUDA版本驱动对应的支持的CUDA ToolKit工具包
2.4 下载Toolkit
2.5 安装(省略)
2.6 验证安装 nvcc -V
2.7 卸载 CUDA版本(可选)
3. Anaconda 介绍
3.1 Anaconda 的主要功能和特点:
3.2 Anaconda 的使用场景
4. 安装Anaconda
4.1 安装(省略)
4.2 配置环境变量Path
4.3 验证
4.4 更改镜像源
4.5 修改默认存储位置(可选,但建议修改)
4.6 常用命令
4.6.1 常用快捷键
4.6.2 常用命令(Jupyter Notebook)
4.6.3 常用命令(Anaconda Prompt )
环境管理
包管理
缓存与配置
其他常用命令
5. Pytorch 介绍
PyTorch 的特点
6. 安装Pytorch
6.1 创建conda虚拟环境
6.2 安装 pytorch
验证
1.CUDA 介绍
CUDA(Compute Unified Device Architecture)是由NVIDIA公司推出的一种并行计算平台和编程模型,它使得开发者能够利用NVIDIA GPU的强大并行计算能力来加速计算密集型任务。CUDA 不仅是一种编程语言,更是一个完整的开发平台,包括了硬件、软件、驱动程序、库和工具等。
1.1 CUDA 的基本概念
-
硬件支持:CUDA 要求使用支持 CUDA 技术的 NVIDIA GPU。这些 GPU 包含了大量的计算单元(CUDA Cores),能够同时执行多个线程,以实现并行计算。
-
编程模型:CUDA 提供了基于 C/C++ 的编程模型,允许开发者编写在 GPU 上执行的代码。CUDA 代码通常分为两部分:一部分运行在主机(Host,通常是 CPU)上,另一部分运行在设备(Device,通常是 GPU)上。运行在设备上的代码称为核函数(Kernel),它们由主机上的代码调用并在 GPU 上并行执行。
-
内存层次结构:CUDA 设计了一个多层次的内存体系结构,包括全局内存(Global Memory)、共享内存(Shared Memory)、常量内存(Constant Memory)、纹理内存(Texture Memory)等。不同类型的内存具有不同的访问特性和速度,合理使用这些内存可以显著提升程序性能。
1.2 CUDA 的工作原理
-
主机与设备:在 CUDA 中,CPU 称为主机(Host),GPU 称为设备(Device)。主机负责启动计算任务,并将数据传输到设备上,设备负责执行并行计算任务。
-
网格与块:CUDA 中的并行任务组织成网格(Grid),每个网格包含多个块(Block),每个块又包含多个线程(Thread)。这种层次结构允许开发者控制并行程度和数据共享方式。
-
核函数:这是在 GPU 上运行的函数,由主机代码调用。每个线程执行核函数的一份拷贝,每个线程处理数据的不同部分。核函数是 CUDA 程序的核心,它们在 GPU 上并行执行,处理大量的数据。
1.3 CUDA 的应用领域
- 深度学习:许多深度学习框架,如 TensorFlow、PyTorch 等,都支持 CUDA 加速,能够大幅加快模型训练和推理的速度。通过 CUDA,可以利用 GPU 的并行计算能力来加速神经网络的训练和预测。
- 科学计算:CUDA 可以用于模拟物理、化学等领域中的复杂系统,加速数值计算。例如,在分子动力学模拟、天气预报等方面,CUDA 可以提供显著的性能提升。
- 图像和视频处理:利用 GPU 的并行处理能力,CUDA 可以加速图像和视频的渲染和处理任务。从图像识别到视频编辑,CUDA 都能提供强大的支持。
- 金融建模:在金融行业中,CUDA 可以用于快速计算期权定价、风险评估等复杂的金融模型。
2. 安装CUDA
TIP:后续需要安装Pytorch,可先检查Pytorch版本是否与CUDA版本相匹配再决定是否升级CUDA。
笔者环境:CUDA v11.2,驱动 v462.42 ,但Pytorch 早期版本支持CUDA v11.1 和v11.3,就会比较纠结。
于是升级驱动 v561.09,CUDA v12.6,但Pytorch 最新版本支持的CUDA v12.1 和v12.4
2.1 查看GPU版本
cmd命令输入 nvidia-smi
2.2 升级驱动(可选)
如果显卡驱动版本过低,检查是否可以升级驱动
NVIDIA GeForce 驱动程序 - N 卡驱动 | NVIDIA
手动升级:
自动升级:下载GeForce
验证升级:
2.3 查看CUDA版本驱动对应的支持的CUDA ToolKit工具包
CUDA 12.6 Update 1 Release Notes
2.4 下载Toolkit
CUDA Toolkit Archive | NVIDIA Developer
2.5 安装(省略)
2.6 验证安装 nvcc -V
2.7 卸载 CUDA版本(可选)
卸载旧版本,为了安装新版本
控制面板-程序和功能,选择对应的程序进行卸载
3. Anaconda 介绍
Anaconda 是一个开源的 Python 和 R 语言的分发版本,主要用于数据科学、机器学习和大数据分析。它提供了一个完整的科学计算环境,包含了多种流行的数据分析、可视化、机器学习等工具包,是数据科学和开发人员的常用平台。Anaconda 可以在不同的操作系统上运行,包括 Windows、macOS 和 Linux。
3.1 Anaconda 的主要功能和特点:
- 包管理和环境管理:
Anaconda 内置了 Conda,一个强大的包管理和环境管理工具。它可以轻松地创建独立的虚拟环境、安装和管理不同版本的 Python 以及其他科学计算相关的库,避免包冲突。
- 内置常用库:
Anaconda 默认自带超过 1500 个数据科学和机器学习相关的库,比如 NumPy、Pandas、Matplotlib、SciPy、Scikit-learn 等,不需要手动安装,节省开发时间。
- Jupyter Notebook:
Anaconda 集成了 Jupyter Notebook,这是一个交互式的开发环境,方便进行数据分析和算法调试。开发人员可以在一个网页界面中编写和运行代码,并即时查看结果。
- 图形界面管理工具:
Anaconda 提供了一个可视化管理界面,叫做 Anaconda Navigator,用户可以通过图形界面轻松管理包、创建环境、启动 Jupyter Notebook 或其他工具,比如 Spyder、RStudio。
- 跨平台支持:
无论你使用的是 Windows、macOS 还是 Linux,Anaconda 都能提供一致的开发体验,并支持在不同操作系统上进行科学计算。
- 简化部署:
Anaconda 通过 Conda 包管理器,支持快速的项目部署。它可以将整个开发环境打包,确保在不同机器上都能复现项目的环境配置。
3.2 Anaconda 的使用场景
- 数据科学: Anaconda 是数据科学家们的理想工具,提供了大量用于数据清洗、分析、建模的工具和库。
- 机器学习: 内置常用机器学习库如 TensorFlow、Keras、Scikit-learn 等,方便搭建、训练和测试机器学习模型。
- 大数据分析: 通过与 Hadoop、Spark 等工具的集成,Anaconda 支持大规模数据处理和分布式计算。
4. 安装Anaconda
官网地址:
Download Now | Anaconda
镜像地址下载(可选,速度较快):anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
4.1 安装(省略)
4.2 配置环境变量Path
F:\IT\software\Anaconda3\Library\bin #替换为你真实的安装路径
4.3 验证
按下Win+R,输入cmd打开终端。
4.4 更改镜像源
- 创建 .condarc 文件
不同系统下的
.condarc
目录如下:
- Linux:${HOME}/.condarc
- macOS:${HOME}/.condarc
- Windows:C:\Users\<YourUserName>\.condarc
TIP:* Windows 用户无法直接创建名为
.condarc
的文件,可先执行
conda config --set show_channel_urls yes
生成该文件之后再修改
.condarc 文件插入以下内容
channels:- defaults
show_channel_urls: true
default_channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
4.5 修改默认存储位置(可选,但建议修改)
.condarc 文件末尾追加,注意:同时修改envs和pkgs
envs_dirs:- E:\IT\conda_env
pkgs_dirs: - E:\IT\conda_pkgs
- 验证
conda info ,发现默认路径修改了 | conda create env_name ,默认路径也修改了 |
参考信息 anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
4.6 常用命令
-
Jupyter Notebook 使用
打开Jupyter Notebook 即可 / 或者打开Anaconda Prompt 输入jupyter notebook
4.6.1 常用快捷键
Jupyter Notebook有两种输入模式:命令模式和编辑模式。
- 命令模式(蓝色边框):用于控制单元格的行为,如添加、删除、移动单元格等。
A
:在当前单元格上方插入新单元格。B
:在当前单元格下方插入新单元格。D, D
(连续按两次D):删除当前单元格。M
:将当前单元格转换为Markdown模式。Y
:将当前Markdown单元格转换为代码模式。Enter
:进入编辑模式。
- 编辑模式(绿色边框):用于在单元格中输入代码或文本。
Tab
:代码补全。Shift + Tab
:显示函数的文档字符串。Ctrl + Enter
:运行当前单元格。Shift + Enter
:运行当前单元格并选中下一个单元格。Alt + Enter
:运行当前单元格并在下方插入新单元格。
- 模式切换:通过按
Esc
键可以从编辑模式切换到命令模式,通过按Enter
键可以从命令模式切换到编辑模式。- 代码执行:在编辑模式下,可以使用上述快捷键或点击工具栏中的“运行”按钮来执行单元格中的代码。
- Markdown支持:Jupyter Notebook支持Markdown语法,可以在Markdown单元格中编写格式化的文本、插入链接、图片等。
4.6.2 常用命令(Jupyter Notebook)
- 安装包
- 使用pip安装库:
pip install 包名 -i https://pypi.tuna.tsinghua.edu.cn/simple
(使用清华源加速下载) - 查看当前环境:
import sys; print(sys.executable)
- 查看已安装包及其版本:
pip list
- 使用pip安装库:
- 文件读取
- 读取Excel文件:使用
pandas
库,pd.read_excel('文件名.xlsx')
- 读取CSV文件:使用
pandas
库,pd.read_csv('文件名.csv')
- 读取Excel文件:使用
- 系统查看
- 查看操作系统信息:
import platform; print(platform.platform())
- 查看Python运行环境信息:
import sys; print(sys.version)
- Linux系统查看GPU信息:
!nvidia-smi
- Linux系统查看内存信息:
!free -h
- Linux系统查看CPU信息:
cat /proc/cpuinfo
- 查看操作系统信息:
- 魔法命令(Magic Commands)
%matplotlib inline
:在Jupyter Notebook中嵌入Matplotlib生成的图形。%time
:测量单个语句的执行时间。%timeit
:提供更准确的代码运行时间测量,自动多次执行以计算平均值和标准差。%ls
:列出当前目录的文件和文件夹。%pwd
:显示当前工作目录。%run
:运行外部Python脚本。%load
:将外部脚本的内容加载到当前单元格中。
4.6.3 常用命令(Anaconda Prompt )
打开Anaconda Prompt
a. 环境管理
- 创建新环境:
# 创建一个名为 myenv_name 的新环境,并指定Python版本为3.10。
conda create --name myenv_name python=3.10
# 从environment.yml文件中创建环境。
conda env create -f environment.yml
- 查看已有环境:
# 列出所有已创建的环境
conda info --envs
或conda env list
:
- 激活环境:
# 激活名为
myenv_name
的环境
conda activate myenv_name
- 退出环境:
# 退出当前激活的环境
conda deactivate
- 删除环境:
# 删除名为
myenv
的环境及其中的所有包
conda remove --name myenv_name --all
- 复制环境:
# 复制名为
old_env
的环境到名为new_env
的新环境
conda create --name new_env --clone old_env
b. 包管理
- 安装包:
# 在当前环境中安装numpy包
conda install numpy
# 安装指定版本的numpy包
conda install numpy=1.20
# 从conda-forge频道安装numpy包
conda install numpy -c conda-forge
- 更新包:
# 更新numpy包到最新版本
conda update numpy
- 卸载包:
# 卸载numpy包
conda remove numpy
- 搜索包:
# 搜索numpy包的所有可用版本
conda search numpy
c. 缓存与配置
- 清理缓存:
# 清理conda的缓存,包括下载的包和临时文件
conda clean --all
- 查看配置:
# 显示当前conda的配置信息
conda config --show
- 添加/删除/设置镜像源:
# 添加镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
# 删除镜像源:
conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
# 设置默认镜像源:
conda config --prepend channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
d. 其他常用命令
- 查看conda版本:
# 显示conda的版本号
conda --version
或conda -V
- 查看已安装包:
# 在激活的环境中列出所有已安装的包
conda list
# 列出指定环境(如
myenv
)中已安装的包。
conda list -n myenv
5. Pytorch 介绍
PyTorch 是一个开源的机器学习库,由 Facebook 的人工智能研究实验室 FAIR(Facebook AI Research)开发并维护。它主要用于实现深度学习模型,并且提供了强大的 GPU 加速功能。PyTorch 的设计初衷是为了提供灵活性和易用性,使得研究人员可以更方便地进行实验。
PyTorch 的特点
-
动态计算图:与一些需要静态图定义的框架不同,PyTorch 支持动态构建计算图,这使得开发者在调试和修改模型时更加灵活方便。
-
易于上手:PyTorch 使用 Python 语言编写,API 设计直观,接近自然语言,易于学习和使用。
-
自动微分:PyTorch 提供了自动求导的功能,简化了梯度计算的过程,使得开发者能够专注于模型的设计而不是繁琐的数学推导。
-
丰富的预训练模型库:PyTorch 拥有大量预训练好的模型,用户可以直接使用这些模型进行迁移学习等任务。
-
强大的社区支持:由于其灵活性和易用性,PyTorch 获得了广泛的社区支持,包括大量的插件、教程和第三方库。
-
分布式训练支持:PyTorch 提供了分布式训练的支持,可以用于多机多卡的场景,这对于大规模数据集的处理非常有用。
-
可移植性和生产环境部署:PyTorch 还提供了工具来将模型转换为 C++ 可执行文件或者 ONNX 格式,便于在生产环境中部署。
6. 安装Pytorch
官网地址:PyTorch
6.1 创建conda虚拟环境
conda create --name deeplearn python=3.10
conda activate deeplearn
6.2 安装 pytorch
conda install pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia
验证
(E:\IT\conda_env\deeplearn) C:\Users\*****>python
Python 3.10.14 | packaged by Anaconda, Inc. | (main, May 6 2024, 19:44:50) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> x = torch.rand(5)
>>> x
tensor([0.5679, 0.3314, 0.5000, 0.6988, 0.2062])
>>>