我对编程和 Cuda 真的很陌生。基本上我有一个 C 函数,它读取数据列表,然后根据哈希图检查每个项目(我在 C 中为此使用uthash)。它运行良好,但我想在 Cuda 中运行这个过程(一旦它获得哈希键的值,然后它会进行大量处理),但我不确定创建一个只读哈希函数的最佳方法可能在库达。
背景
基本上,我正在尝试尽快评估非常大量的投资组合。我不断得到数以百万计的投资组合,它们以两个列表的形式出现。一个有股票名称,另一个有重量。然后我使用股票名称查找哈希表以获取其他数据(价值、百分比变化等),然后根据权重进行处理。在纯 C 语言的 CPU 上大约需要 8 分钟,所以我对在 GPU 上尝试它很感兴趣。
我已经阅读并完成了其中的示例,cuda by example
所以我相信我知道除了散列函数之外的大部分内容(附录中有一个,但它似乎专注于添加它,而我只希望它作为参考,因为它'永远不会改变。我可能在边缘处很粗糙,cuda for example
所以在这种情况下,我可能缺少一些对我有帮助的东西,比如为此使用文本或某种特殊形式的记忆)。如果每个块都有自己对哈希图的访问权限,或者每个线程或者对于整个 GPU 来说足够好,我将如何构造它以获得最佳结果?
编辑
很抱歉澄清一下,我只使用 C。最坏的情况是我愿意使用另一种语言,但理想情况下,我想要一些东西,我可以在 GPU 上放置一次,然后让所有未来的线程读取它,因为要处理我的数据我需要分几批做)。