У меня есть python модуль mylibrary.py
, который напоминает следующее
from cpu_implementation import bigfunction
class Thing(object):
...
...
def perform_computation(self, data):
result = bigfunction(data)
В моем скрипте я вызываю from mylibrary import Thing
и вызываю t = Thing(); t.perform_computation(data)
Однако, У меня есть альтернативная реализация bigfunction
в другом файле, которая использует вместо этого графический процессор через PyCUDA.
Я хотел бы иметь возможность альтернативно использовать реализацию cpu или gpu и делать это через импорт, как from mylibrary import Thing
<- CPU </p>
from mylibrary.cuda import Thing
<- GPU </p>
Без не нужно переписывать mylibrary.py
, в идеале получилось бы определение bigfunction
изменилось. Я не видел способов или примеров для реализации этого. bigfunction
должна быть функцией-заглушкой? Как его заменить реализацией CPU или GPU?