我正在使用现有的 GCC C++ x86 Qt 应用程序来过滤、显示和存储由某些 C 代码计算的结果。由于现在计算对于 CPU 来说太复杂了,我打算将小型 C 程序移植到一些 GPU 计算平台上。因此,C 代码应该执行从 x86 GUI 接收到的任务,在 GPU 上并行运行它们并将结果发回以进行最终处理。
不幸的是,我对 GPU 计算完全陌生。我阅读了很多关于不同硬件、驱动程序、语言、库、编译器、版本等的信息,我有点困惑。我希望有人可以帮助我选择正确的道路。
这些是我的要求(首先是最重要的):
- 一切都应该在 Linux (Ubuntu) 上运行和构建
- 既然是爱好项目,所有的软件都应该是免费的
- GPU 代码应该用 C 编写(C++ 将是一个奖励)
- GPU 代码应该可以在 Tesla T4 卡上执行
- GPU 代码应该可以在 x86 CPU 上执行,无需进行重大代码更改(开发系统没有 GPU 卡)
- 一般的软件工程师应该很容易理解这些技术
- 语言和编译器应该支持 64 位宽的无符号整数,因为我的 C 代码经常使用它们(128 位和 256 位将是一个奖励)
- 独立于 GPU 制造商(即 NVIDIA)会很好
- 计算任务可能会运行几个月甚至几年,所以
效率会很好 - 使用 Qt creator 构建 GPU 代码的方法(避免两个不同的构建链)会很好
我能满足这些要求吗?我应该选择哪些工具?
编辑:如果不能完全满足要求,哪种解决方案可以帮助我满足最重要的要求?