RTX5060显卡对PyTorch与CUDA适配问题解决方案(解决环境依赖问题&AI微调部署前奏)

RTX5060显卡对PyTorch与CUDA适配问题解决方案(解决环境依赖问题&AI微调部署前奏)

前言

如果大家的电脑显卡是RTX50系列的话,如果按照正常的部署AI,可能尚未进行调试,就会发现环境的依赖报错一大堆,又或者如下图的UserWarning,之所以会是这样,是因为5060的显卡太新了,以至于PyTorch与CUDA出现兼容问题。
图这里sm_xx代表什么?

流多处理器架构版本:
sm_50 - Maxwell架构(GTX 900系列)
sm_60 - Pascal架构(GTX 1000系列)
sm_70 - Volta架构(Tesla V100)
sm_75 - Turing架构(RTX 2000系列)
sm_80 -Ampere架构(RTX 3000系列/A100)
sm_86 - Ampere架构(笔记本RTX 3000)
sm_89 - AdaLovelace架构(RTX 4000系列)
sm_90 - Hopper架构(H100)
sm_120 - Blackwell架构(RTX5000系列)

CUDA安装

先说一下什么是CUDA。
CUDA(Compute Unified Device Architecture,统一计算设备架构)是NVIDIA公司推出的并行计算平台和编程模型。它允许开发者使用NVIDIA GPU进行通用计算,而不仅仅是图形渲染。
一句话就是充分调用GPU。
众所周知,电脑里的CPU少而强大,擅长逻辑控制,用于处理复杂但少量任务。
而GPU相对于CPU,则是显得多且简单,并行运行下可以处理简答但大量的任务。

nvidia-smi 
在这里插入图片描述

以上指令查看显卡支持的CUDA最高版本,虽然NVIDIA官网上的版本写文时迭代到了13.1,但是我们用12.8就完全可以(RTX50系列12.8就可以了,如果是5070可以用12.9或者13.0)。

nvcc --version 

已经安装的话可以查查版本。
CUDA下载点击这里下载。

https://developer.nvidia.com/cuda-toolkit-archive 
在这里插入图片描述


选择12.8.1版本。

在这里插入图片描述


下载12.8.1,安装。
一直next就行。

PyTorch安装

https://pytorch.org/get-started/locally/ 

这个网站,是PyTorch本地安装页面。
如果进行后续的微调,追求稳定体验,用Stable即可。

在这里插入图片描述


但是如果要进行微调的话,建议选择Nightly版本,虽然作为一天一更新的开发版,不是很稳定。但是当前只有Nightly支持RTX50系列的Blackwell架构。
tips:可能存在与其他库甚至是系统的兼容问题,如果有,评论区或者笔者后续遇见,笔者会尽量解决。
先说稳定版:

https://download.pytorch.org/whl/cu128 

下面给出的地址打开后,找到torch和torchvision。

在这里插入图片描述


CU128指对应CUDA12.8版本,CP310指对应python3.10版本。

在这里插入图片描述


接着在终端pip3 install 'Path'即可。
然后是开发版。后者的时间要后于前者。

以下代码检查是否成功:

# check_cuda.pyimport torch import platform print("="*60)print("系统信息:")print(f"操作系统: {platform.system()}{platform.version()}")print(f"Python版本: {platform.python_version()}")print("="*60)print("\nCUDA状态检查:")print(f"PyTorch版本: {torch.__version__}")print(f"CUDA可用: {torch.cuda.is_available()}")if torch.cuda.is_available():print(f"\nGPU信息:")print(f"设备数量: {torch.cuda.device_count()}")for i inrange(torch.cuda.device_count()):print(f"\nGPU {i}:") prop = torch.cuda.get_device_properties(i)print(f" 名称: {prop.name}")print(f" 架构: sm_{prop.major}{prop.minor}")print(f" 显存: {prop.total_memory /1024**3:.2f} GB")print(f" 多处理器数量: {prop.multi_processor_count}")print(f"\nCUDA版本: {torch.version.cuda}")print(f"cuDNN版本: {torch.backends.cudnn.version()}")else:print("\nCUDA不可用,原因可能是:")print("1. 没有NVIDIA显卡")print("2. 没有安装CUDA驱动")print("3. PyTorch版本不支持你的显卡")# 测试GPU计算print("\n"+"="*60)print("GPU计算测试:")if torch.cuda.is_available():try:# 测试基本计算 a = torch.randn(1000,1000, device='cuda') b = torch.randn(1000,1000, device='cuda') c = torch.matmul(a, b)print("✓ 基本矩阵乘法测试通过")# 测试半精度计算if torch.cuda.get_device_properties(0).major >=5:# Volta架构以上 a_half = torch.randn(1000,1000, device='cuda', dtype=torch.float16) b_half = torch.randn(1000,1000, device='cuda', dtype=torch.float16) c_half = torch.matmul(a_half, b_half)print("✓ 半精度计算测试通过")# 测试内存分配 large_tensor = torch.randn(1000,1000,100, device='cuda')# 约400MBdel large_tensor torch.cuda.empty_cache()print("✓ 大内存分配测试通过")except Exception as e:print(f"✗ GPU测试失败: {e}")else:print("跳过GPU测试(CUDA不可用)")

