gpt4 book ai didi

optimization - 如何在 ocaml 中将 Flambda 与沙丘一起使用?

转载 作者:行者123 更新时间:2023-12-05 00:52:09 25 4
gpt4 key购买 nike

我正在做一个项目,我需要尽可能优化我的代码,因为正常编译运行需要几个小时。

有人告诉我使用 Flambda,但我在互联网上没有找到任何关于如何将它与 dune 一起使用的信息。

我将不胜感激按照说明/资源阅读。

最佳答案

Flambda 是编译器的一项配置功能,默认禁用(截至 2022 年 1 月)。要使用它,您需要安装启用此功能的编译器版本。使用 opam 很容易,例如,

opam switch create myswitch ocaml-variants.4.13.1+options ocaml-option-flambda

它将使用 4.13.1 版本的 OCaml 编译器创建一个新开关,并启用 flambda 功能。一般语法是,

opam switch create <switch-name> ocaml-variants.<version>+options <options>...

您可以启用多个选项,请参阅 opam search ocaml-option 了解所有选项。

在您安装了 OCaml 的 flambda 版本后,它将默认使用 flambda 优化(但请确保您使用的是发布版本,因为默认调试版本禁用了一些优化,包括跨模块优化)。另外,像往常一样,不要忘记使用 eval $(opam env) 激活您的开关。

flambda 编译器有许多配置选项,它们完全是 described in the manual .您可以对它们进行试验,以在编译时间和应用程序性能之间找到一些折衷。您可以使用 flags 设置选项节,例如,(flags (:standard -rounds 5))。您可以设置flags globally as well .一旦找到完美的标志集,您甚至可以使用它们来编译上游依赖项,使用 OCAMLPARAM环境变量。使用此环境变量,您可以更改优化参数,而不会干扰其他包的构建脚本,例如,

export OCAMLPARAM='_,rounds=5,O3=1,inline=100,inline-max-unroll=5'
# opam install your deps

关于optimization - 如何在 ocaml 中将 Flambda 与沙丘一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70665781/

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