【问题标题】:Creating a hardware accelleration pipeline for BEAM为 BEAM 创建硬件加速管道
【发布时间】:2017-10-25 05:58:55
【问题描述】:

我对在 Erlang 中启用 GPU 加速的管道有一个概念性的想法。该 API 将由高阶函数组成,这些函数采用 fun、二进制文件和一些标志,对 BEAM 字节码进行运行时检查,以查看 fun 是否可以编译到 OpenCL,缓存结果,然后与来自的高阶函数类似地工作列表模块。如果乐趣不能转换为 OpenCL,则该过程将失败。

所有操作都将在二进制文件上完成,因为 cons 列表不会在内存中连续表示,导致将它们移入和移出 GPU 内存需要大量工作。可以选择将二进制解释为浮点数、双精度数、整数或混合,并具有不同大小的输入和输出以供娱乐。是否可以在不破解 BEAM 的情况下在纯 Erlang 或 C 中执行此操作?如果是,将不胜感激相关资源的链接。

【问题讨论】:

    标签: c erlang hardware-acceleration erlang-nif


    【解决方案1】:

    erlang:fun_info/1 返回一个包含元组 {env, ...} 的列表,其中包含一个 AST。我可以利用这个 s 来创建我的 OpenCL 代码,并使用现有的 OpenCL 绑定并使用 gen_server 中的 ETS 表进行缓存,覆盖纯 Erlang 中的 while 管道。

    【讨论】:

      猜你喜欢
      • 2017-08-11
      • 2011-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-05
      • 1970-01-01
      相关资源
      最近更新 更多