c++ - 如何设计实时 CUDA 金融应用程序

标签 c++ cuda real-time nvidia financial

我有一个关于如何设计我的应用程序的一般性问题。我已经阅读了 Cuda 文档,但仍然不知道应该研究什么。如果有人能阐明它,我真的很感激。

我想要对股票进行一些实时分析,比如 100 只股票。我有实时市场数据源,它将随着更新的市场价格而流动。我想做的是:

  1. 为cuda卡上的每只股票预先分配黑色内存,并保留白天时间的内存。

  2. 当有新数据进来时,直接更新Cuda卡上相应的内存。

  3. 更新后,发出信号或触发事件开始分析计算。

  4. 计算完成后,将结果写回CPU内存。

这是我的问题:

  1. 将数据从 CPU 内存传输到 GPU 内存的最有效方法是什么?因为我想要实时,所以每秒从CPU复制内存快照到GPU是 Not Acceptable 。

  2. 我可能需要在 CPU 和 GPU 上为 100 只股票分配内存块。如何将CPU内存单元映射到每个GPU内存单元?

  3. 当新数据到达Cuda卡时如何触发分析计算?

我在 Windows XP 上使用配备 Cuda 3.2 的 Tesla C1060。

非常感谢您的任何建议。

最佳答案

您的要求没有什么异常。

只要应用程序正在运行,您就可以将信息保留在 GPU 内存中,并进行一些小的更新以使数据与 CPU 上的数据保持同步。您可以使用 cudaMalloc() 分配 GPU 内存,并使用 cudaMemcpy() 将更新的数据写入分配的内存部分。或者,您可以将数据保存在 Thrust 结构中,例如 thrust::device_vector。当您更新 device_vector 时,CUDA 内存复制将在后台完成。

更新数据后,您只需重新运行内核即可获取更新的计算结果。

您能否详细说明问题(2)?

关于c++ - 如何设计实时 CUDA 金融应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10300022/

相关文章:

c++ - 如何在 C++ 代码中链接 STL?

compiler-construction - CUDA 5.0,编译错误

c++ - LNK2038 : mismatch detected for 'RuntimeLibrary' with cuda

haskell - GHC 什么时候在内部改变不可变值?

javascript - 在 firebase 中使用 websockets 的正确方法是什么?

c++ - 模板方法和模板类 C++

c++ - 将 lambda 隐式转换为 boost::function

c++ - IDCT矩阵的无分支生成?

java - AsyncEventHandler - 实时系统 Java

php - php和C++能否在同一台服务器上运行并在一个网站中进行通信?