Skip to content

Commit

Permalink
Upgrade to libtorch v1.8.0 in CMake scripts and Dockerfile, update CU…
Browse files Browse the repository at this point in the history
…DA version in colab notebook, update readme. (#78)
  • Loading branch information
mfl28 authored Mar 7, 2021
1 parent 6414c4f commit 3be5033
Show file tree
Hide file tree
Showing 5 changed files with 91 additions and 224 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
option(DOWNLOAD_DATASETS "Automatically download required datasets at build-time." ON)
option(CREATE_SCRIPTMODULES "Automatically create all required scriptmodule files at build-time (requires python3)." OFF)

set(PYTORCH_VERSION "1.7.0")
set(PYTORCH_VERSION "1.8.0")

find_package(Torch ${PYTORCH_VERSION} EXACT QUIET PATHS "${CMAKE_SOURCE_DIR}/libtorch")

Expand Down
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ RUN curl --silent --show-error --location --output ~/miniconda.sh https://repo.a

FROM conda AS conda-installs
# Install pytorch for CPU and torchvision.
ARG PYTORCH_VERSION=1.6.0
ARG TORCHVISION_VERSION=0.7.0
ARG PYTORCH_VERSION=1.8.0
ARG TORCHVISION_VERSION=0.9.0
ENV NO_CUDA=1
RUN conda install pytorch==${PYTORCH_VERSION} torchvision==${TORCHVISION_VERSION} cpuonly -y -c pytorch && conda clean -ya

Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@
<br />
<img src="https://img.shields.io/travis/prabhuomkar/pytorch-cpp">
<img src="https://img.shields.io/github/license/prabhuomkar/pytorch-cpp">
<img src="https://img.shields.io/badge/libtorch-1.7.0-ee4c2c">
<img src="https://img.shields.io/badge/libtorch-1.8.0-ee4c2c">
<img src="https://img.shields.io/badge/cmake-3.14-064f8d">
</p>


| OS (Compiler)\\LibTorch | 1.7.0 | nightly |
| OS (Compiler)\\LibTorch | 1.8.0 | nightly |
| :---------------------: | :---------------------------------------------------------------------------------------------------: | :-----: |
| macOS (clang 9.1) | ![Status](https://travis-matrix-badges.herokuapp.com/repos/prabhuomkar/pytorch-cpp/branches/master/1) | |
| macOS (clang 10.0) | ![Status](https://travis-matrix-badges.herokuapp.com/repos/prabhuomkar/pytorch-cpp/branches/master/2) | |
Expand Down Expand Up @@ -58,7 +58,7 @@ This repository provides tutorial code in C++ for deep learning researchers to l

1. [C++](http://www.cplusplus.com/doc/tutorial/introduction/)
2. [CMake](https://cmake.org/download/) (minimum version 3.14)
3. [LibTorch v1.7.0](https://pytorch.org/cppdocs/installing.html)
3. [LibTorch v1.8.0](https://pytorch.org/cppdocs/installing.html)
4. [Conda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/download.html)


Expand Down Expand Up @@ -95,7 +95,7 @@ Some useful options:

| Option | Default | Description |
| :------------- |:------------|-----:|
| `-D CUDA_V=(9.2 [Linux only]\|10.1\|10.2\|11.0\|none)` | `none` | Download LibTorch for a CUDA version (`none` = download CPU version). |
| `-D CUDA_V=(\|10.2\|11.1\|none)` | `none` | Download LibTorch for a CUDA version (`none` = download CPU version). |
| `-D DOWNLOAD_DATASETS=(OFF\|ON)` | `ON` | Download required datasets during build (only if they do not already exist in `pytorch-cpp/data`). |
|`-D CREATE_SCRIPTMODULES=(OFF\|ON)` | `OFF` | Create all required scriptmodule files for prelearned models / weights during build. Requires installed python3 with pytorch and torchvision. |
| `-D CMAKE_PREFIX_PATH=path/to/libtorch/share/cmake/Torch` | `<empty>` | Skip the downloading of LibTorch and use your own local version (see [Requirements](#requirements)) instead. |
Expand All @@ -121,14 +121,14 @@ cmake -B build \
<summary><b>Example Windows</b></summary>

##### Aim
* Automatically download LibTorch for CUDA 10.2 and all necessary datasets.
* Automatically download LibTorch for CUDA 11.1 and all necessary datasets.
* Do not create scriptmodule files.

##### Command
```bash
cmake -B build \
-A x64 \
-D CUDA_V=10.2
-D CUDA_V=11.1
```
</details>

Expand Down
16 changes: 4 additions & 12 deletions cmake/fetch_libtorch.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,23 @@ cmake_minimum_required(VERSION 3.14 FATAL_ERROR)

include(FetchContent)

set(CUDA_V "none" CACHE STRING "Determines libtorch CUDA version to download (9.2 [Linux only], 10.1, 10.2 or 11.0).")
set(CUDA_V "none" CACHE STRING "Determines libtorch CUDA version to download (10.2, 11.1 or none).")

if(${CUDA_V} STREQUAL "none")
set(LIBTORCH_DEVICE "cpu")
elseif(${CUDA_V} STREQUAL "9.2")
set(LIBTORCH_DEVICE "cu92")
elseif(${CUDA_V} STREQUAL "10.1")
set(LIBTORCH_DEVICE "cu101")
elseif(${CUDA_V} STREQUAL "10.2")
set(LIBTORCH_DEVICE "cu102")
elseif(${CUDA_V} STREQUAL "11.0")
set(LIBTORCH_DEVICE "cu110")
elseif(${CUDA_V} STREQUAL "11.1")
set(LIBTORCH_DEVICE "cu111")
else()
message(FATAL_ERROR "Invalid CUDA version specified, must be 9.2 [Linux only], 10.1, 10.2, 11.0 or none!")
message(FATAL_ERROR "Invalid CUDA version specified, must be 10.2, 11.1 or none!")
endif()

if(NOT ${LIBTORCH_DEVICE} STREQUAL "cu102")
set(LIBTORCH_DEVICE_TAG "%2B${LIBTORCH_DEVICE}")
endif()

if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
if(${LIBTORCH_DEVICE} STREQUAL "cu92")
message(FATAL_ERROR "PyTorch ${PYTORCH_VERSION} does not support CUDA 9.2 on Windows. Please use CPU or upgrade to CUDA versions 10.1, 10.2 or 11.0.")
endif()

set(LIBTORCH_URL "https://download.pytorch.org/libtorch/${LIBTORCH_DEVICE}/libtorch-win-shared-with-deps-${PYTORCH_VERSION}${LIBTORCH_DEVICE_TAG}.zip")
set(CMAKE_BUILD_TYPE "Release")
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
Expand Down
Loading

0 comments on commit 3be5033

Please sign in to comment.