2017-05-24 42 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管道。