You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

MacBook Pro安装GPU版PyTorch遇NVCC与Clang兼容问题

解决Mac上NVCC与Apple Clang版本不兼容导致PyTorch GPU编译失败的问题

我之前也碰到过Mac上CUDA和Clang版本不兼容的坑,结合你的环境信息(CUDA 8.0、macOS Sierra 10.12.6),给你一套能彻底解决的方案:

问题根源

CUDA 8.0对Apple Clang的支持有严格版本限制,仅兼容Clang 8.0.x及以下版本。你之前降级到Clang 8.1.0仍然超出了支持范围,而且Xcode 9.2自带的工具链和单独降级的Clang存在版本绑定冲突,导致NVCC还是会检测到不兼容的编译器版本。

具体解决步骤

1. 安装兼容的Xcode版本

CUDA 8.0完美匹配Xcode 8.3.3(自带Clang 8.0.x),操作如下:

  • 卸载当前Xcode 9.2:将Applications文件夹中的Xcode拖入废纸篓,然后执行命令清理残留的命令行工具:
    sudo rm -rf /Library/Developer/CommandLineTools
    
  • 下载并安装Xcode 8.3.3(需要登录Apple开发者账号获取安装包),安装完成后打开一次Xcode,同意用户协议以完成初始化。
  • 安装对应版本的命令行工具:
    xcode-select --install
    

2. 配置环境变量强制指定编译器

确保PyTorch编译时使用Xcode 8.3.3自带的Clang:

  • 打开你的shell配置文件(如果用bash是~/.bash_profile,用zsh是~/.zshrc),添加以下内容:
    export CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
    export CXX=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
    
  • 执行命令让配置生效:
    source ~/.bash_profile  # 对应bash环境
    # 或 source ~/.zshrc  # 对应zsh环境
    

3. 重新编译PyTorch

先清理之前的编译缓存,再重新执行编译:

cd pytorch
rm -rf build
git clean -xdf
python setup.py install

额外说明

如果你不想完全替换Xcode版本,可以尝试在编译时临时指定编译器路径,但这种方法容易出现工具链依赖冲突,不如直接安装兼容的Xcode版本稳定。

内容的提问来源于stack exchange,提问作者Jerry Yang

火山引擎 最新活动