Я строю модель обучения с подкреплением на графическом процессоре, поэтому я использую цепочку с cupy. cupy
задуман как дубликат numpy
, за исключением того, что он работает на графическом процессоре.
Ранее я задавал этот вопрос о том, как сделать быстрый сдвиг битов на скаляре в numpy
, и ответ был прост: мне нужно сделать сдвиг битов на фактическом объекте numpy.uint64
, а не на объекте numpy.array
. Было бы неплохо, если бы я мог перенести свои методы сдвига битов на cupy
, чтобы получить такое же ускорение.
Однако cupy
документация требует, чтобы скаляры находились на графическом процессоре, а не на ЦП (источник). Это значит, что либо я...
- представить мой скаляр в виде массива, что вызывает мою исходную проблему в моем связанном вопросе выше, или
- передать мое скалярное целое число в ЦП, выполнить мои вычисления и отправить его обратно в ГП, который также работает медленно.
Если я хочу сделать сотни тысяч битовых сдвигов для скалярного значения, хотя в numpy
это займет меньше секунды, в cupy
это займет слишком много времени. Как ускорить сдвиг битов скаляров в cupy
?