Почему torch.fft.rfft(x) быстрее, чем torch.fft.rfft(x, out=y)?Python

Программы на Python
Ответить
Anonymous
 Почему torch.fft.rfft(x) быстрее, чем torch.fft.rfft(x, out=y)?

Сообщение Anonymous »

При использовании функции torch.fft.rfft PyTorch я заметил, что указание выходного тензора с помощью параметра out происходит медленнее, чем позволить PyTorch управлять выходными данными внутри страны. Вот простой тест:

Код: Выделить всё

input_len = 2_000_000
x = torch.rand(input_len)
y = torch.zeros(input_len // 2 + 1, dtype=torch.complex64)

Код: Выделить всё

%%timeit
torch.fft.rfft(x)
# 7.45 ms ± 54.4 μs per loop (mean ± std. dev. of 7 runs, 100 loops each)

Код: Выделить всё

%%timeit
torch.fft.rfft(x, out=y)
# 9.6 ms ± 70.1 μs per loop (mean ± std. dev. of 7 runs, 100 loops each)
Почему версия без параметра out работает быстрее? Разве указание выходного тензора не должно избегать выделения памяти и, следовательно, быть более эффективным?
Будем очень признательны за любую информацию об этом поведении.

Подробнее здесь: https://stackoverflow.com/questions/793 ... fftx-out-y
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»