support cuda 10.1 (#4223)

* support cuda 10.1

* add cuda 10.1 to jenkins build matrix
This commit is contained in:
Rong Ou 2019-03-07 15:22:12 -08:00 committed by Rory Mitchell
parent 0944360416
commit 9837b09b20
4 changed files with 10 additions and 3 deletions

2
Jenkinsfile vendored
View File

@ -14,7 +14,7 @@ def dockerRun = 'tests/ci_build/ci_build.sh'
def utils
def buildMatrix = [
[ "enabled": true, "os" : "linux", "withGpu": true, "withNccl": true, "withOmp": true, "pythonVersion": "2.7", "cudaVersion": "9.2", "multiGpu": true],
[ "enabled": true, "os" : "linux", "withGpu": true, "withNccl": true, "withOmp": true, "pythonVersion": "2.7", "cudaVersion": "10.1", "multiGpu": true],
[ "enabled": true, "os" : "linux", "withGpu": true, "withNccl": true, "withOmp": true, "pythonVersion": "2.7", "cudaVersion": "9.2" ],
[ "enabled": true, "os" : "linux", "withGpu": true, "withNccl": true, "withOmp": true, "pythonVersion": "2.7", "cudaVersion": "8.0" ],
[ "enabled": true, "os" : "linux", "withGpu": true, "withNccl": false, "withOmp": true, "pythonVersion": "2.7", "cudaVersion": "8.0" ],

View File

@ -59,7 +59,9 @@ endfunction(set_default_configuration_release)
function(format_gencode_flags flags out)
# Set up architecture flags
if(NOT flags)
if((CUDA_VERSION_MAJOR EQUAL 9) OR (CUDA_VERSION_MAJOR GREATER 9))
if((CUDA_VERSION_MAJOR EQUAL 10) OR (CUDA_VERSION_MAJOR GREATER 10))
set(flags "35;50;52;60;61;70;75")
elseif(CUDA_VERSION_MAJOR EQUAL 9)
set(flags "35;50;52;60;61;70")
else()
set(flags "35;50;52;60;61")

View File

@ -53,7 +53,8 @@ struct HostDeviceVectorImpl {
if (vec_ == nullptr) { vec_ = vec; }
CHECK_EQ(vec, vec_);
device_ = device;
LazyResize(vec_->Size());
// TODO(rongou): remove pointer dereference once CUDA 10.1 is fixed.
LazyResize((*vec_).Size());
perm_d_ = vec_->perm_h_.Complementary();
}

View File

@ -140,7 +140,11 @@ __global__ void CubScanByKeyL1(
// in order to pass on the partial scan values.
// this statement MUST appear before the checks below!
// else, the result of this shuffle operation will be undefined
#if (__CUDACC_VER_MAJOR__ >= 9)
int previousKey = __shfl_up_sync(0xFFFFFFFF, myKey, 1);
#else
int previousKey = __shfl_up(myKey, 1);
#endif
// Collectively compute the block-wide exclusive prefix sum
BlockScan(temp_storage)
.ExclusiveScan(threadData, threadData, rootPair, AddByKey());