我正在考虑将Clyther用于高性能任务。仅使用python编写OpenCL内核是令人兴奋的,但是我想知道性能差距。
Clyther擅长的任务是什么?不好Clyther生成的内核好不好?
是否可以找到一些基准?
最佳答案
如文档所述,CLyther的主要入口点是其clyther.task
和clyther.kernel
装饰器-一旦使用其中一种装饰了函数,则该函数将在调用时编译为OpenCL。
CLyther是Python语言子集的编译器。它将Python子集代码编译到OpenCL中,因此内核的实际运行时间在OpenCL的接口(interface)之间不会(也应该不会)相差很大。 CLyther的实际开销(以及与Python的所有接口(interface)一样)来自调用OpenCL函数或在CLyther/Python和OpenCL之间移动数据。
performance中提供了显示CLyther的documentation的基准。源压缩包包含基准测试程序的C++和FORTRAN版本,一个Laplace方程求解器,因此您可以使用它们自己重现基准测试结果。
我个人认为,您可以在需要OpenCL计算的大多数问题上有效使用CLyther。