c# - CNTK NVidia RTX 3060 Cublas Failure 13 层数大于 512
问题描述
我有一个使用 EasyCNTK C# 在 CNTK 2.7 中有 2000 个神经元的 LSTM 网络,该网络在 CPU 和 Gigabyte NVidia RTX 2060 6GB 上运行良好,但在 Gigabyte 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 或更早版本。
推荐阅读
- c++ - 不拥有 unique_ptr
- amazon-web-services - QuickSight 账单混淆:即使没有读者用户的活动,也没有作者用户,也会产生成本
- excel - 将表格从 Web 粘贴到单元格区域中
- javascript - 如何获取数据表中动态生成的输入字段的值
- javascript - Javascript数组过滤掉表示为字符串的数字
- android - 使用相同的 OnTouchEvent 将视图与另一个视图同步移动
- javascript - Django REST 身份验证不适用于 React
- python - 如何在python中查找列表的重复元素字典?
- linux - 我如何在 anaconda 环境中使用 fish(或 zsh)而不是默认 bash
- python - Python 数据框。根据行的索引向左移动行值