Windows10 配老显卡k4200 安装pytorch gpu版本2.7.1(新版本踩坑, CUDA 计算能力(3.0)装上了也没法用)
当前只有这块k4200老显卡,工作需要只能让它先顶上去。Windows10以前配置过cuda等,我记得pytorch是可以看到gpu的,但是近2年机器弄的有点乱,就变成cpu版了。于是想让wave 这个ai agent帮我处理一下。
先上结论:老显卡k4200对应的GPU(Quadro K4200)的 CUDA 计算能力(3.0)。由于 PyTorch 从某个版本开始,将最低支持的 CUDA 计算能力从 3.0 提升到了 3.7,所以新版本torch是无法使用cuda计算的,这是我装完之后才知道的。
wave很不情愿,说这块卡太老了
那我们就按“能折腾多远算多远”的思路来试,用这块 K4200 跑点 GPU 计算。先给你打个预防针:
- 你的 GPU:Quadro K4200,Kepler,Compute Capability 3.0
- CUDA 11.x 开始官方就彻底砍掉了
sm_30支持,你现在驱动里显示的是 CUDA 11.4 - PyTorch 2.x 几乎肯定不再编译
sm_30,所以就算装了 GPU 版,八成也看不到这块卡
要想“Python 里能用到这块 GPU”,更现实的方向是用 CUDA/Numba 这类自己写核函数,深度学习框架成功率很低。我给你一个相对靠谱的折腾路线:
步骤 1:单独搞一个“旧环境”,别动现在的 Python 3.12
建议新装 Miniconda(如果你已经有旧的、路径乱的,就当重新来过):
-
去官网下一个 Windows x64 的 Miniconda 安装包,安装到
C:\miniconda3(路径里别有空格和中文,省事很多)。 -
安装好后,在开始菜单里打开 “Anaconda Prompt (Miniconda3)”。
-
创建一个专门给 K4200 的环境,用旧一点的 Python(3.8 比较稳):
conda create -n k4200 python=3.8 -y conda activate k4200
后面所有操作,都在这个 k4200 环境里做,避免污染你现在的 3.12。
步骤 2:安装支持 sm_30 的旧 CUDA Toolkit(比如 10.2)
CUDA 11 已经不支持 sm_30,要换成 CUDA 10.x 才有机会:
-
去 NVIDIA 官方“CUDA Toolkit Archive”页面,找到 CUDA 10.2 (Windows, x86_64) 安装包。
-
安装时:
- 选 自定义安装;
- 可以只勾选:
- CUDA Toolkit
- 驱动如果提示版本比你现在旧,就取消勾选(保留你现在的 475.14 驱动也可以,驱动一般向前兼容)。
-
安装完确认下
nvcc能用(在普通 CMD 里):nvcc --version
如果能显示 CUDA 10.2 的版本信息,就算成功。
步骤 3:用 Numba 在 Python 里测试 GPU 是否可用
在刚才的 k4200 环境里:
conda activate k4200
pip install numba
然后测试:
python -c "from numba import cuda; print('cuda available:', cuda.is_available()); print(cuda.detect())"
- 如果
cuda available: True,并且cuda.detect()打印出了你的 Quadro K4200,说明:- 驱动 + CUDA 10.2 + Python 环境这条链路是通的;
- 你可以用 Numba 写 GPU 加速代码(矩阵运算、循环加速等)。
这一步成功,就算“Python 找到 GPU 了”。
如果这里还是 False,那就是驱动 / CUDA / 环境之一有问题,我们再针对性排错。
步骤 4:关于 PyTorch/TensorFlow 的现实情况
你现在是:
torch 2.10.0+cpu
Python 3.12.9
GPU: sm_30
想让 PyTorch 真正用这块卡,现实情况大概率是:
- 得换到 非常老的 PyTorch 版本(1.0~1.3 这种),
- 要和 CUDA 10.2 / 9.x 匹配,
- 还要配上老的 Python(3.6/3.7),
- 然后还不一定在 Windows 下有对应的
sm_30支持 wheel。
也就是说,即使我给你一整套:
conda create -n torch_old python=3.7 -y
# 再装对应的老 torch + cuda10.2
最后 torch.cuda.is_available() 仍然可能是 False(因为官方 wheel 根本没为 sm_30 编译)。
所以我的建议是:
- 深度学习用这块 K4200:心理预期要放低,成功率不高
- 通用 GPU 计算(自己写 kernel / Numba):只要上面 Numba 那步成功,就可以愉快使用
建议的“目标状态”
如果你接受这个折中的结果,我建议:
- 当前环境继续用 PyTorch CPU 版 学习深度学习;
- 新建的
k4200环境 + CUDA 10.2 + Numba 专门用来:- 写一些 GPU 加速的小程序;
- 验证这块卡的性能;
- 当成练 CUDA 的玩具。
下一步你可以先做什么
你可以先按下面顺序动手:
-
安装 Miniconda,创建
k4200环境; -
安装 CUDA 10.2;
-
在
k4200里装 Numba,跑这一句并把输出贴给我:python -c "from numba import cuda; print('cuda available:', cuda.is_available()); print(cuda.detect())"
我根据这条输出,判断你这块 K4200 在 Python 里能到什么程度,然后再看要不要继续尝试某个老版本的 PyTorch / TensorFlow。
个人思考
wave提出的几个建议,我都不太满意。从这里可以看出来,经过几年的发展,AI大模型不光智商上线,偷奸耍滑也开始学的有模有样了。咱不惯着它,既不安装python的旧环境,也不换用pytorch的低版本。当然咱把当前的情况给它说清楚:
prompt:你来帮我处理吧,帮我执行指令。 现在是nvidia 475.14, cuda 11.4版本,帮我安装适配这个版本的torch
我这边没法直接在你机器上执行命令,只能给你一套你复制粘贴就能跑的指令。我们先给你装一个“CUDA 11.x 版的 GPU PyTorch”,再看看它能不能识别 GPU(很可能还是因为 K4200 太老用不上,但可以验证到最后一步)。
下面所有命令都在你当前这个 PowerShell 里执行就行(E:\github\tinylisp> 那个)。
1. 卸载现在的 CPU 版 torch
powershell
python -m pip uninstall -y torch torchvision torchaudio
python -m pip cache purge
如果报“找不到某个包”也没关系,继续下一步。
2. 安装带 CUDA 的 PyTorch(适配 11.x 的官方版本)
官方现在是统一用 CUDA 11.8 的 wheel,和你驱动里的 CUDA 11.4 是同一代,基本兼容。命令是:(pytorch.org)
powershell
python -m pip install torch torchvision torchaudio `
--index-url https://download.pytorch.org/whl/cu118
这一条可能会下几十百 MB,等它跑完,看到 Successfully installed ... 就算成功。
3. 在 Python 里检查一下安装结果
装完后执行:
powershell
python -c "import torch; print('torch:', torch.__version__); print('cuda runtime:', torch.version.cuda); print('cuda available:', torch.cuda.is_available()); print('device count:', torch.cuda.device_count())"
请把这条的输出贴给我。
4. 非常重要的现实预期(提前说清楚)
即使以上三步都成功:
- 你会看到
torch.version.cuda变成类似11.8,说明装的是 GPU 版; - 但极大概率
torch.cuda.is_available()还是 False,device_count还是 0——原因不是安装问题,而是:- Quadro K4200 = Kepler 架构 = Compute Capability 3.0;
- 新版 PyTorch 的 CUDA wheel 不再为
sm_30编译内核,所以不支持这块卡。
也就是说,我们现在做的是:
- 把环境从 “纯 CPU 版 torch” 升级为 “带 CUDA 运行时的 GPU 版 torch(cu118)”,
- 然后验证到最后一步,看它能不能认出你的 GPU;
- 如果最后还是认不出,就可以确定是显卡本身太老,被 PyTorch 放弃支持,不是你安装的问题。
你先按上面 1~3 步执行,把第 3 步那条命令的完整输出贴给我,我再根据结果告诉你还剩下哪些(有限的)可能性,或者帮你考虑别的技术路线。
实践
首先用nvidia-smi 确认显卡
由于这台机器来回折腾了好多遍,直接输入nvidia-smi都显示没有这条命令,但是显卡驱动其实已经装好了。后来又让Wave ai助手帮助把驱动整的更整洁一点,所以驱动肯定有。
后来wave就给了一条加路径的指令,在powershell下执行:
$env:PATH += ";C:\Program Files\NVIDIA Corporation\NVSMI"
这时候nvidia-smi就能用了:
PS E:\360Downloads> nvidia-smi
Wed Feb 11 08:35:31 2026
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 475.14 Driver Version: 475.14 CUDA Version: 11.4 |
|-------------------------------+----------------------+----------------------+
| 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 Quadro K4200 WDDM | 00000000:05:00.0 On | N/A |
| 32% 0C P8 16W / 110W | 917MiB / 4096MiB | 3% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 3492 C+G Insufficient Permissions N/A |
| 0 N/A N/A 5800 C+G C:\Windows\explorer.exe N/A |
| 0 N/A N/A 13496 C+G Insufficient Permissions N/A |
| 0 N/A N/A 14572 C+G ...2txyewy\TextInputHost.exe N/A |
| 0 N/A N/A 18404 C+G Insufficient Permissions N/A |
可以看到cuda版本是11.4
安装torch gpu版本
按照wave的方法,先删除torch,再安装对应cuda11.4的torch gpu版本。Wave说
官方现在是统一用 CUDA 11.8 的 wheel,和你驱动里的 CUDA 11.4 是同一代,基本兼容
所以最终执行安装的是cuda11.8的版本:
python -m pip uninstall -y torch torchvision torchaudio
python -m pip cache purge
python -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
python -c "import torch; print('torch:', torch.__version__); print('cuda runtime:', torch.version.cuda); print('cuda available:', torch.cuda.is_available()); print('device count:', torch.cuda.device_count())"
哇塞,torch的gpu终于认出来了!
C:\Users\Admin>python -c "import torch; print('torch:', torch.__version__); print('cuda runtime:', torch.version.cuda); print('cuda available:', torch.cuda.is_available()); print('device count:', torch.cuda.device_count())"
torch: 2.7.1+cu118
cuda runtime: 11.8
cuda available: True
device count: 1
显卡太老存在的问题
由于显卡太老了,有些功能不支持,所以尽管可以安装上,有些运算不支持,
Found GPU0 Quadro K4200 which is of cuda capability 3.0.
PyTorch no longer supports this GPU because it is too old.
The minimum cuda capability supported by this library is 3.7.
实际使用时报错:
G:\traework\medai\acnes_amp_design>python scripts/generate_peptides_pytorch.py
2026-02-11 08:25:15.361718: I tensorflow/core/util/port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.
2026-02-11 08:25:27.432924: I tensorflow/core/util/port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.
Using device: cuda
Generating 1000 peptide sequences...
Generating 1000 peptide sequences...
E:\py312\Lib\site-packages\torch\cuda\__init__.py:262: UserWarning:
Found GPU0 Quadro K4200 which is of cuda capability 3.0.
PyTorch no longer supports this GPU because it is too old.
The minimum cuda capability supported by this library is 3.7.
warnings.warn(
Traceback (most recent call last):
File "G:\traework\medai\acnes_amp_design\scripts\generate_peptides_pytorch.py", line 43, in <module>
main()
File "G:\traework\medai\acnes_amp_design\scripts\generate_peptides_pytorch.py", line 34, in main
generator.generate_sequences(
File "G:\traework\medai\acnes_amp_design\models\generator_pytorch.py", line 282, in generate_sequences
checkpoint = torch.load(model_path, weights_only=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\py312\Lib\site-packages\torch\serialization.py", line 1525, in load
return _load(
^^^^^^
File "E:\py312\Lib\site-packages\torch\serialization.py", line 2114, in _load
result = unpickler.load()
^^^^^^^^^^^^^^^^
File "E:\py312\Lib\site-packages\torch\serialization.py", line 2103, in find_class
return super().find_class(mod_name, name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'keras.src.preprocessing'
同样的应用,在nvidia V100机器是没有问题的。
总结
wave一开始说的对,这个老显卡装新版本是无法使用的,刚开始它的我不信,我是全操作一遍,才真的相信了。
所以下一步准备把版本降低到能用的,比如1.3试试。
更多推荐



所有评论(0)