Linwei-Chen/FreqFusion

RuntimeError: carafe_forward_impl: implementation for device cpu not found.

Closed this issue · 5 comments

环境:cuda版本11.6,mmcv-full版本1.7.0,torch版本1.13.1;
报错信息如下:
企业微信截图_17271503365937
企业微信截图_17271503641773
企业微信截图_17271567572387

报错的地方是ext_module.carafe_forward这个函数,但是这个函数无法跳进去调试。我也尝试过readme推荐的环境:cuda版本11.3,mmcv-full版本1.5.3,torch版本1.11.0+cu113,也是同样位置报错。不知道是哪里出了问题,想请教一下作者大佬是否了解。

这个算子可能不能在cpu上跑,你用GPU调试试试?

谢谢!已解决,把ext_module.carafe_forward这个库的输入数据加载到GPU上即可解决。
企业微信截图_17271593575989
我所理解是,这个只是调试所用,把freqfusion真正嵌入到网络模型当中,设备类型应该是不用转来转去的,数据应该都是放到cuda上跑。

意思是在源代码中加上一个if判断就可以了吧 @mqdigihub

意思是在源代码中加上一个if判断就可以了吧 @mqdigihub
如果使用的是mmcv库封装的carafe,是需要把数据转换到cuda进行操作的,如果只是模拟两个数据调试程序,则需要像我上面这样操作,将数据做对应转换。如果是直接将FF嵌入网络,数据、权重都是放在了cuda做运算,应该就不用转来转去。此外,最近,我看到作者也自己复现了carafe操作,可以直接用其复现的函数,也无需转换,能直接用,具体你看下最新代码@RadioWaverider