2017-05-24 114 views
1

对于在Erlang中启用GPU加速的管道,我有一个概念性的想法。该API将包含高阶函数,它们会带来乐趣,二进制和一些标志,对BEAM字节码进行运行时检查,以查看是否可以将乐趣编译为OpenCL,缓存结果,然后类似于更高阶的函数列表模块。如果乐趣无法转换为OpenCL,则该过程将失败。为BEAM创建硬件加速管道

所有的操作都将在二进制文件上完成,因为缺陷列表在内存中没有连续地表示,导致大量工作将它们移入和移出GPU内存。可以选择将二进制文件解释为浮点数,双精度,整数或混合,并且为了乐趣而具有不同大小的输入和输出。在没有黑客入侵的情况下,是否可以在纯Erlang或C中执行此操作?如果是的话,将赞赏与相关资源的链接。

回答

1

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