Read more

一八零、AG-UI:构建AI前端交互的统一协议

一八零、AG-UI:构建AI前端交互的统一协议

AG-UI:构建AI前端交互的统一协议 引言 随着人工智能技术的飞速发展,AI Agent已经从概念走向实际应用。然而,在将这些智能体集成到前端应用中时,开发者面临着一个关键挑战:如何实现AI Agent与用户界面之间的高效、标准化交互? AG-UI(Agent User Interaction Protocol)正是为解决这一痛点而诞生的开源协议。它不仅仅是一个技术规范,更是连接AI智能体与前端应用的桥梁,让开发者能够构建真正智能化的用户体验。它们能够让开发者构建出真正嵌入UI应用、感知上下文、实时协同的智能体,而不仅仅是一个在后台提供文本答案的API服务。 一、AG-UI是什么? 1.1 核心定义 AG-UI(Agent-User Interaction Protocol) 是由CopilotKit团队提出的开源、轻量级协议,专门用于规范AI Agent与前端用户界面之间的通信流程,是一套开源的Agent与UI界面之间的交互协议。它的核心使命是: 标准化前端应用与AI智能体的连接方式,通过开放协议实现通用的AI驱动系统通信。 1.2 协议定位 在AI生态系统中

【前端部署在云服务器如何与本地联调--Frp内网穿透】

【前端部署在云服务器如何与本地联调--Frp内网穿透】

苍穹外卖前端部署在云服务器如何与本地联调--Frp内网穿透 * 1. 前言 * 2. FRP是什么 * 3. 解决步骤 * 3.1 在云服务器安装服务端frps,然后开启开机自启(**参考第4部分**) * 3.2 在本地电脑安装客户端fprc(**参考第4部分**) * 4. Frp(C/S)0.64.0各个系统的安装方法 * 4.1 frps安装(Linux)服务端 * 4.2 frpc安装(windows)客户端 * 4.3 frpc安装(==mac==)客户端 * 4.4 frpc安装(Linux)客户端 1. 前言 写这片文章的目的是为了解决上篇苍穹外卖项目的前端部署到云服务器的遗留问题:前端的云服务器的IP是公网IP,而我本地调试的Java后端是内网,前端响应的地址找不到本地的服务器。那么如何让云服务器上的前端项目能够找到后端的对应的地址呢?

前端数据可视化工具比较:别再为选择工具而烦恼了!

前端数据可视化工具比较:别再为选择工具而烦恼了! 毒舌时刻 数据可视化?听起来就像是前端工程师为了显得自己很专业而特意搞的一套复杂流程。你以为随便用个Chart.js就能做出好看的图表?别做梦了!到时候你会发现,复杂的图表需求根本满足不了。 你以为D3.js是万能的?别天真了!D3.js的学习曲线能让你崩溃,写出来的代码比业务代码还复杂。还有那些所谓的可视化库,看起来高大上,用起来却各种问题。 为什么你需要这个 1. 数据理解:数据可视化可以帮助你更好地理解数据,发现数据中的规律和趋势。 2. 决策支持:可视化的数据可以为决策提供直观的支持,帮助你做出更明智的决策。 3. 用户体验:良好的数据可视化可以提高用户体验,使数据更易于理解和使用。 4. 信息传递:可视化的数据可以更有效地传递信息,减少沟通成本。 5. 品牌形象:专业的数据可视化可以提升品牌的专业形象。 反面教材 // 1. 使用不适合的工具 // 复杂的数据可视化使用Chart.js import Chart from 'chart.js/

OpenClaw(Clawdbot)运行原理剖析:你的个人AI操作系统的引擎是如何工作的?

OpenClaw(Clawdbot)运行原理剖析:你的个人AI操作系统的引擎是如何工作的?

OpenClaw(Clawdbot)运行原理剖析:你的个人AI操作系统的引擎是如何工作的? 如果你曾想象过拥有一个能直接操控你电脑、完成实际任务的AI助手,那么理解OpenClaw(原名Clawdbot)的运行原理,就像是在窥探未来个人计算的引擎舱。 最近我深度体验并部署了OpenClaw,这个开源项目将大语言模型的“思考”能力与本地系统的“执行”能力结合,实现了一种全新的交互范式。在这篇博客中,我将结合自己的实践,为你深入剖析OpenClaw是如何在后台协同工作的。 一、核心架构:客户端-服务器模型 OpenClaw最核心的设计采用了经典的客户端-服务器(Client-Server)模型。理解这一点,是理解整个系统的基础。 当你安装OpenClaw后,实际上得到了两个主要部分: * 网关服务(Gateway):作为常驻后台的“服务器”或“引擎” * 用户界面(TUI/Web/聊天软件):作为与用户交互的“客户端” 它们之间的关系,可以用下面的架构图清晰地表示: 发送指令/接收回复 调度与执行 执行层 (技能与连接) 技能库