Я пробовал некоторые функции Торчаудьо, и я не могу понять, почему Lowpass_biquad работает медленнее на графическом процессоре, чем на процессоре. И это верно для других эффектов, таких как Phaser, Flanger, Overdrive, которые даже медленнее. Здесь я вставляю пример для фильтра низкого уровня, но я применяю другие эффекты так же, как для получения измерений. Пример кода взят из этого вопроса, который, по -видимому, был решен, но он все еще медленнее на графическом процессоре. < /P>
import time
import torch
from torchaudio.functional import lowpass_biquad
gpu_device = torch.device('cuda:0')
cpu_device = torch.device('cpu')
seconds = 1000
sample_rate = 44100
cutoff_freq = 1000.
Q = .7
# Run in cpu
x = torch.rand(sample_rate * seconds, device=cpu_device)
begin = time.time()
y = lowpass_biquad(x, sample_rate, cutoff_freq, Q)
print(f'Run in cpu: {time.time() - begin}')
# Run in gpu
x = torch.rand(sample_rate * seconds, device=gpu_device)
begin = time.time()
y = lowpass_biquad(x, sample_rate, cutoff_freq, Q)
torch.cuda.synchronize()
print(f'Run in gpu: {time.time() - begin}')
< /code>
Run in cpu: 1.6084413528442383
Run in gpu: 6.183292865753174
< /code>
Например, для эффекта перегрузки GPU более чем на 1000 раз медленнее. Было бы понятно, если у Торчаудио нет реализации графического процессора указанных эффектов, но их документация, похоже, предполагает, что они это делают. Я что -то делаю не так?
Подробнее здесь: https://stackoverflow.com/questions/794 ... in-pytorch
Фильтр низкого уровня медленнее на графическом процессоре, чем процессор в Pytorch ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение