numba.cuda.cudadrv.error.NvvmSupportError: No supported GPU compute capabilities found

mmdetection3d训练kitty数据集的时候,训练完第一个epoch就报错:

 numba.cuda.cudadrv.error.NvvmSupportError: No supported GPU compute capabilities found. Please check your cudatoolkit version matches your CUDA version.
 

经过排查发现nvvm.py文件(我的位置在: /anaconda3/envs/openmmlab/lib/python3.9/site-packages/numba/cuda/cudadrv/nvvm.py)的原本345行的return不返回341行的值(我的cuda版本是11.7)

解决方法:将345行改为346行,即直接返回自己版本对应的cuda值

 

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
非常抱歉,我之前给出的代码存在错误。Numba库中没有名为`filter`的函数来应用滤波器。为了在GPU上应用滤波器,我们可以使用CuPy库的`cupyx.scipy.signal.lfilter`函数。 请尝试使用以下修改后的代码: ```python import numpy as np import cupy as cp from cupyx.scipy import signal class Channelizer(object): """ Channelizer object. \param filter_coeffs: Filter coefficient array. """ _channel_num: int _filter_coeffs: np.ndarray def __init__( self, filter_coeffs: np.ndarray, channel_num: int = 8): assert isinstance(channel_num, int) self._filter_coeffs = np.reshape(filter_coeffs, (channel_num, -1), order='F') self._channel_num = channel_num @RunTime # 计算代码运行时间 def dispatch( self, data: np.ndarray ) -> np.ndarray: # Make the data length an integer multiple of the number of channels. disp_len = int(np.ceil(data.size / self._channel_num)) patch_size = int(disp_len * self._channel_num - data.size) patch_data = np.concatenate((data, np.zeros(patch_size))) reshape_data = np.reshape(patch_data, (self._channel_num, -1), order='F') polyphase_data = cp.flipud(cp.asarray(reshape_data)) nv = cp.arange(disp_len) prefilt_data = polyphase_data * ((-1) ** nv) # Polyphase filter bank filt_data = cp.zeros(prefilt_data.shape, dtype=complex) for k in range(self._channel_num): filt_data[k] = signal.lfilter(self._filter_coeffs[k], [1.0], prefilt_data[k]) postfilt_data = cp.zeros(prefilt_data.shape, dtype=complex) for k in range(self._channel_num): postfilt_data[k] = filt_data[k] * ((-1) ** k) * cp.exp(-1j * np.pi * k / self._channel_num) dispatch_data = cp.fft.fft(postfilt_data, axis=0) return cp.asnumpy(dispatch_data) ``` 在上述代码中,我们使用`cupyx.scipy.signal.lfilter`来应用滤波器,该函数可以在GPU上运行。我们还更新了导入语句,以确保正确导入相关函数。 请注意,这只是一个修改建议,并不能保证一定能解决问题。如果问题仍然存在,请提供详细的错误信息和相关代码,以便我们能更好地帮助您。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值