2012-11-21 26 views
6

我正在考慮使用Clyther進行高性能任務。使用python編寫OpenCL內核是令人興奮的,但我想知道性能差距。什麼大小的Clyther開銷?

Clyther擅長什麼任務?不好? Clyther生成的內核是否良好?

是否有可能找到一些基準?

+0

我只能找到一個基準:http://srossross.github.com/Clyther/performance_python.html#performance-results – Natan

回答

4

正如文檔所述,CLyther的主要入口點是它的clyther.taskclyther.kernel裝飾器 - 一旦函數裝飾了其中一個函數,函數將在調用時編譯爲OpenCL。

CLyther是Python語言子集的編譯器。它將你的Python子集代碼編譯成OpenCL,所以內核的實際運行時間不會(或不應該)在與OpenCL的接口之間有很大不同。 CLyther的實際開銷(與Python的所有接口一樣)來自調用OpenCL函數或CLyther/Python和OpenCL之間的數據移動。

基準顯示CLyther的performance可在documentation中找到。源代碼tarball包含基準程序的C++和FORTRAN版本,一個拉普拉斯方程求解器,因此您可以使用它們自己再現基準結果。個人而言,我相信你可以在大多數需要OpenCL計算的問題上有效地使用CLyther。