Skip to content

Importing pykokkos serializes scipy ffts on AMD EPYC 7763 64-Core Processor (i.e., TACC's ls6) #301

@kennykos

Description

@kennykos

Using the following test script

from time import time
import numpy as np
from scipy.fft import rfftn
import pykokkos

grid = np.random.normal(0,1, (96, 116, 116, 12))
x = np.random.normal(0, 1, (96, 292, 292, 12))
s= (96, 292, 292)
tic = time()                                                                                                                                                                
xfft = rfftn(grid.transpose(3,0,1,2), axes = (1, 2, 3), s=s, workers = 128)
toc = time()
print('time warm up: ', toc - tic)
 
repeat = 2
 
tic_all = time()
for i in range(repeat):
    tic = time()                                                                                                                                                                 
    xfft = rfftn(grid.transpose(3,0,1,2), axes = (1, 2, 3), overwrite_x=True, s=s, workers = 128)
    toc = time()
    print('time: ', toc - tic)
toc_all = time()
 
print('time ave: ', (toc_all - tic_all)/repeat)

when I comment out import pykokkos I get

time warm up:  0.16707849502563477
time:  0.15308403968811035
time ave:  0.07656288146972656
time:  0.14578652381896973
time ave:  0.14947926998138428

but when I leave import pykokkos uncommented I get

time warm up:  1.8171048164367676
time:  1.8107686042785645
time ave:  0.9054266214370728
time:  1.8127191066741943
time ave:  1.8118274211883545

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions