Releases: TomHeaven/pytorch-osx-build
pytorch-2.0.0-py39-cuda10.1-cudnn7.6.5
This release is built for Pytorch 2.0.0 (py39) and torch vision & text 0.15.1 (py39) on Mac OS X 10.13 with GPU (CUDA) support.
Supported CUDA compute capability: 3.5,5.0,5.2,6.1,7.0. CUDA 10.1 and CuDNN 7.6.5 are required.
Note Python 3.7 is no longer supported by Pytorch 2.0.0. So I decided to upgrade my Python environment to Python3.9, which can easily done by
brew unlink [email protected]
brew install [email protected]
Dependencies
OpenMP
You can install OpenMP by
brew install libomp
brew link --overwrite libomp
If you are using an Nvidia Titan V GPU, ensure your GPU driver version is exactly 387.10.10.15.15.108 and CUDA driver version is 418.105.
MAGMA
MAGMA support is required by GPU algebra algorithms such as torch.inverse()
applied to GPU tensors. You need to install a few dependencies to make it work:
- unzip magma-2.6.2.zip to
/usr/local/lib
- download
usr_local_lib
from the master branch an put the dylib files into/usr/local/lib
.
Features
Distributed Module Support
- Unzip nccl_osx_2.5.8.zip to
/usr/local
folder. That is to say, put header files ininclude
to /usr/local/include and library files inlib
to/usr/local/lib
. torch.distributed
module is enabled with BOTHnccl
andgloo
backends now. It enables distributed GPU training for many existing training programs.
torch.compile
Pytorch 2.0.0 introduces a new mechanism by opt_model = torch.compile(model)
to accelerate execution. For CPU tensors, the function works fine on macOS. For GPU tensors, however, the function only partially works with an Nvidia Titan V GPU (which is the only GPU both working on macOS and supported by torch.compile for GPU tensors ) and the triton package.
Here is a working demo:
import torch
from torchvision.models import resnet50
def foo(x, y):
a = torch.sin(x)
b = torch.cos(x)
return a + b
# gpu tensor computation works with torch.compile (with an Nvidia Titan V GPU)
opt_foo1 = torch.compile(foo)
input = torch.randn(10,10).cuda()
print(opt_foo1(input, input))
# cpu tensors with resnet50 works with torch.compile
model = resnet50()
opt_model = torch.compile(model)
input = torch.rand(1,3,224,224)
output = opt_model(input)
Here is a failed demo:
import torch
from torchvision.models import resnet50
# gpu tensors with resnet50 failed with torch.compile
model = resnet50()
opt_model = torch.compile(model).cuda()
input = torch.rand(1,3,224,224).cuda()
output = opt_model(input)
The cause of the failure is that ptxas
binary (from CUDA SDK 10.1 for macOS) detects a syntax error in the intermediate representation (IR) code due to its outdated version. The details about the failure will be present in console starting with DEBUG INFO
.
Hacking the source from Linux CUDA 11 SDK to get a new version of ptxas
for macOS might be a solution, but it is beyond the scope of this project.
pytorch-1.13.1-py37-cuda10.1-cudnn7.6.5
This release is built for Pytorch 1.13.1 (py37) and torch vision & text 0.12.0 (py37) on Mac OS X 10.13 with GPU (CUDA) support.
Supported CUDA compute capability: 3.5,5.0,5.2,6.1,7.0.
OpenMP, CUDA 10.1 and CuDNN 7.6.5 are required. You can install OpenMP by
brew install libomp
brew link --overwrite libomp
If you are using an Nvidia Titan V GPU, ensure your GPU driver version is exactly 387.10.10.15.15.108 and CUDA driver version is 418.105.
MAGMA Support
MAGMA support is required by GPU algebra algorithms such as torch.inverse()
applied to GPU tensors. You need to install a few dependencies to make it work:
- unzip magma-2.6.2.zip to
/usr/local/lib
- download
usr_local_lib
from the master branch an put the dylib files into/usr/local/lib
.
Distributed Module Support
- Unzip nccl_osx_2.5.8.zip to
/usr/local
folder. That is to say, put header files ininclude
to /usr/local/include and library files inlib
to/usr/local/lib
. torch.distributed
module is enabled with BOTHnccl
andgloo
backends now. It enables distributed GPU training for many existing training programs.
pytorch-1.11.0-py37-cuda10.1-cudnn7.6.5
This release is built for Pytorch 1.11.0 (py37) and torch vision & text 0.12.0 (py37) on Mac OS X 10.13 with GPU (CUDA) support.
Supported CUDA compute capability: 3.5,5.0,5.2,6.1,7.0.
OpenMP, CUDA 10.1 and CuDNN 7.6.5 are required. You can install OpenMP by
brew install libomp
brew link --overwrite libomp
If you are using an Nvidia Titan V GPU, ensure your GPU driver version is exactly 387.10.10.15.15.108 and CUDA driver version is 418.105.
MAGMA Support
MAGMA support is required by GPU algebra algorithms such as torch.inverse()
applied to GPU tensors. You need to install a few dependencies to make it work:
- unzip magma-2.6.2.zip to
/usr/local/lib
- download
usr_local_lib
from the master branch an put the dylib files into/usr/local/lib
.
Distributed Module Support
- Unzip nccl_osx_2.5.8.zip to
/usr/local
folder. That is to say, put header files ininclude
to /usr/local/include and library files inlib
to/usr/local/lib
. torch.distributed
module is enabled with BOTHnccl
andgloo
backends now. It enables distributed GPU training for many existing training programs.
pytorch-1.10.0-py37-cuda10.1-cudnn7.6.5(Distributed)
This release is built for Pytorch 1.10.0 (py37) and torch vision 0.10.0 (py37) on Mac OS X 10.13 with GPU (CUDA) support.
Supported CUDA compute capability: 3.5,5.0,5.2,6.1,7.0.
OpenMP, CUDA 10.1 and CuDNN 7.6.5 are required. You can install OpenMP by
brew install libomp
brew link --overwrite libomp
If you are using an Nvidia Titan V GPU, ensure your GPU driver version is exactly 387.10.10.15.15.108 and CUDA driver version is 418.105.
MAGMA Support
MAGMA support is required by GPU algebra algorithms such as torch.inverse()
applied to GPU tensors. You need to install a few dependencies to make it work:
- unzip magma-2.6.2.zip to
/usr/local/lib
- download
usr_local_lib
from the master branch an put the dylib files into/usr/local/lib
.
Fixes
torch.eig()
with CUDA is fixed. Now it works with the above pre-builtmagma-2.6.2
in place.torch.distributed
module is enabled withgloo
backend only. It enables distributed GPU training for many existing training programs. Remember to usegloo
backend instead ofnccl
.
pytorch-1.10.0-py37-cuda10.1-cudnn7.6.5
This release is built for Pytorch 1.10.0 (py37) and torch vision 0.10.0 (py37) on Mac OS X 10.13 with GPU (CUDA) support.
Supported CUDA compute capability: 3.5,5.0,5.2,6.1,7.0.
OpenMP, CUDA 10.1 and CuDNN 7.6.5 are required. You can install OpenMP by
brew install libomp
brew link --overwrite libomp
If you are using an Nvidia Titan V GPU, ensure your GPU driver version is exactly 387.10.10.15.15.108 and CUDA driver version is 418.105.
MAGMA Support
MAGMA support is required by GPU algebra algorithms such as torch.inverse()
applied to GPU tensors. You need to install a few dependencies to make it work:
- unzip magma.zip to
/usr/local/lib
- download
usr_local_lib
from the master branch an put the dylib files into/usr/local/lib
.
Known Issues
pytorch-1.9.0-py37-cuda10.1-cudnn7.6.5
This release is built for Pytorch 1.9.0 (py37) and torch vision 0.10.0 (py37) on Mac OS X 10.13 with GPU (CUDA) support.
Supported CUDA compute capability: 3.5,5.0,5.2,6.1,7.0.
OpenMP, CUDA 10.1 and CuDNN 7.6.5 are required. You can install OpenMP by
brew install libomp
brew link --overwrite libomp
If you are using an Nvidia Titan V GPU, ensure your GPU driver version is exactly 387.10.10.15.15.108 and CUDA driver version is 418.105.
MAGMA Support
MAGMA support is required by GPU algebra algorithms such as torch.inverse()
applied to GPU tensors. You need to install a few dependencies to make it work:
- unzip magma.zip to
/usr/local/lib
- download
usr_local_lib
from the master branch an put the dylib files into/usr/local/lib
.
Known Issues
pytorch-1.8.0-py37-cuda10.1-cudnn7.6.5
This release is built for Pytorch 1.8.0 (py37) and torch vision 0.9.0 (py37) on Mac OS X 10.13 with GPU (CUDA) support.
Supported CUDA compute capability: 3.5,5.0,5.2,6.1,7.0.
OpenMP, CUDA 10.1 and CuDNN 7.6.5 are required. You can install OpenMP by
brew install libomp
brew link --overwrite libomp
If you are using an Nvidia Titan V GPU, ensure your GPU driver version is exactly 387.10.10.15.15.108 and CUDA driver version is 418.105.
MAGMA Support
MAGMA support is required by GPU algebra algorithms such as torch.inverse()
applied to GPU tensors. You need to install a few dependencies to make it work:
- unzip magma.zip to
/usr/local/lib
- download
usr_local_lib
from the master branch an put the dylib files into/usr/local/lib
.
Known Issues
torch.eig()
with CUDA is broken. Use v1.7.0 if you need it.
pytorch-1.7.0-py37-cuda10.1-cudnn7.6.5
This release is built for Pytorch 1.7.0 (py37) and torch vision 0.8.0 (py37) on Mac OS X 10.13 with GPU (CUDA) support.
Pytorch 1.7.0 relies on a pip wheel package named dataclasses
. You should install the package from this release rather than from other sources.
Supported CUDA compute capability: 3.5,5.0,5.2,6.1,7.0.
OpenMP, CUDA 10.1 and CuDNN 7.6.5 are required. You can install OpenMP by
brew install libomp
brew link --overwrite libomp
If you are using an Nvidia Titan V GPU, ensure your GPU driver version is exactly 387.10.10.15.15.108 and CUDA driver version is 418.105.
MAGMA Support
MAGMA support is required by GPU algebra algorithms such as torch.inverse()
applied to GPU tensors. You need to install a few dependencies to make it work:
- unzip magma.zip to
/usr/local/lib
- download
usr_local_lib
from the master branch an put the dylib files into/usr/local/lib
.
Distributed GPU Training Support
Pytorch 1.7.0 officially supports distributed GPU training on Windows using Gloo backend. A good news is that the distributed GPU training works on macOS, too. Simply install libuv by
brew install libuv
and use the newly uploaded wheel file in this release, the distributed feature is enabled by default.
pytorch-1.6.0-py37-cuda10.1-cudnn7.6.5
This release is built for Pytorch 1.6.0 (py37) and torch vision 0.7.0 (py37) on Mac OS X 10.13 with GPU (CUDA) support.
Supported CUDA compute capability: 3.5,5.0,5.2,6.1,7.0.
OpenMP, CUDA 10.1 and CuDNN 7.6.5 are required. You can install OpenMP by
brew install libomp
brew link --overwrite libomp
If you are using an Nvidia Titan V GPU, ensure your GPU driver version is exactly 387.10.10.15.15.108 and CUDA driver version is 418.105.
MAGMA Support
MAGMA support is required by GPU algebra algorithms such as torch.inverse()
applied to GPU tensors. You need to install a few dependencies to make it work:
- unzip magma.zip to
/usr/local/lib
- download
usr_local_lib
from the master branch an put the dylib files into/usr/local/lib
.
pytorch-1.6.0-py37-cuda10-cudnn7.6.5
This release is built for Pytorch 1.6.0 (py37) on Mac OS X 10.13 with GPU (CUDA) support. If you need GPU ops such as nms from torchvision, install torchvision-0.7.0a0+78ed10c-cp37-cp37m-macosx_10_12_x86_64.whl from this release rather than other sources.
Supported CUDA compute capability: 3.5,5.0,5.2,6.1,7.0.
OpenMP, CUDA 10 and CuDNN 7.6.5 are required. You can install OpenMP by
brew install libomp
brew link --overwrite libomp
If you are using an Nvidia Titan V GPU, ensure your GPU driver version is exactly 387.10.10.15.15.108 and CUDA driver version is 418.105.
MAGMA Support
MAGMA support is required by GPU algebra algorithms such as torch.inverse()
applied to GPU tensors. You need to install a few dependencies to make it work:
- unzip magma.zip to
/usr/local/lib
- download
usr_local_lib
from the master branch an put the dylib files into/usr/local/lib
.