forked from mindspore-Ecosystem/mindspore
parent
1625a27ae5
commit
226dbde481
|
@ -278,8 +278,7 @@ if (ENABLE_GPU)
|
||||||
${CUDA_PATH}/lib64/libcurand.so
|
${CUDA_PATH}/lib64/libcurand.so
|
||||||
${CUDNN_PATH}/lib64/libcudnn.so
|
${CUDNN_PATH}/lib64/libcudnn.so
|
||||||
${CUDA_PATH}/lib64/libcudart.so
|
${CUDA_PATH}/lib64/libcudart.so
|
||||||
${CUDA_PATH}/lib64/stubs/libcuda.so
|
${CUDA_PATH}/lib64/stubs/libcuda.so)
|
||||||
${CUDA_PATH}/lib64/libcusolver.so)
|
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (ENABLE_CPU)
|
if (ENABLE_CPU)
|
||||||
|
|
|
@ -93,22 +93,6 @@ namespace gpu {
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define CHECK_CUSOLVER_RET_WITH_EXCEPT(expression, message) \
|
|
||||||
{ \
|
|
||||||
cusolverStatus_t status = (expression); \
|
|
||||||
if (status != CUSOLVER_STATUS_SUCCESS) { \
|
|
||||||
MS_LOG(EXCEPTION) << "cusolver Error: " << message << " | Error Number: " << status; \
|
|
||||||
} \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define CHECK_CUSOLVER_RET_WITH_ERROR(expression, message) \
|
|
||||||
{ \
|
|
||||||
cusolverStatus_t status = (expression); \
|
|
||||||
if (status != CUSOLVER_STATUS_SUCCESS) { \
|
|
||||||
MS_LOG(ERROR) << "cusolver Error: " << message << " | Error Number: " << status; \
|
|
||||||
} \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define CHECK_NCCL_RET_WITH_EXCEPT(expression, message) \
|
#define CHECK_NCCL_RET_WITH_EXCEPT(expression, message) \
|
||||||
{ \
|
{ \
|
||||||
int result = (expression); \
|
int result = (expression); \
|
||||||
|
|
|
@ -32,11 +32,6 @@ void GPUDeviceManager::InitDevice() {
|
||||||
CHECK_CUBLAS_RET_WITH_EXCEPT(cublasCreate(&cublas_handle_), "Failed to create cuBLAS handle.");
|
CHECK_CUBLAS_RET_WITH_EXCEPT(cublasCreate(&cublas_handle_), "Failed to create cuBLAS handle.");
|
||||||
CHECK_CUBLAS_RET_WITH_EXCEPT(cublasSetStream(cublas_handle_, reinterpret_cast<cudaStream_t>(default_stream())),
|
CHECK_CUBLAS_RET_WITH_EXCEPT(cublasSetStream(cublas_handle_, reinterpret_cast<cudaStream_t>(default_stream())),
|
||||||
"Failed to set stream for cuBLAS handle.");
|
"Failed to set stream for cuBLAS handle.");
|
||||||
CHECK_CUSOLVER_RET_WITH_EXCEPT(cusolverDnCreate(&cusolver_dn_handle_), "Failed to create cusolver dn handle.");
|
|
||||||
CHECK_CUSOLVER_RET_WITH_EXCEPT(
|
|
||||||
cusolverDnSetStream(cusolver_dn_handle_, reinterpret_cast<cudaStream_t>(default_stream())),
|
|
||||||
"Failed to set stream for cusolver dn handle");
|
|
||||||
|
|
||||||
CHECK_OP_RET_WITH_EXCEPT(GPUMemoryAllocator::GetInstance().Init(), "Failed to Init gpu memory allocator")
|
CHECK_OP_RET_WITH_EXCEPT(GPUMemoryAllocator::GetInstance().Init(), "Failed to Init gpu memory allocator")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,9 +47,6 @@ void GPUDeviceManager::ReleaseDevice() {
|
||||||
if (cublas_handle_ != nullptr) {
|
if (cublas_handle_ != nullptr) {
|
||||||
CHECK_CUBLAS_RET_WITH_ERROR(cublasDestroy(cublas_handle_), "Failed to destroy cuBLAS handle.");
|
CHECK_CUBLAS_RET_WITH_ERROR(cublasDestroy(cublas_handle_), "Failed to destroy cuBLAS handle.");
|
||||||
}
|
}
|
||||||
if (cusolver_dn_handle_ != nullptr) {
|
|
||||||
CHECK_CUSOLVER_RET_WITH_ERROR(cusolverDnDestroy(cusolver_dn_handle_), "Failed to destroy cusolver dn handle.");
|
|
||||||
}
|
|
||||||
CHECK_OP_RET_WITH_ERROR(GPUMemoryAllocator::GetInstance().Finalize(), "Failed to destroy gpu memory allocator");
|
CHECK_OP_RET_WITH_ERROR(GPUMemoryAllocator::GetInstance().Finalize(), "Failed to destroy gpu memory allocator");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -88,8 +80,6 @@ const cudnnHandle_t &GPUDeviceManager::GetCudnnHandle() const { return cudnn_han
|
||||||
|
|
||||||
const cublasHandle_t &GPUDeviceManager::GetCublasHandle() const { return cublas_handle_; }
|
const cublasHandle_t &GPUDeviceManager::GetCublasHandle() const { return cublas_handle_; }
|
||||||
|
|
||||||
const cusolverDnHandle_t &GPUDeviceManager::GetCusolverDnHandle() const { return cusolver_dn_handle_; }
|
|
||||||
|
|
||||||
bool GPUDeviceManager::SyncStream(const DeviceStream &stream) const { return CudaDriver::SyncStream(stream); }
|
bool GPUDeviceManager::SyncStream(const DeviceStream &stream) const { return CudaDriver::SyncStream(stream); }
|
||||||
|
|
||||||
bool GPUDeviceManager::CopyDeviceMemToHost(const HostMemPtr &dst, const DeviceMemPtr &src, size_t size) const {
|
bool GPUDeviceManager::CopyDeviceMemToHost(const HostMemPtr &dst, const DeviceMemPtr &src, size_t size) const {
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
|
|
||||||
#include <cudnn.h>
|
#include <cudnn.h>
|
||||||
#include <cublas_v2.h>
|
#include <cublas_v2.h>
|
||||||
#include <cusolverDn.h>
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include "runtime/device/gpu/cuda_driver.h"
|
#include "runtime/device/gpu/cuda_driver.h"
|
||||||
|
@ -44,7 +43,6 @@ class GPUDeviceManager {
|
||||||
|
|
||||||
const cudnnHandle_t &GetCudnnHandle() const;
|
const cudnnHandle_t &GetCudnnHandle() const;
|
||||||
const cublasHandle_t &GetCublasHandle() const;
|
const cublasHandle_t &GetCublasHandle() const;
|
||||||
const cusolverDnHandle_t &GetCusolverDnHandle() const;
|
|
||||||
|
|
||||||
bool CopyDeviceMemToHost(const HostMemPtr &dst, const DeviceMemPtr &src, size_t size) const;
|
bool CopyDeviceMemToHost(const HostMemPtr &dst, const DeviceMemPtr &src, size_t size) const;
|
||||||
bool CopyHostMemToDevice(const DeviceMemPtr &dst, const void *src, size_t size) const;
|
bool CopyHostMemToDevice(const DeviceMemPtr &dst, const void *src, size_t size) const;
|
||||||
|
@ -75,9 +73,6 @@ class GPUDeviceManager {
|
||||||
// handle used for cuBLAS kernels.
|
// handle used for cuBLAS kernels.
|
||||||
cublasHandle_t cublas_handle_{nullptr};
|
cublasHandle_t cublas_handle_{nullptr};
|
||||||
|
|
||||||
// handle used for cusolver dn kernels;
|
|
||||||
cusolverDnHandle_t cusolver_dn_handle_{nullptr};
|
|
||||||
|
|
||||||
bool dev_id_init_;
|
bool dev_id_init_;
|
||||||
uint32_t cur_dev_id_;
|
uint32_t cur_dev_id_;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue