“使用 mex 时出错,未检测到支持的编译器”:无法为 MATLAB 安装 CUDA 兼容的 C++ 编译器

Kat*_*tie 2 c++ matlab cuda

我有 Matlab 2022b,Windows 11。在 Matlabmex -setup cpp

MEX configured to use 'Microsoft Visual C++ 2022' for C++ language compilation
Run Code Online (Sandbox Code Playgroud)

在命令提示符处,nvcc --version产生:

   nvcc: NVIDIA (R) Cuda compiler driver
    Copyright (c) 2005-2022 NVIDIA Corporation
    Built on Mon_Oct_24_19:40:05_Pacific_Daylight_Time_2022
    Cuda compilation tools, release 12.0, V12.0.76
    Build cuda_12.0.r12.0/compiler.31968024_0
Run Code Online (Sandbox Code Playgroud)

当我尝试运行此文件时,出现此错误:

 Error using mex
    Supported compiler not detected. For options, visit https://www.mathworks.com/support/compilers.
    
    Error in mexcuda (line 168)
        [varargout{1:nargout}] = mex(mexArguments{:});
    
    Error in mexGPUall (line 7)
        mexcuda -largeArrayDims spikedetector3.cu
Run Code Online (Sandbox Code Playgroud)

在 Matlab 中选择“MinGW64 Compiler (C++)”会出现相同的错误。

我找到了这个线程。至少有一名参与者正在尝试运行与我相同的应用程序 Kilosort。我尝试下载并安装 Visual Studio 2019。完成此操作并mex -setup cpp没有为我提供比以前更多的 C++ 编译器选项。

有谁知道如何安装允许我执行该文件并运行 Kilosort 的编译器?

X Z*_*ang 5

MATLAB 曾经有非常严格的 GPU 硬件/CUDA 工具包/MATLAB 版本兼容性要求,一直到小数点后的数字。

您可能需要检查您安装的 Visual Studio 版本是否与您的 CUDA 版本兼容。仅仅使所有内容保持最新是不够的。

然而,自 R2022 以来,Mathworks 对此一直含糊其辞。我想您可以使用较早的版本以及经过测试可以正常工作的发行版本的特定组合(我们遵循该表并让 Kilosort 启动并运行),或者尝试对较新版本进行一些变体。

如果您成功了,还请分享您的工具链配置,以便其他人可以从您的经验中受益。。

  • 现在正在使用 CUDA 11.6.0 和 Visual Studio 2019 运行! (2认同)