CUDA ライブラリを使用してスパイキング ニューラル ネットワークを実装していますが、次の点についてどのように進めればよいかよくわかりません。
多くの異なる配列へのメモリ (cudaMalloc) の割り当て。これまでは、cudaMalloc を「手動で」使用するだけで十分でした。10 個以上の配列を作成する必要がなかったためです。ただし、ポインタを作成し、何千もの配列にメモリを割り当てる必要があります。
これらの配列のそれぞれに割り当てるメモリの量を決定する方法。配列の高さは 3 (シナプス後ニューロン ID 用の 1 行、シナプス後ニューロンのシナプス数用の 1 行、およびそのシナプスの有効性用の 1 行) ですが、長さは未定であり、時間の経過とともに変化します。発信シナプスの数。
CUDA での動的メモリ割り当ては非常に遅いと聞いたので、各配列に必要な最大メモリを割り当てるという考えをもてあそびましたが、ニューロンごとの出力シナプスの数は 100 から 10,000 まで変化するので、これは実行不可能だと思いました。私は1000個のニューロンを持っています。
GPU 上の多くの配列にメモリを割り当てる方法、および/または上記のタスクのために高速で動的なメモリ割り当てをコーディングする方法について誰かが私にアドバイスしてくれたら、私は非常に感謝しています。
前もって感謝します!