Skip to content

Commit 4fe8571

Browse files
iotamudeltafacebook-github-bot
authored andcommitted
switch to rocThrust for thrust/cub APIs (pytorch#25620)
Summary: Pull Request resolved: pytorch#25620 Pull Request resolved: pytorch#25602 Enable rocThrust with hipCUB and rocPRIM for ROCm. They are the ROCm implementations of the thrust and cub APIs and replace the older hip-thrust and cub-hip packages going forward. ROCm 2.5 is the first release to contain the new packages as an option, as of 2.6 they will be the only available option. Add hipification rules to correctly hipify thrust::cuda to thrust::hip and cub:: to hipcub:: going forward. Add hipification rules to hipify specific cub headers to the general hipcub header. Infrastructure work to correctly find, include and link against the new packages. Add the macro definition to choose the HIP backend to Thrust. Since include chains are now a little different from CUDA's Thrust, add includes for functionality used where applicable. Skip four tests that fail with the new rocThrust for now. Pull Request resolved: pytorch#21864 Reviewed By: xw285cornell Differential Revision: D16940768 Pulled By: bddppq fbshipit-source-id: 3dba8a8f1763dd23d89eb0dd26d1db109973dbe5
1 parent 68b9920 commit 4fe8571

File tree

19 files changed

+107
-41
lines changed

19 files changed

+107
-41
lines changed

.circleci/cimodel/data/caffe2_build_definitions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
DOCKER_IMAGE_PATH_BASE = "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/"
1616

17-
DOCKER_IMAGE_VERSION = 287
17+
DOCKER_IMAGE_VERSION = 301
1818

1919

2020
@dataclass

.circleci/config.yml

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1835,7 +1835,7 @@ workflows:
18351835
- master
18361836
- /ci-all\/.*/
18371837
build_environment: "caffe2-py2-gcc4.8-ubuntu14.04-build"
1838-
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-gcc4.8-ubuntu14.04:287"
1838+
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-gcc4.8-ubuntu14.04:301"
18391839
- caffe2_linux_test:
18401840
name: caffe2_py2_gcc4_8_ubuntu14_04_test
18411841
requires:
@@ -1847,7 +1847,7 @@ workflows:
18471847
- master
18481848
- /ci-all\/.*/
18491849
build_environment: "caffe2-py2-gcc4.8-ubuntu14.04-test"
1850-
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-gcc4.8-ubuntu14.04:287"
1850+
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-gcc4.8-ubuntu14.04:301"
18511851
resource_class: large
18521852
- caffe2_linux_build:
18531853
name: caffe2_py2_cuda9_0_cudnn7_ubuntu16_04_build
@@ -1859,7 +1859,7 @@ workflows:
18591859
- master
18601860
- /ci-all\/.*/
18611861
build_environment: "caffe2-py2-cuda9.0-cudnn7-ubuntu16.04-build"
1862-
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-cuda9.0-cudnn7-ubuntu16.04:287"
1862+
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-cuda9.0-cudnn7-ubuntu16.04:301"
18631863
- caffe2_linux_test:
18641864
name: caffe2_py2_cuda9_0_cudnn7_ubuntu16_04_test
18651865
requires:
@@ -1872,65 +1872,65 @@ workflows:
18721872
- /ci-all\/.*/
18731873
build_environment: "caffe2-py2-cuda9.0-cudnn7-ubuntu16.04-test"
18741874
use_cuda_docker_runtime: "1"
1875-
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-cuda9.0-cudnn7-ubuntu16.04:287"
1875+
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-cuda9.0-cudnn7-ubuntu16.04:301"
18761876
resource_class: gpu.medium
18771877
- caffe2_linux_build:
18781878
name: caffe2_cmake_cuda9_0_cudnn7_ubuntu16_04_build
18791879
requires:
18801880
- setup
18811881
build_environment: "caffe2-cmake-cuda9.0-cudnn7-ubuntu16.04-build"
1882-
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-cuda9.0-cudnn7-ubuntu16.04:287"
1882+
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-cuda9.0-cudnn7-ubuntu16.04:301"
18831883
- caffe2_linux_test:
18841884
name: caffe2_cmake_cuda9_0_cudnn7_ubuntu16_04_test
18851885
requires:
18861886
- setup
18871887
- caffe2_cmake_cuda9_0_cudnn7_ubuntu16_04_build
18881888
build_environment: "caffe2-cmake-cuda9.0-cudnn7-ubuntu16.04-test"
18891889
use_cuda_docker_runtime: "1"
1890-
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-cuda9.0-cudnn7-ubuntu16.04:287"
1890+
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-cuda9.0-cudnn7-ubuntu16.04:301"
18911891
resource_class: gpu.medium
18921892
- caffe2_linux_build:
18931893
name: caffe2_py2_cuda9_1_cudnn7_ubuntu16_04_build
18941894
requires:
18951895
- setup
18961896
build_environment: "caffe2-py2-cuda9.1-cudnn7-ubuntu16.04-build"
1897-
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-cuda9.1-cudnn7-ubuntu16.04:287"
1897+
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-cuda9.1-cudnn7-ubuntu16.04:301"
18981898
- caffe2_linux_test:
18991899
name: caffe2_py2_cuda9_1_cudnn7_ubuntu16_04_test
19001900
requires:
19011901
- setup
19021902
- caffe2_py2_cuda9_1_cudnn7_ubuntu16_04_build
19031903
build_environment: "caffe2-py2-cuda9.1-cudnn7-ubuntu16.04-test"
19041904
use_cuda_docker_runtime: "1"
1905-
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-cuda9.1-cudnn7-ubuntu16.04:287"
1905+
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-cuda9.1-cudnn7-ubuntu16.04:301"
19061906
resource_class: gpu.medium
19071907
- caffe2_linux_build:
19081908
name: caffe2_py2_mkl_ubuntu16_04_build
19091909
requires:
19101910
- setup
19111911
build_environment: "caffe2-py2-mkl-ubuntu16.04-build"
1912-
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-mkl-ubuntu16.04:287"
1912+
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-mkl-ubuntu16.04:301"
19131913
- caffe2_linux_test:
19141914
name: caffe2_py2_mkl_ubuntu16_04_test
19151915
requires:
19161916
- setup
19171917
- caffe2_py2_mkl_ubuntu16_04_build
19181918
build_environment: "caffe2-py2-mkl-ubuntu16.04-test"
1919-
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-mkl-ubuntu16.04:287"
1919+
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-mkl-ubuntu16.04:301"
19201920
resource_class: large
19211921
- caffe2_linux_build:
19221922
name: caffe2_onnx_py2_gcc5_ubuntu16_04_build
19231923
requires:
19241924
- setup
19251925
build_environment: "caffe2-onnx-py2-gcc5-ubuntu16.04-build"
1926-
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-gcc5-ubuntu16.04:287"
1926+
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-gcc5-ubuntu16.04:301"
19271927
- caffe2_linux_test:
19281928
name: caffe2_onnx_py2_gcc5_ubuntu16_04_test
19291929
requires:
19301930
- setup
19311931
- caffe2_onnx_py2_gcc5_ubuntu16_04_build
19321932
build_environment: "caffe2-onnx-py2-gcc5-ubuntu16.04-test"
1933-
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-gcc5-ubuntu16.04:287"
1933+
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-gcc5-ubuntu16.04:301"
19341934
resource_class: large
19351935
- caffe2_linux_build:
19361936
name: caffe2_py2_clang3_8_ubuntu16_04_build
@@ -1942,7 +1942,7 @@ workflows:
19421942
- master
19431943
- /ci-all\/.*/
19441944
build_environment: "caffe2-py2-clang3.8-ubuntu16.04-build"
1945-
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-clang3.8-ubuntu16.04:287"
1945+
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-clang3.8-ubuntu16.04:301"
19461946
build_only: "1"
19471947
- caffe2_linux_build:
19481948
name: caffe2_py2_clang3_9_ubuntu16_04_build
@@ -1954,35 +1954,35 @@ workflows:
19541954
- master
19551955
- /ci-all\/.*/
19561956
build_environment: "caffe2-py2-clang3.9-ubuntu16.04-build"
1957-
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-clang3.9-ubuntu16.04:287"
1957+
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-clang3.9-ubuntu16.04:301"
19581958
build_only: "1"
19591959
- caffe2_linux_build:
19601960
name: caffe2_py2_clang7_ubuntu16_04_build
19611961
requires:
19621962
- setup
19631963
build_environment: "caffe2-py2-clang7-ubuntu16.04-build"
1964-
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-clang7-ubuntu16.04:287"
1964+
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-clang7-ubuntu16.04:301"
19651965
build_only: "1"
19661966
- caffe2_linux_build:
19671967
name: caffe2_onnx_py3_6_clang7_ubuntu16_04_build
19681968
requires:
19691969
- setup
19701970
build_environment: "caffe2-onnx-py3.6-clang7-ubuntu16.04-build"
1971-
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py3.6-clang7-ubuntu16.04:287"
1971+
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py3.6-clang7-ubuntu16.04:301"
19721972
- caffe2_linux_test:
19731973
name: caffe2_onnx_py3_6_clang7_ubuntu16_04_test
19741974
requires:
19751975
- setup
19761976
- caffe2_onnx_py3_6_clang7_ubuntu16_04_build
19771977
build_environment: "caffe2-onnx-py3.6-clang7-ubuntu16.04-test"
1978-
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py3.6-clang7-ubuntu16.04:287"
1978+
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py3.6-clang7-ubuntu16.04:301"
19791979
resource_class: large
19801980
- caffe2_linux_build:
19811981
name: caffe2_py2_android_ubuntu16_04_build
19821982
requires:
19831983
- setup
19841984
build_environment: "caffe2-py2-android-ubuntu16.04-build"
1985-
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-android-ubuntu16.04:287"
1985+
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-android-ubuntu16.04:301"
19861986
build_only: "1"
19871987
- caffe2_linux_build:
19881988
name: caffe2_py2_cuda9_0_cudnn7_centos7_build
@@ -1994,7 +1994,7 @@ workflows:
19941994
- master
19951995
- /ci-all\/.*/
19961996
build_environment: "caffe2-py2-cuda9.0-cudnn7-centos7-build"
1997-
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-cuda9.0-cudnn7-centos7:287"
1997+
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-cuda9.0-cudnn7-centos7:301"
19981998
- caffe2_linux_test:
19991999
name: caffe2_py2_cuda9_0_cudnn7_centos7_test
20002000
requires:
@@ -2007,7 +2007,7 @@ workflows:
20072007
- /ci-all\/.*/
20082008
build_environment: "caffe2-py2-cuda9.0-cudnn7-centos7-test"
20092009
use_cuda_docker_runtime: "1"
2010-
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-cuda9.0-cudnn7-centos7:287"
2010+
docker_image: "308535385114.dkr.ecr.us-east-1.amazonaws.com/caffe2/py2-cuda9.0-cudnn7-centos7:301"
20112011
resource_class: gpu.medium
20122012
- caffe2_macos_build:
20132013
name: caffe2_py2_ios_macos10_13_build

aten/src/ATen/native/cuda/Embedding.cu

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include <THC/THCThrustAllocator.cuh>
1111

1212
#include <thrust/execution_policy.h>
13+
#include <thrust/iterator/constant_iterator.h>
1314
#include <thrust/unique.h>
1415

1516
#include <ATen/native/cuda/EmbeddingBackwardKernel.cuh>

aten/src/ATen/native/cuda/EmbeddingBag.cu

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
#include <thrust/execution_policy.h>
1515
#include <thrust/unique.h>
16+
#include <thrust/iterator/constant_iterator.h>
1617
#include <thrust/device_vector.h>
1718

1819
#include <ATen/native/cuda/EmbeddingBackwardKernel.cuh>

aten/src/ATen/native/cuda/Unique.cu

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
#include <tuple>
88
#include <iterator>
9+
#include <thrust/adjacent_difference.h>
910
#include <thrust/unique.h>
1011
#include <thrust/sort.h>
1112
#include <thrust/scan.h>

aten/src/THC/generic/THCTensorMode.cu

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
#define THC_GENERIC_FILE "THC/generic/THCTensorMode.cu"
33
#else
44

5+
#include <thrust/iterator/constant_iterator.h>
6+
57
void THCTensor_(calculateMode)(THCState *state,
68
THCTensor *values,
79
THCudaLongTensor *indices,

aten/src/THCUNN/generic/LookupTable.cu

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
#define THC_GENERIC_FILE "THCUNN/generic/LookupTable.cu"
33
#else
44

5+
#include <thrust/iterator/constant_iterator.h>
6+
57
void THNN_(LookupTable_accGradParameters)(
68
THCState *state,
79
THCIndexTensor *input,

caffe2/core/common_gpu.cc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,14 @@ const char* cublasGetErrorString(cublasStatus_t error) {
257257
#ifdef __HIP_PLATFORM_HCC__
258258
case rocblas_status_invalid_size:
259259
return "rocblas_status_invalid_size";
260+
case rocblas_status_perf_degraded:
261+
return "rocblas_status_perf_degraded";
262+
case rocblas_status_size_query_mismatch:
263+
return "rocblas_status_size_query_mismatch";
264+
case rocblas_status_size_increased:
265+
return "rocblas_status_size_increased";
266+
case rocblas_status_size_unchanged:
267+
return "rocblas_status_size_unchanged";
260268
#endif
261269
}
262270
// To suppress compiler warning.

caffe2/operators/generate_proposals_op.cu

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66
#include "caffe2/operators/generate_proposals_op_util_nms.h"
77
#include "caffe2/operators/generate_proposals_op_util_nms_gpu.h"
88

9+
#ifdef __HIP_PLATFORM_HCC__
10+
#include <cfloat>
11+
#endif
12+
913
using caffe2::utils::RotatedBox;
1014

1115
namespace caffe2 {

caffe2/operators/reduce_front_back_max_ops.cu

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
#include "caffe2/core/context_gpu.h"
33
#include "caffe2/operators/reduce_front_back_max_ops.h"
44

5+
#ifdef __HIP_PLATFORM_HCC__
6+
#include <cfloat>
7+
#endif
8+
59
namespace caffe2 {
610

711
/***

0 commit comments

Comments
 (0)