gpt4 book ai didi

c++ - 部署跨 GPU 系列 GPU 代码的当前实践

转载 作者:行者123 更新时间:2023-11-27 22:57:22 27 4
gpt4 key购买 nike

情况是这样的;一组计算(用 C++ 编写)最好使用用户系统上可用的任何 GPU,或者如果不存在这样的 GPU,则使用他们的 CPU,其中用户系统不是构建机器,并且是未知的(但相当标准的桌面)配置。

目前,我可以使用 Thrust 编写代码,但是(除非我误解了)在实际构建它时,目标已设置(广义上讲,Nvidia 或只是 CPU)并且二进制文件将仅使用 GPU 硬件用户的机器(可能甚至不会以其他方式运行)如果它来自与构建二进制文件相同的 GPU 系列。

在一个神奇的理想世界中,我想要的是一个二进制文件,它可以识别运行它的机器上可用的 GPU(Nvidia、ATI、回退到普通 CPU)系列(如果有的话),并使用它的。必须构建三个单独的版本并确保每个用户都获得适合他们特定机器的正确版本是不可能的(目标是非常标准的桌面;Windows、Linux 和 Solaris - 让我们把它放在一边,因为有一个不同的构建这三个中的每一个都是完全可以接受的;目的是为这三个目标中的每一个都提供一个二进制文件,它可以自己识别和使用可用的 GPU,无论是 Nvidia、ATI 还是普通 CPU)。

我一直在谷歌中输入一些有希望的术语,但还没有找到任何解决这个问题的方法;据我所知,这是一个完全解决的问题,我只是没有输入正确的词。

谁能告诉我执行此操作的标准方法是什么(如果有的话)?

编辑:删除了错误的推力信息,添加了关于最终目标硬件的注释

最佳答案

我认为这值得一试: Load shared library by path at runtime
为了让它工作,你应该将你的应用程序分成前端和后端部分。为每个系列编译后端,并让前端在运行时加载适当的后端。

关于c++ - 部署跨 GPU 系列 GPU 代码的当前实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31500267/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com