第三方库的使用

Use of third-party library

我对将 Alea GPU 与第三方库一起使用很感兴趣,并且正在尝试了解我的选择。具体来说,我对使用 this L-BFGS library 感兴趣。我是 F# 生态系统的新手,但对 CUDA 和函数式编程都有经验。

我一直在使用那个 L-BFGS 库作为实现逻辑回归的程序的一部分。如果我可以假设库是正确的并在类型安全的 F# 中编写我的其余代码(包括在 GPU 上运行的代码),那就太好了。

似乎可以link C++ with F#。假设我弄清楚如何将 L-BFGS 库集成到 F# 程序中,Alea GPU 的引入会导致任何问题吗?

我试图避免的是使用 Alea 在 F# 中重写 L-BFGS。然而,也许这实际上是使用 F# 的最简单途径。如果 Alea 有任何非线性优化工具,我可能会使用它们。

Alea GPU 还没有非线性优化器。 CUDA 版本与标准 CPU L-BFGS 的实现略有不同,这有时会导致一些准确性问题。除此之外,我没有遇到任何代码问题,除了性能获胜也很大程度上取决于 objective 函数。逻辑回归的 objective 函数在数值上相对便宜。

我们有一个移植到 Alea GPU 的此代码的内部 C# 版本,它也可以从 F# 使用,我们计划在未来的版本中发布它。