我正在使用 CUDA 库实现一个尖峰神经网络,我真的不确定如何处理以下事情:
将内存 (cudaMalloc) 分配给许多不同的数组。到目前为止,只需“手动”使用 cudaMalloc 就足够了,因为我不必制作超过 10 个左右的数组。但是,我现在需要为数千个数组创建指针并分配内存。
如何决定为每个数组分配多少内存。阵列的高度为 3(1 行用于突触后神经元 ID,1 行用于突触后神经元上的突触数量,1 行用于突触的功效),但它们的长度不确定,会随时间变化与传出突触的数量。
我听说 CUDA 中的动态内存分配非常慢,因此玩弄了分配每个数组所需的最大内存的想法,但是每个神经元的传出突触数量从 100 到 10,000 不等,所以我认为这是不可行的,因为我有大约 1000 个神经元。
如果有人可以建议我如何为 GPU 上的许多数组分配内存,和/或如何为上述任务编写快速动态内存分配代码,我将非常感激。
提前致谢!