Pyomo解决了NVIDIA Cud

2024-06-16 11:09:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否有一种方法来解决一个Pyomo混凝土模型在GPU上使用NVIDIA Cuda。在

我签了https://developer.nvidia.com/how-to-cuda-python,看了一段关于它的视频。如果你的输入参数可以被numpy识别,比如;np.浮动32, np.浮动64等等。。。可以通过GPU编译/求解

我们使用一个函数来创建所有模型并用以下方法求解:

optim = SolverFactory('glpk')
optim = setup_solver(optim, logfile=log_filename)
result = optim.solve(prob, tee=True)

在这种情况下,我们的输入解算函数将是prob(pyomo具体模型)。有没有办法通过GPU而不是CPU来解决这个问题?在

谢谢你!在


Tags: 方法函数https模型comdevelopergpunp
1条回答
网友
1楼 · 发布于 2024-06-16 11:09:12

不行。

公平地说,人们可以写一本书来说明这个想法是多么的误导,但是让我们把它简单化,只需指出一些基本的东西(忽略很多其他细节):

  • gpu的工作方式与cpu不同,使用其他指令
  • gpu需要一些驱动程序/编译器来使一些代码可以运行
  • 虽然可能有一些简化的高级语言来使用通用代码生成与GPU兼容的代码,但这是高度实验性的,有限的,当然:比手工调整的代码更糟糕
  • gpu并不是所有事情都更快的(更严格的说:它们只在某些方面更快,而且很难实现)
    • 你还需要为延迟和数据拷贝付费
    • gpu的RAM一般也比较少
  • 线性规划和整数规划是用高度复杂的算法求解的
    • 理论上说:单纯形算法(GLPK使用的)很难并行化(哎哟,对GPU不利)
    • 理论上说:IPM方法(也可以解决LPs)易于并行化
    • 目前还没有已知的竞争对手基于GPU的单纯形求解器!(实际上,我不知道GPU有什么简单的实现,可以想到很多原因)
    • 有一些专门的基于IPM的GPU方法,没有与pyomo接口;也没有基于GPU的商用求解器
      • IPM对整数编程非常不利
  • GLPK,你的解算器,除了被python调用之外,与python无关(因此整个python cuda链接我们没用)

相关问题 更多 >