安装 pytorch-gpu 时 nvcc 和 clang 不能很好地协同工作

nvcc and clang are not working well together when installing pytorch-gpu

我正尝试按照官方说明在我的 MacBook Pro 上安装支持 gpu 的 pytorch。

一切顺利,直到发生错误:

[ 70%] Building NVCC (Device) object caffe2/CMakeFiles/caffe2_gpu.dir/__/aten/src/THC/caffe2_gpu_generated_THCTensorMath.cu.o
nvcc fatal   : The version ('90000') of the host compiler ('Apple clang') is not supported
nvcc fatal   : The version ('90000') of the host compiler ('Apple clang') is not supported
CMake Error at caffe2_gpu_generated_THCBlas.cu.o.Release.cmake:219 (message):
  Error generating
  /Users/username/Dev/pytorch-gpu/pytorch/build/cCaMfafkee2 /ECrMraokre Faitle sc/acfaffef2e_2g_pgup_ug.ednierr/a_t_e/da_tTeHnC/Sslrece/pT.HcCu/..o/.cRaeflfeea2s_eg.pcum_agkeen:e2r1a9t e(dm_eTsHsCaBglea)s:.

CUDA 和 clang 似乎不能很好地协同工作。

我通过互联网搜索并找到了这些帖子,但它们并没有解决我的问题:

这是我的环境:

我在回答我自己的问题。

Mac 上的 CUDA 安装不正确OS 可能是一场噩梦。 CUDA、Xcode、clang 和 macOS 的版本确实很重要。以下是一些官方测试的:

+------+--------------+------------+---------------------------------+--------+
| CUDA |    Xcode     | Apple LLVM | Mac OSX Version (native x86_64) | Yes/No |
+------+--------------+------------+---------------------------------+--------+
| 8.0  | 7.2          | 7.0.3      | 10.11                           | YES    |
| 8.0  | 7.2          | 7.0.3      | 10.12                           | NO     |
| 8.0  | 8.2          | 8.0.0      | 10.11                           | NO     |
| 8.0  | 8.2          | 8.0.0      | 10.12                           | YES    |
| 9.0  | 8.3.3        | 8.1.0      | 10.12                           | YES    |
| 9.1  | 9.2          | 9.0.0      | 10.13.3                         | YES    |
| 9.2  | 9.2          | 9.0.0      | 10.13.5                         | YES    |
| 10.0 | 9.4          | 9.0.0      | 10.13.6                         | YES    |
| 10.1 | 10.1 (10B61) | 10.0.0     | 10.13.6 (17G2307)               | YES    |
+------+--------------+------------+---------------------------------+--------+

对于 8.0 之前的 CUDA 版本,请搜索 NVIDIA CUDA 安装指南 MAC OS X 加上 CUDA 版本号,该 PDF 文件中应该有 table 个版本匹配。