Вы можете использовать асинхронное копирование памяти, если операции над одним сегментом массива не зависят от операций над другим сегментом массива. Это поможет вам копировать вещи назад и вперед при выполнении вычислений. Из руководства по программированию cuda c:
некоторые вызовы функций асинхронны: управление возвращается хосту
поток до того, как устройство завершило запрошенную задачу. Это:
- Запускает ядро;
- Копии с устройства на устройство;
- Копии памяти хост-устройства из блока памяти объемом 64 КБ или менее;
- Копии из памяти выполняются функциями с суффиксом Async;
- Вызов функции памяти в памяти.
Надеюсь, это поможет, брат. Вы могли бы также рассмотреть сжатие массивов, используя кодирование риса, чтобы привести их в соответствие.