当前位置:

首页 > 编程开发 > 解决Conda虚拟环境中PyTorch调用系统CUDA的配置指南

解决Conda虚拟环境中PyTorch调用系统CUDA的配置指南

1. 从一次典型的“CUDA不可用”报错说起 在Conda创建的PyTorch虚拟环境里跑深度学习代码,十有八九会遇到那个让人血压飙升的错误:RuntimeError: CUDA error: no kernel image is available for execution on the dev

本文目录

    1. 从一次典型的“CUDA不可用”报错说起

    在Conda创建的PyTorch虚拟环境里跑深度学习代码,十有八九会遇到那个让人血压飙升的错误:RuntimeError: CUDA error: no kernel image is available for execution on the device,或者更直白的torch.cuda.is_available()返回False。这感觉就像你明明给电脑装上了顶级显卡,系统却告诉你“找不到显示器”。问题往往不在于PyTorch没装对,也不一定是CUDA驱动版本不匹配,而是埋藏得更深的一个环节——虚拟环境与系统全局CUDA之间的“断联”。

    解决Conda虚拟环境中PyTorch调用系统CUDA的配置指南

    不少教程会推荐用conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch这样的命令,在虚拟环境里装一个“全家桶”。这确实能解决一部分问题,因为Conda渠道会安装一个特定版本的CUDA Toolkit到你的虚拟环境里。但这种方式有两个明显的短处:一是浪费磁盘空间——每个虚拟环境都要单独装一份CUDA Toolkit;二是当你需要用到系统级CUDA库时(比如某些需要nvcc编译的定制化算子,或者TensorRT这类与系统CUDA深度绑定的推理引擎),这个虚拟环境内的“阉割版”CUDA Toolkit就捉襟见肘了。

    更常见的场景是:你的宿主机(比如Ubuntu系统)已经通过官方渠道安装了完整版的CUDA Toolkit(例如/usr/local/cuda-11.8),你希望虚拟环境里的PyTorch能直接调用这个功能完整的系统级CUDA环境。这时候,仅仅在虚拟环境里安装PyTorch是不够的,你需要为这个虚拟环境“指路”——告诉它:“嘿,系统CUDA在那边,去那里找你要的库和编译器。”这个“指路”的过程,就是配置环境变量。

    2. 为什么虚拟环境会“看不见”系统CUDA?

    要理解这个问题,先拆解一下PyTorch调用CUDA的完整链条。当你执行import torch; torch.cuda.is_available()时,背后发生了这几件事:

    1. Python解释器加载PyTorch的torch模块。
    2. torch模块(通常是C++扩展)会尝试动态链接到CUDA的运行时库,最主要的就是libcudart.so(CUDA Runtime库)和libcublas.so(CUDA基础线性代数子程序库)等。
    3. 动态链接器(在Linux上是ld.so)会按照一套既定的规则去磁盘上寻找这些库文件。这套规则的搜索路径,由一系列环境变量决定,其中最关键的当属LD_LIBRARY_PATH。

    当你激活一个Conda虚拟环境后,Conda会做一件重要的事:它修改了当前Shell会话的PATH环境变量,将虚拟环境下的bin目录置于系统路径之前。这意味着,当你输入python或pip时,会优先使用虚拟环境里的版本。但Conda默认不会去修改LD_LIBRARY_PATH这类库路径变量。

    结果就是:你的PyTorch是在虚拟环境里通过pip或conda安装的,它编译时可能链接了某个版本的CUDA。但当你运行它时,动态链接器只会在系统默认的库路径(如/usr/lib、/lib)和当前LD_LIBRARY_PATH指向的路径里找CUDA库。如果你的系统CUDA安装在/usr/local/cuda-11.8/lib64,而这个路径又不在默认的LD_LIBRARY_PATH里,链接器就会找不到库,导致CUDA不可用。

    所以,核心任务就是:将系统CUDA库的路径,添加到虚拟环境的“可见范围”内。这里有几种不同粒度的方法。

    3. 方法一:临时生效——在激活环境时手动导出

    这是最直接、最灵活,也最“临时”的方法。每次激活虚拟环境后,在同一个终端会话中手动设置环境变量。

    # 1. 激活你的PyTorch虚拟环境
    conda activate your_pytorch_env
    
    # 2. 手动设置CUDA相关环境变量
    # 假设你的系统CUDA安装在 /usr/local/cuda-11.8
    export CUDA_HOME=/usr/local/cuda-11.8
    export PATH=$CUDA_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
    

    逐行解释一下:

    • export CUDA_HOME=/usr/local/cuda-11.8:设置一个变量,指明CUDA的根目录。很多构建工具(如setuptools)和软件包会查找这个变量。
    • export PATH=$CUDA_HOME/bin:$PATH:将CUDA的bin目录(包含nvcc等编译器)添加到PATH的最前面。这样在虚拟环境里也能直接调用系统nvcc。
    • export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH:这是最关键的一步。将CUDA的库目录(通常是lib64)添加到LD_LIBRARY_PATH的最前面。动态链接器会优先从这里搜索CUDA库。

    验证是否成功:完成设置后,打开Python验证:

    import torch
    print(torch.cuda.is_available()) # 应该输出 True
    print(torch.version.cuda) # 输出PyTorch构建时对应的CUDA版本,如 11.8
    # 可以进一步测试一个简单的CUDA操作
    print(torch.cuda.get_device_name(0)) # 输出你的GPU型号
    

    实操心得与避坑点:

    1. 路径一定要确认:/usr/local/cuda-11.8只是一个例子。请用ls /usr/local/cuda*或which nvcc来确认你的系统CUDA实际安装路径。可能是cuda-12.1、cuda(一个指向默认版本的软链接)等。
    2. 顺序很重要:在PATH和LD_LIBRARY_PATH的赋值中,我们把CUDA路径放在$PATH和$LD_LIBRARY_PATH之前(即$CUDA_HOME/bin:$PATH)。这确保了优先使用系统CUDA的工具和库,避免与虚拟环境内可能存在的旧版本冲突。
    3. 临时性:这种方式设置的环境变量只在当前终端窗口有效。关闭终端或新开一个终端,都需要重新执行一遍这些export命令。适合临时调试或确定性的单次任务。

    4. 方法二:半永久生效——修改Conda环境的激活/停用脚本

    如果你厌倦了每次手动输入,可以一劳永逸地将这些命令“植入”到你的虚拟环境中。Conda为每个环境提供了激活(activate)和停用(deactivate)的钩子脚本。

    具体操作如下:

    1. 找到你的虚拟环境目录。可以通过conda info --envs查看环境列表及其路径。假设你的环境名叫pytorch_gpu,路径可能是~/miniconda3/envs/pytorch_gpu/或~/anaconda3/envs/pytorch_gpu/。
    2. 进入该环境的目录,并创建必要的脚本目录和文件。
      # 进入你的虚拟环境目录
      cd ~/miniconda3/envs/pytorch_gpu
      # 创建 etc/conda/activate.d 目录(如果不存在)
      mkdir -p ./etc/conda/activate.d
      # 创建 etc/conda/deactivate.d 目录(如果不存在)
      mkdir -p ./etc/conda/deactivate.d
    3. 创建激活脚本。在activate.d目录下创建一个脚本文件,例如set_cuda_vars.sh。
      # 编辑激活脚本
      nano ./etc/conda/activate.d/set_cuda_vars.sh
      在文件中写入以下内容(同样,请替换/usr/local/cuda-11.8为你的实际路径):
      #!/bin/bash
      # 此脚本在conda activate时自动执行
      export OLD_CUDA_HOME=$CUDA_HOME
      export OLD_PATH=$PATH
      export OLD_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
      export CUDA_HOME=/usr/local/cuda-11.8
      export PATH=$CUDA_HOME/bin:$PATH
      export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
      echo "CUDA environment variables set for $CONDA_DEFAULT_ENV"
    4. 创建停用脚本。在deactivate.d目录下创建对应的脚本文件,例如unset_cuda_vars.sh。
      # 编辑停用脚本
      nano ./etc/conda/deactivate.d/unset_cuda_vars.sh
      在文件中写入以下内容:
      #!/bin/bash
      # 此脚本在conda deactivate时自动执行
      export CUDA_HOME=$OLD_CUDA_HOME
      export PATH=$OLD_PATH
      export LD_LIBRARY_PATH=$OLD_LD_LIBRARY_PATH
      unset OLD_CUDA_HOME
      unset OLD_PATH
      unset OLD_LIBRARY_PATH
      echo "CUDA environment variables restored."

    原理与好处:

    • 激活时:脚本先备份了当前的环境变量值(OLD_*),然后设置指向系统CUDA的新值。
    • 停用时:脚本将环境变量恢复为激活之前的状态。这是一个非常好的实践,它避免了环境变量在不同环境间发生污染和冲突。比如,你停用pytorch_gpu环境后,再激活一个只做CPU计算的tensorflow_cpu环境,后者就不会被错误的CUDA路径干扰。
    • 半永久性:一旦设置好,以后每次conda activate pytorch_gpu,CUDA路径会自动配置;conda deactivate后会自动清理。无需手动干预。

    实操心得与避坑点:

    1. 脚本权限:创建脚本后,确保它们有可执行权限:chmod +x ./etc/conda/activate.d/set_cuda_vars.sh ./etc/conda/deactivate.d/unset_cuda_vars.sh。
    2. 路径验证:脚本中的CUDA路径务必准确。一个快速验证方法是,在系统终端(不在任何Conda环境中)执行echo $CUDA_HOME或which nvcc,看看默认的系统CUDA路径是什么。
    3. 环境隔离:这种方法是环境级别的配置,只影响特定的虚拟环境,不会污染你的基础环境或其他环境,非常干净。
    4. 调试:如果激活后CUDA仍然不可用,可以在激活环境后,执行echo $LD_LIBRARY_PATH和echo $PATH,检查路径是否按预期添加到了最前面。

    5. 方法三:系统级配置——修改用户Shell配置文件(谨慎使用)

    如果你希望所有环境(包括基础环境)都能默认找到系统CUDA,或者你使用虚拟环境的方式比较固定,可以考虑在用户级别的Shell配置文件(如~/.bashrc或~/.zshrc)中设置CUDA环境变量。

    # 打开你的shell配置文件,例如对于bash
    nano ~/.bashrc
    # 在文件末尾添加以下行
    export CUDA_HOME=/usr/local/cuda-11.8
    export PATH=$CUDA_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH

    添加后,执行source ~/.bashrc或重新打开终端使配置生效。

    这种方法的风险与考量:

    • 全局影响:这会影响你所有的终端会话和程序,包括那些不需要CUDA甚至可能与特定CUDA版本冲突的程序。
    • 路径冲突:如果你后续通过Conda在某个环境里安装了另一个版本的cudatoolkit,可能会因为LD_LIBRARY_PATH的优先级问题,导致库版本冲突,引发难以调试的运行时错误。
    • 不够灵活:当你需要切换不同版本的CUDA(例如为不同的项目测试CUDA 11.8和12.1)时,这种方式就很笨拙。

    因此,强烈建议优先使用【方法二】。除非你确定你的机器上只有一个CUDA版本,并且所有开发工作都基于它,否则不推荐在~/.bashrc中永久设置CUDA路径。方法二提供了更好的隔离性和可控性。

    6. 进阶排查:当配置了环境变量仍不生效时

    有时候,即使LD_LIBRARY_PATH设置正确,torch.cuda.is_available()还是返回False。别慌,我们可以进行系统化的排查。

    6.1 检查PyTorch与CUDA版本的兼容性

    PyTorch的预编译版本是与特定的CUDA版本绑定的。你需要确认你安装的PyTorch版本支持你系统安装的CUDA驱动版本。

    1. 查询系统CUDA驱动版本:

      nvidia-smi

      在输出右上角,可以看到CUDA Version: 12.4这样的信息。这表示你的驱动支持的最高CUDA运行时版本是12.4。你的系统CUDA Toolkit版本(/usr/local/cuda-xx.x)必须小于等于这个值。

    2. 查询系统CUDA Toolkit版本:

      # 进入你配置的CUDA_HOME路径下的bin目录
      cd $CUDA_HOME/bin
      ./nvcc --version

      输出末尾会显示release xx.x,这就是你系统安装的CUDA Toolkit版本。

    3. 查询PyTorch构建的CUDA版本:在你的虚拟环境中启动Python:

      import torch
      print(torch.version.cuda) # 输出PyTorch构建时使用的CUDA版本
      

      兼容性规则:torch.version.cuda(PyTorch构建版本)必须 ≤ 系统CUDA Toolkit版本 ≤ nvidia-smi显示的驱动支持版本。

      • 理想情况:三者一致(例如都是11.8)。
      • 常见可工作情况:PyTorch构建版本(11.8)≤ 系统Toolkit版本(11.8)≤ 驱动支持版本(12.4)。
      • 必然失败的情况:PyTorch构建版本(12.1)> 系统Toolkit版本(11.8)。

    6.2 使用ldd进行深度库依赖检查

    如果版本兼容,但PyTorch仍找不到CUDA,可能是动态链接本身出了问题。我们可以用ldd命令检查PyTorch的CUDA扩展库到底链接了哪些文件。

    1. 首先,找到PyTorch的CUDA核心库文件。它通常在虚拟环境的site-packages/torch/lib下。

      # 激活环境后,找到libcudart的链接
      find $CONDA_PREFIX -name "libc10_cuda.so" 2>/dev/null
      # 或者直接列出torch的lib目录
      ls -la $CONDA_PREFIX/lib/python3.9/site-packages/torch/lib/

      你会看到类似libc10_cuda.so、libcudart-xxxx.so的文件。

    2. 使用ldd检查其动态链接情况:

      ldd $CONDA_PREFIX/lib/python3.9/site-packages/torch/lib/libc10_cuda.so | grep cuda
      

      观察输出。如果看到libcudart.so.xxxx => not found,那就证实了动态链接器确实找不到对应的CUDA运行时库。这时,再检查你的LD_LIBRARY_PATH:

      echo $LD_LIBRARY_PATH

      确认路径中包含的lib64目录下,是否存在那个找不到的.so文件(例如libcudart.so.11.0)。可能需要用find命令在系统里搜索一下这个文件的确切位置。

    6.3 处理“CUDA Error: no kernel image is available”

    这个错误通常意味着PyTorch编译的算子在当前GPU架构上无法运行。PyTorch的CUDA版本(torch.version.cuda)不仅是一个数字,其预编译的二进制包(cu118)还包含了针对一系列GPU计算能力(Compute Capability)的编译代码。

    1. 检查你的GPU架构:

      import torch
      if torch.cuda.is_available():
          device = torch.cuda.current_device()
          print(torch.cuda.get_device_capability(device)) # 输出如 (8, 6)
          print(torch.cuda.get_device_name(device)) # 输出GPU型号
      

      记下get_device_capability返回的元组,如(8, 6)代表计算能力8.6(对应RTX 30系列等)。

    2. 与PyTorch二进制包支持架构对比。你需要去查阅你下载的PyTorch版本(如torch-2.2.0+cu118-cp39-cp39-linux_x86_64.whl)的官方说明,看它预编译支持了哪些计算能力。较新的GPU(如计算能力8.9, 9.0)可能不被旧的PyTorch版本支持。

    3. 解决方案:

      • 方案A(推荐):升级PyTorch到支持你GPU架构的版本。通常,使用最新稳定版的PyTorch和对应的CUDA版本能获得最广泛的架构支持。
      • 方案B(从源码编译):如果必须使用特定版本的PyTorch,你可以从源码编译,并在编译时指定你的GPU计算能力。但这过程复杂,仅推荐高级用户。
      • 方案C:使用conda安装PyTorch。Conda渠道的PyTorch包有时会包含比PyPI的wheel文件更广泛的架构支持。可以尝试conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia。

    7. 最佳实践总结与配置模板

    经过以上分析,对于“Conda虚拟环境中配置环境变量以调用系统CUDA”这个需求,推荐实践是:

    首选【方法二】:使用Conda环境的激活/停用钩子脚本。它实现了环境级别的、自动化的、干净隔离的配置。

    这里提供一个增强版的配置模板,增加了更多的环境变量和健壮性检查:

    激活脚本 (etc/conda/activate.d/set_cuda_vars.sh):

    #!/bin/bash
    # 设置系统CUDA路径,请根据实际情况修改
    SYS_CUDA_HOME="/usr/local/cuda-11.8"
    # 检查路径是否存在
    if [ ! -d "$SYS_CUDA_HOME" ]; then
        echo "[WARNING] 配置的CUDA路径不存在: $SYS_CUDA_HOME"
        echo "[WARNING] 请检查并修改脚本中的 SYS_CUDA_HOME 变量。"
        # 可以尝试自动查找
        if [ -d "/usr/local/cuda" ]; then
            SYS_CUDA_HOME="/usr/local/cuda"
            echo "[INFO] 自动使用软链接路径: $SYS_CUDA_HOME"
        else
            return 0 # 不设置,避免错误
        fi
    fi
    # 备份旧变量
    export CONDA_BACKUP_CUDA_HOME="$CUDA_HOME"
    export CONDA_BACKUP_PATH="$PATH"
    export CONDA_BACKUP_LD_LIBRARY_PATH="$LD_LIBRARY_PATH"
    # 设置NVIDIA相关环境变量,某些库(如TensorRT)会用到
    export CONDA_BACKUP_NVCC_PREPEND_FLAGS="$NVCC_PREPEND_FLAGS"
    # 设置新变量
    export CUDA_HOME="$SYS_CUDA_HOME"
    export PATH="$CUDA_HOME/bin:$PATH"
    export LD_LIBRARY_PATH="$CUDA_HOME/lib64:$CUDA_HOME/extras/CUPTI/lib64:$LD_LIBRARY_PATH"
    # 可选:为nvcc编译器添加包含路径,如果你需要编译CUDA代码
    export NVCC_PREPEND_FLAGS="-I$CUDA_HOME/include $NVCC_PREPEND_FLAGS"
    echo "[INFO] 已为环境 '$CONDA_DEFAULT_ENV' 设置系统CUDA路径: $CUDA_HOME"

    停用脚本 (etc/conda/deactivate.d/unset_cuda_vars.sh):

    #!/bin/bash
    # 恢复环境变量
    if [ -n "$CONDA_BACKUP_CUDA_HOME" ]; then
        export CUDA_HOME="$CONDA_BACKUP_CUDA_HOME"
        unset CONDA_BACKUP_CUDA_HOME
    else
        unset CUDA_HOME
    fi
    export PATH="$CONDA_BACKUP_PATH"
    unset CONDA_BACKUP_PATH
    export LD_LIBRARY_PATH="$CONDA_BACKUP_LD_LIBRARY_PATH"
    unset CONDA_BACKUP_LD_LIBRARY_PATH
    if [ -n "$CONDA_BACKUP_NVCC_PREPEND_FLAGS" ]; then
        export NVCC_PREPEND_FLAGS="$CONDA_BACKUP_NVCC_PREPEND_FLAGS"
        unset CONDA_BACKUP_NVCC_PREPEND_FLAGS
    else
        unset NVCC_PREPEND_FLAGS
    fi
    echo "[INFO] 已恢复CUDA相关环境变量。"

    这个模板增加了路径存在性检查,并备份/恢复了更多可能相关的变量(如NVCC_PREPEND_FLAGS),更加健壮。将脚本中的/usr/local/cuda-11.8替换为你的实际路径,并赋予可执行权限,就能享受到自动化、无感的CUDA环境切换了。这套方法在管理多个需要不同CUDA版本的深度学习项目时非常可靠,它完美地平衡了灵活性和隔离性。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发
    相关文章 更多
    两周前刚说CUDA神话松动,SemiAnalysis转头点赞英伟达vLLM——AMD追赶的不只是硬件
    两周前刚说CUDA神话松动,SemiAnalysis转头点赞英伟达vLLM——AMD追赶的不只是硬件

    SemiAnalysis先指出英伟达CUDA护城河遭侵蚀,后又点赞其vLLM推理性能,认为AMD在部分模型支持上仍有差距。推理时代软件生态深度比硬件更关键,英伟达在推理软件栈的积累正成为持久竞争壁垒。

    QLoRA微调中CUDA设备初始化失败的完整排查与修复指南
    QLoRA微调中CUDA设备初始化失败的完整排查与修复指南

    在实际操作中,用QLoRA+PEFT微调大模型时,因CUDA上下文丢失触发的设备断言错误,是不少人都踩过的坑。下面这份排查与修复方案,希望能帮你一次性解决它。 在实际工作中,用QLoRA对Gemma、Llama、Qwen这类大模型做高效微调时,可能会遇到一个颇具迷惑性的报错: RuntimeErro

    如何让 PyTorch(CUDA 版)被 pip 正确缓存以加速多环境安装
    如何让 PyTorch(CUDA 版)被 pip 正确缓存以加速多环境安装

    升级pip至24.0及以上版本,即可自动解决PyTorchCUDA版wheel重复下载问题,缓存机制自动生效,无需任何手动配置,多环境安装时效率显著提升,避免反复下载同一文件。

    英伟达未发售的桌面端RTX 3050 Ti显卡现身:3328CUDA + 6GB
    英伟达未发售的桌面端RTX 3050 Ti显卡现身:3328CUDA + 6GB

    最近,有消息人士在社交平台上放出了一组实物照片和测试数据,主角是一款从未正式推向市场的桌面显卡——NVIDIA GeForce RTX 3050 Ti。说实话,这块卡在RTX 30系产品线里一直是个“只闻其声不见其人”的角色,如今终于露出真容,倒是很有意思。 ▲ 图源:@白给的盖欧卡 从照片和识别信

    QLoRA微调Gemma模型时CUDA设备断言失败的完整解决方案
    QLoRA微调Gemma模型时CUDA设备断言失败的完整解决方案

    QLoRA微调Gemma模型时CUDA设备断言失败的完整解决方案 本文详解QLoRA+PEFT微调Gemma等大模型时,因CUDA上下文未正确初始化导致的device >= 0 && device < num_gpus断言错误,提供从环境重置、配置修正到稳健训练的全流程避坑指南。 如果你正在使用QL

    庆祝 CUDA 诞生 20 周年,英伟达黄仁勋称 Token 是 AI 时代基础单元
    庆祝 CUDA 诞生 20 周年,英伟达黄仁勋称 Token 是 AI 时代基础单元

    Token:新AI时代的基础构建单元 GPU技术大会(GTC)于3月17日在美国圣何塞正式开幕,英伟达首席执行官黄仁勋在主题演讲中抛出一个重要论断:当下AI时代最基础的构建单元,既不是算法也不是算力,而是看似微小的"Token"(词元)。这一观点为整个行业提供了全新的认知视角。 站在CUDA架构诞生

    NVIDIA CUDA 13.1发布,护城河再升级
    NVIDIA CUDA 13.1发布,护城河再升级

    12月7日快讯,NVIDIA近日正式发布CUDA13.1版本,官方宣称这是自2006年CUDA平台问世以来规模最宏大、覆盖最广泛的升级。本次更新最具突破性的特性,是首次引入划时代的CUDATile编程范式,标志着GPU开发正迈向更高层级的抽象化新纪元。长期以来,GPU编程普遍采用SIMT(单指令多线程)架构,开发者需深度介入线程管理、内存访问策略及同步机制等底层细节。而CUDATile则以tile(即数据块或瓦片)为核心单元进行建模,开发者只需聚焦于如何划分数据块并定义其上的计算逻辑,至于线程分发、

    初创公司硬刚英伟达:在 AMD 卡上模拟 CUDA,原版程序直接编译运行
    初创公司硬刚英伟达:在 AMD 卡上模拟 CUDA,原版程序直接编译运行

    无需任何修改转换,AMD显卡也跑起原版CUDA程序了!英国一家初创公司,推出了针对AMD的CUDA程序编译工具,而且免费商用。工具一经发布就引发了网友们的广泛热议,并登顶了HackerNews热榜。该工具名为SCALE,开发者给它的定位是一个GPGPU(通用GPU)编程工具包。目前已有大模型框架llama-cpp等9个程序通过测试,实现了正常运行。与其他实现方式不同,SCALE直接模拟CUDA工具包的安装,不需要转换成其他语言就能源到源地完成编译。因此,像内联PTX这种英伟达专用的中间语言,SCALE同样

    英伟达禁止第三方公司使用CUDA?摩尔线程表示不受影响
    英伟达禁止第三方公司使用CUDA?摩尔线程表示不受影响

    本站3月6日消息,近日,网络上出现了对于英伟达CUDA(并行计算平台)兼容相关的报道,被认为是“禁止第三方公司兼容CUDA”。据外媒Tom'sHardware报道,英伟达CUDA11.6及更高版本的EULA(最终用户许可协议)中的某条款提到,“您不能逆向工程、反编译或反汇编使用此SDK生成的任何结果,并在非英伟达平台上进行转译。”对此,国产GPU厂商摩尔线程官方发布声明,表示其MUSA/MUSIFY不涉及英伟达EULA相关条款,开发者可放心使用。摩尔线程表示,MUSA是摩尔线程自主研发、拥有全部知识产权、

    opencode安装skills教程及本地配置方法
    opencode安装skills教程及本地配置方法

    遇到OpenCode Skills无法加载或配置无效?本文手把手教你完成Skills的安装、环境变量设置及本地调试,避开常见坑点,让AI助手更懂你的代码习惯。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。