CNTK NVidia RTX 3060 Cublas Failure 13 层数大于 512
CNTK NVidia RTX 3060 Cublas Failure 13 with layers larger than 512
我有一个 LSTM 网络,在 CNTK 2.7 中使用 EasyCNTK C# 有 2000 个神经元,它在 CPU 和技嘉 NVidia RTX 2060 6GB 上工作正常,但在技嘉 NVidia RTX 3060 12GB 上我得到这个错误,如果我将神经元数量增加到 512 以上(在两张卡上使用相同的 NVidia 驱动程序版本 461.72)
这是我的神经网络配置
int minibatchSize = 8;
int epochCount = 10;
int inputDimension = 10200;
var device = DeviceDescriptor.GPUDevice(0);
// check the current device for running neural networks
Console.WriteLine($"Using device: {device.AsString()}");
var model = new Sequential<double>(device, new[] { inputDimension }, inputName: "Input");
model.Add(new LSTM(2000, isLastLstm: false));
model.Add(new LSTM(500, selfStabilizerLayer: new SelfStabilization<double>()));
model.Add(new Residual2(128, new Tanh()));
model.Add(new Residual2(1, new Tanh()));
这就是错误,我在使用 Dense 或任何其他图层类型时也遇到了错误
Unhandled Exception: System.ApplicationException: CUBLAS failure 13: CUBLAS_STATUS_EXECUTION_FAILED ; GPU=0 ; hostname=EVO ; expr=cublasgemmHelper(cuHandle, transA, transB, m, n, k, &alpha, a.Data(), (int) a.m_numRows, b.Data(), (int) b.m_numRows, &beta, c.Data(), (int) c.m_numRows)
[CALL STACK]
> Microsoft::MSR::CNTK::TensorView<half>:: Reshaped
- Microsoft::MSR::CNTK::CudaTimer:: Stop
- Microsoft::MSR::CNTK::GPUMatrix<double>:: MultiplyAndWeightedAdd
- Microsoft::MSR::CNTK::Matrix<double>:: MultiplyAndWeightedAdd
- Microsoft::MSR::CNTK::TensorView<double>:: DoMatrixProductOf
- Microsoft::MSR::CNTK::TensorView<double>:: AssignMatrixProductOf
- std::enable_shared_from_this<Microsoft::MSR::CNTK::MatrixBase>:: shared_from_this (x3)
- CNTK::Internal:: UseSparseGradientAggregationInDataParallelSGD
- CNTK:: CreateTrainer
- CNTK::Trainer:: TotalNumberOfUnitsSeen
- CNTK::Trainer:: TrainMinibatch (x2)
- CSharp_CNTK_Trainer__TrainMinibatch__SWIG_2
- 00007FFF157B7E55 (SymFromAddr() error: The specified module could not be found.)
看起来 CNTK 不支持 CUDA 11,RTX 3060 不支持 CUDA 10 或更早版本。
我有一个 LSTM 网络,在 CNTK 2.7 中使用 EasyCNTK C# 有 2000 个神经元,它在 CPU 和技嘉 NVidia RTX 2060 6GB 上工作正常,但在技嘉 NVidia RTX 3060 12GB 上我得到这个错误,如果我将神经元数量增加到 512 以上(在两张卡上使用相同的 NVidia 驱动程序版本 461.72)
这是我的神经网络配置
int minibatchSize = 8;
int epochCount = 10;
int inputDimension = 10200;
var device = DeviceDescriptor.GPUDevice(0);
// check the current device for running neural networks
Console.WriteLine($"Using device: {device.AsString()}");
var model = new Sequential<double>(device, new[] { inputDimension }, inputName: "Input");
model.Add(new LSTM(2000, isLastLstm: false));
model.Add(new LSTM(500, selfStabilizerLayer: new SelfStabilization<double>()));
model.Add(new Residual2(128, new Tanh()));
model.Add(new Residual2(1, new Tanh()));
这就是错误,我在使用 Dense 或任何其他图层类型时也遇到了错误
Unhandled Exception: System.ApplicationException: CUBLAS failure 13: CUBLAS_STATUS_EXECUTION_FAILED ; GPU=0 ; hostname=EVO ; expr=cublasgemmHelper(cuHandle, transA, transB, m, n, k, &alpha, a.Data(), (int) a.m_numRows, b.Data(), (int) b.m_numRows, &beta, c.Data(), (int) c.m_numRows)
[CALL STACK]
> Microsoft::MSR::CNTK::TensorView<half>:: Reshaped
- Microsoft::MSR::CNTK::CudaTimer:: Stop
- Microsoft::MSR::CNTK::GPUMatrix<double>:: MultiplyAndWeightedAdd
- Microsoft::MSR::CNTK::Matrix<double>:: MultiplyAndWeightedAdd
- Microsoft::MSR::CNTK::TensorView<double>:: DoMatrixProductOf
- Microsoft::MSR::CNTK::TensorView<double>:: AssignMatrixProductOf
- std::enable_shared_from_this<Microsoft::MSR::CNTK::MatrixBase>:: shared_from_this (x3)
- CNTK::Internal:: UseSparseGradientAggregationInDataParallelSGD
- CNTK:: CreateTrainer
- CNTK::Trainer:: TotalNumberOfUnitsSeen
- CNTK::Trainer:: TrainMinibatch (x2)
- CSharp_CNTK_Trainer__TrainMinibatch__SWIG_2
- 00007FFF157B7E55 (SymFromAddr() error: The specified module could not be found.)
看起来 CNTK 不支持 CUDA 11,RTX 3060 不支持 CUDA 10 或更早版本。