Skip to content

Commit 09d9fda

Browse files
authored
Fix FFT execution on separate Julia task (#689)
* Fix FFT execution on separate stream * Add test
1 parent d6ab739 commit 09d9fda

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

src/fft/fft.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ function update_stream!(plan::ROCFFTPlan)
8888
new_stream = AMDGPU.stream()
8989
if plan.stream != new_stream
9090
plan.stream = new_stream
91+
info = plan.execution_info
9192
rocfft_execution_info_set_stream(info, new_stream)
9293
end
9394
return

test/rocarray/fft.jl

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,4 +334,19 @@ end
334334
end
335335
end
336336

337+
@testset "Asynchronous" begin
338+
X = rand(Float32, 10, 10)
339+
d_X = ROCArray(X)
340+
341+
p = plan_rfft(X)
342+
d_p = plan_rfft(d_X)
343+
344+
Y = p * X
345+
346+
task = Threads.@spawn d_p * d_X # executes FFT on separate AMDGPU stream
347+
d_Y = fetch(task)
348+
349+
@test isapprox(collect(d_Y), Y; rtol=MYRTOL, atol=MYATOL)
350+
end
351+
337352
end # testset FFT

0 commit comments

Comments
 (0)