万事开头难!
最近在研究 AI,准备入门 AI 涉及开发的一些内容。但一开始就让我遇到了不少问题,下面就根据遇到的问题,单独列出来以供查询。
写在最前!!!
这篇文章不是一个流程指导,所以每个章节都是单独的。
如果你遇到了类似的问题,可以直接查看相关章节,而不需要提前掌握其他章节的知识。
本人也是一个新手,如果您发现错误,还希望能留言,不吝赐教!
CUDA安装相关
CUDA
CUDA 是 NVIDIA 发明的一种并行计算平台和编程模型。它通过利用图形处理器 (GPU) 的处理能力,可大幅提升计算性能。
目前为止基于 CUDA 的 GPU 销量已达数以百万计,软件开发商、科学家以及研究人员正在各个领域中运用 CUDA,其中包括图像与视频处理、计算生物学和化学、流体力学模拟、CT 图像再现、地震分析以及光线追踪等等。
如需了解有关 CUDA 的更多信息,敬请访问 www.nvidia.cn/cuda
检查显卡支持的CUDA版本
如果你的计算机上安装了 Nvidia
的显卡,则有两种方式检查显卡支持的 CUDA 版本。
通过命令行检查显卡支持的CUDA版本
使用快捷键 Win + R
打开 cmd
窗口,输入命令 nvidia-smi
后按回车,显示如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 Sat Aug 26 20:02:34 2023 +---------------------------------------------------------------------------------------+ | NVIDIA-SMI 537.13 Driver Version: 537.13 CUDA Version: 12.2 | |-----------------------------------------+----------------------+----------------------+ | GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+======================+======================| | 0 NVIDIA GeForce RTX 3060 ... WDDM | 00000000:01:00.0 On | N/A | | N/A 40C P8 10W / 75W | 1116MiB / 6144MiB | 2% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ +---------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=======================================================================================| | 0 N/A N/A 9680 C+G ...t.LockApp_cw5n1h2txyewy\LockApp.exe N/A | | 0 N/A N/A 11448 C+G C:\Windows\explorer.exe N/A | | 0 N/A N/A 18008 C+G ...inaries\Win64\EpicGamesLauncher.exe N/A | | 0 N/A N/A 24656 C+G ...ekyb3d8bbwe\PhoneExperienceHost.exe N/A | | 0 N/A N/A 31248 C+G ...rm 2021.1.3\jbr\bin\jcef_helper.exe N/A | | 0 N/A N/A 31320 C+G ...CBS_cw5n1h2txyewy\TextInputHost.exe N/A | | 0 N/A N/A 33304 C+G ...n\115.0.1901.203\msedgewebview2.exe N/A | | 0 N/A N/A 46644 C+G ....0_x64__8wekyb3d8bbwe\onenoteim.exe N/A | | 0 N/A N/A 46960 C+G ...nr4m\radeonsoftware\AMDRSSrcExt.exe N/A | | 0 N/A N/A 49180 C+G ...2txyewy\StartMenuExperienceHost.exe N/A | | 0 N/A N/A 50796 C+G ...nt.CBS_cw5n1h2txyewy\SearchHost.exe N/A | | 0 N/A N/A 53356 C+G ...72.0_x64__8wekyb3d8bbwe\GameBar.exe N/A | | 0 N/A N/A 53744 C+G ...ne\Binaries\Win64\EpicWebHelper.exe N/A | | 0 N/A N/A 55840 C+G ...oogle\Chrome\Application\chrome.exe N/A | | 0 N/A N/A 57020 C+G ...siveControlPanel\SystemSettings.exe N/A | | 0 N/A N/A 57768 C+G ...5n1h2txyewy\ShellExperienceHost.exe N/A | | 0 N/A N/A 67832 C+G ...\cef\cef.win7x64\steamwebhelper.exe N/A | | 0 N/A N/A 74644 C+G ...m\radeonsoftware\RadeonSoftware.exe N/A | | 0 N/A N/A 84368 C+G ...les\Microsoft OneDrive\OneDrive.exe N/A | | 0 N/A N/A 90804 C+G ...__8wekyb3d8bbwe\WindowsTerminal.exe N/A | | 0 N/A N/A 93124 C+G ...q8ppsgwt4\LenovoSmartAppearance.exe N/A | | 0 N/A N/A 96952 C+G ...rm 2021.1.3\jbr\bin\jcef_helper.exe N/A | | 0 N/A N/A 100488 C+G ...__8wekyb3d8bbwe\WindowsTerminal.exe N/A | +---------------------------------------------------------------------------------------+
右上角的 CUDA Version: 12.2 就是该显卡(我的显卡是:NVIDIA GeForce RTX 3060)目前支持的 CUDA 最高版本(12.2)。
通过Nvidia控制面板检查显卡支持的CUDA版本
打开 Nvidia控制面板(Nvidia Control Panel),依次点击 帮助
- 系统信息
- 组件
查看 CUDA版本信息。
上图红色方框中的 NVIDIA CUDA 12.2.138
就是。
PS:不过这个是我在安装完之后才看的,未安装 CUDA 之前这里会不会显示我不敢100%确定 。
下载CUDA
如果你明确知道你需要下载某个版本的 CUDA 那么接着往下看,如果不知道,请看上个章节 CUDA安装相关 。
了解了自己的显卡支持的最高 CUDA 版本,就可以去 Nvidia Developer 网站的 CUDA Toolkit Archive 页面下载 CUDA 安装包。
PS:CUDA 是高版本支持低版本的,这就是说向下兼容的。
截至文章成稿 PyTorch
支持的最高版本是 CUDA 11.8
。 所以选哪个版本,自己慎重选择。
打开 CUDA Toolkit Archive 页面,选择合适的版本
因为我的显卡目前支持 CUDA 12.2
, 所以我选择下载 CUDA Toolkit 12.2.1 (July 2023)
这个版本,点击打开页面。
上图表示下载的是 Windows + 64bit + 11 + 本地安装包 (windows 11 64位本地安装包)。
你可以根据计算机的具体情况选择,选好之后点击 Download (xx GB) 就开始下载了。
安装CUDA
下载完成双击程序,根据界面提示进行安装即可。
下面是几个安装过程中需要注意的地方(不过也因人而异,仅供参考。我是这个操作,中间没发生什么错误)
这个是解压安装文件,路径无所谓,安装完会自动删除
正常全部下一步就行,如果你多次卸载安装造成安装失败的话,选择自定义安装,选择组件的时候只选 CUDA
,然后点击下一步安装
安装完毕后,系统的环境变量会自动添加下面两个:
deviceQuery.exe测试
执行 %CUDA_PATH%\extras\demo_suite\deviceQuery.exe
,显示如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 deviceQuery.exe Starting... CUDA Device Query (Runtime API) version (CUDART static linking) Detected 1 CUDA Capable device(s) Device 0: "NVIDIA GeForce RTX 3060 Laptop GPU" CUDA Driver Version / Runtime Version 12.2 / 12.2 CUDA Capability Major/Minor version number: 8.6 Total amount of global memory: 6144 MBytes (6441926656 bytes) (30) Multiprocessors, (128) CUDA Cores/MP: 3840 CUDA Cores GPU Max Clock rate: 1282 MHz (1.28 GHz) Memory Clock rate: 6001 Mhz Memory Bus Width: 192-bit L2 Cache Size: 3145728 bytes Maximum Texture Dimension Size (x,y,z) 1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384) Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layers Maximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 2048 layers Total amount of constant memory: zu bytes Total amount of shared memory per block: zu bytes Total number of registers available per block: 65536 Warp size: 32 Maximum number of threads per multiprocessor: 1536 Maximum number of threads per block: 1024 Max dimension size of a thread block (x,y,z): (1024, 1024, 64) Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535) Maximum memory pitch: zu bytes Texture alignment: zu bytes Concurrent copy and kernel execution: Yes with 1 copy engine(s) Run time limit on kernels: Yes Integrated GPU sharing Host Memory: No Support host page-locked memory mapping: Yes Alignment requirement for Surfaces: Yes Device has ECC support: Disabled CUDA Device Driver Mode (TCC or WDDM): WDDM (Windows Display Driver Model) Device supports Unified Addressing (UVA): Yes Device supports Compute Preemption: Yes Supports Cooperative Kernel Launch: Yes Supports MultiDevice Co-op Kernel Launch: No Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0 Compute Mode: < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) > deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 12.2, CUDA Runtime Version = 12.2, NumDevs = 1, Device0 = NVIDIA GeForce RTX 3060 Laptop GPU Result = PASS
Result = PASS 表示一切OK!!!
bandwidthTest.exe测试
执行 %CUDA_PATH%\extras\demo_suite\bandwidthTest.exe
,显示如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [CUDA Bandwidth Test] - Starting... Running on... Device 0: NVIDIA GeForce RTX 3060 Laptop GPU Quick Mode Host to Device Bandwidth, 1 Device(s) PINNED Memory Transfers Transfer Size (Bytes) Bandwidth(MB/s) 33554432 6523.7 Device to Host Bandwidth, 1 Device(s) PINNED Memory Transfers Transfer Size (Bytes) Bandwidth(MB/s) 33554432 6435.7 Device to Device Bandwidth, 1 Device(s) PINNED Memory Transfers Transfer Size (Bytes) Bandwidth(MB/s) 33554432 243946.0 Result = PASS NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled.
同样,Result = PASS 表示一切OK!!!
查看CUDA安装版本
使用快捷键 Win + R
打开 cmd
窗口,输入命令 nvcc -V
即可查看当前计算机已安装的 CUDA 版本,注意,命令参数的 V
是大写字母。
1 2 3 4 5 nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2023 NVIDIA Corporation Built on Tue_Jul_11_03:10:21_Pacific_Daylight_Time_2023 Cuda compilation tools, release 12.2, V12.2.128 Build cuda_12.2.r12.2/compiler.33053471_0
至此,CUDA 的安装已全部完成。
PyTorch安装相关
PyTorch 的安装比较简单,我们一般都是用 pip
安装。我们根据官方的指导 PyTorch Get Started 来即可。
按照自己电脑的实际情况选择上面的待选条件,然后根据 Run this Command
提示操作即可安装。
但有一种情况就是,在线的方式安装不上。只能通过 wheel
安装,那怎么确定我们需要的是那个 .whl
文件?
寻找当前适合的python wheel
通过命令行查询
我们可以通过 pip debug --verbose
来查询版本支持。输出如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 C:\Users\Jeremysong>pip debug --verbose WARNING: This command is only meant for debugging. Do not use this with automation for parsing and getting these details, since the output and options of this command may change without notice. pip version: pip 22.0.4 from C:\Python310\lib\site-packages\pip (python 3.10) sys.version: 3.10.1 (tags/v3.10.1:2cd268a, Dec 6 2021, 19:10:37) [MSC v.1929 64 bit (AMD64)] sys.executable: C:\Python310\python.exe sys.getdefaultencoding: utf-8 sys.getfilesystemencoding: utf-8 locale.getpreferredencoding: cp936 sys.platform: win32 sys.implementation: name: cpython 'cert' config value: Not specified REQUESTS_CA_BUNDLE: None CURL_CA_BUNDLE: None pip._vendor.certifi.where(): C:\Python310\lib\site-packages\pip\_vendor\certifi\cacert.pem pip._vendor.DEBUNDLED: False vendored library versions: CacheControl==0.12.10 colorama==0.4.4 distlib==0.3.3 distro==1.6.0 html5lib==1.1 msgpack==1.0.3 (Unable to locate actual module version, using vendor.txt specified version) packaging==21.3 pep517==0.12.0 platformdirs==2.4.1 progress==1.6 pyparsing==3.0.7 requests==2.27.1 certifi==2021.10.08 chardet==4.0.0 idna==3.3 urllib3==1.26.8 rich==11.0.0 (Unable to locate actual module version, using vendor.txt specified version) pygments==2.11.2 typing_extensions==4.0.1 (Unable to locate actual module version, using vendor.txt specified version) resolvelib==0.8.1 setuptools==44.0.0 (Unable to locate actual module version, using vendor.txt specified version) six==1.16.0 tenacity==8.0.1 (Unable to locate actual module version, using vendor.txt specified version) tomli==1.0.3 webencodings==0.5.1 (Unable to locate actual module version, using vendor.txt specified version) Compatible tags: 36 cp310-cp310-win_amd64 cp310-abi3-win_amd64 cp310-none-win_amd64 cp39-abi3-win_amd64 cp38-abi3-win_amd64 cp37-abi3-win_amd64 cp36-abi3-win_amd64 cp35-abi3-win_amd64 cp34-abi3-win_amd64 cp33-abi3-win_amd64 cp32-abi3-win_amd64 py310-none-win_amd64 py3-none-win_amd64 py39-none-win_amd64 py38-none-win_amd64 py37-none-win_amd64 py36-none-win_amd64 py35-none-win_amd64 py34-none-win_amd64 py33-none-win_amd64 py32-none-win_amd64 py31-none-win_amd64 py30-none-win_amd64 cp310-none-any py310-none-any py3-none-any py39-none-any py38-none-any py37-none-any py36-none-any py35-none-any py34-none-any py33-none-any py32-none-any py31-none-any py30-none-any
上面的输出,从 Compatible tags: 36 开始,下面的都是支持的版本的后缀。例如: xxx-1.1.0-cp310-cp310-win_amd64.whl
。
通过规则来确定
假如,要安装 AutoGPTQ ,Release 的列表如下:
那么如何来理解这些文件的命名呢,他们都是那些区别。下面以 auto_gptq-0.4.2+cu118-cp310-cp310-win_amd64.whl
来说明。
auto_gptq : wheel 项目名称
0.4.2 : wheel 项目的版本
cu118 : CUDA 11.8 版本
cp310 : Python 3.10 版本
win : Windows平台
amd64 : x64 架构
根据以上描述,就可以很容易找到自己需要的 wheel
了。
wheel安装命令
wheel
的安装非常简单。将下载好的 .whl
文件放到任意目录,执行下面的命令即可:
PyTorch验证
在命令行敲入 python
打开会话后,输入如下代码:
1 2 3 import torchx = torch.rand(5 , 3 ) print (x)
输出如下代码则表示已安装OK。
1 2 3 4 5 tensor([[0.6102, 0.5069, 0.6882], [0.1692, 0.1036, 0.6484], [0.9339, 0.4199, 0.7293], [0.4797, 0.4609, 0.2859], [0.9006, 0.5501, 0.3337]])
另外,如果需要检查当前计算机的GPU是否支持 CUDA,则使用如下代码获知。
1 2 import torchtorch.cuda.is_available()
欢迎关注我的公众号 须弥零一 ,跟我一起学习IT知识。
如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !