我有一个过程,我将数据发送到 Cuda 进行处理,它输出符合特定标准的数据。问题是我经常不知道输出数组的大小。我能做些什么?
我发送了数百行数据,并在 Cuda 上以超过 2 万种不同的方式对其进行处理。如果结果符合我的某些规则,那么我想保存结果。问题是我无法在 Cuda 中创建链表(如果可以,请告诉我)并且我卡上的内存很小,所以我正在考虑使用零拷贝让 Cuda 直接写入主机内存。这解决了我的内存大小问题,但仍然没有给我处理未知数的方法。
我最初的想法是找出最大可能的结果并 malloc 一个该大小的数组。问题是它会很大,而且大多数都不会被使用(800 行数据 * 20K 可能的结果 = 数组中的 1600 万个项目......这不太可能)。
有没有更好的方法来处理 Cuda 中的可变大小数组?我是编程新手,所以理想情况下它不会太复杂(尽管如果是我愿意学习它)。