一种基于CPU和GPU的数组代码生成器

looo.p的Python项目详细描述


https://gitlab.tiker.net/inducer/loopy/badges/master/pipeline.svghttps://badge.fury.io/py/loo.py.png

Loopy允许您轻松地生成所需的冗长、复杂的代码 使gpu和多核cpu获得良好的性能。 Loopy的核心思想是计算应该简单地描述,然后 转换为获得高性能的版本。这种转变 在用户控制下从Python内部执行。在

它可以捕获以下类型的优化:

  • OpenCL/CUDA模型中的向量和多核并行性
  • 数据布局转换(数组结构到结构数组)
  • 循环展开
  • 有效处理边界情况的循环平铺
  • 预取/复制优化
  • 指令级并行
  • 还有更多

循环目标数组类型计算,例如:

  • 稠密线性代数
  • 卷积
  • n体相互作用
  • PDE解算器,如有限元、有限差分和 快速多极型计算

它不是(也不想成为)通用编程语言。在

Loopy根据自由MIT license授权,商业、学术免费, 以及私人使用。Loopy的所有依赖项都可以从 使用后的包索引:

pip install loo.py

此外,Loopy与 pyopencl。在

-

网络上与Loopy相关的位置:

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
具有主构造函数的java继承类   java目录和文件名连接不起作用   我有一个Java应用程序在JRE 6中运行,但在JRE 7中没有。如何在JRE7中运行应用程序   Java中数字字符串的udp NumberFormatException   java试图用<br/>替换<br>、<br>、<br+属性>标记   java Android视图不能被其他线程触及?   java语言对整个单词进行文本匹配?   java RESTEasy/JAXRS规范版本?   Java扩展泛型   java在安卓示例蓝牙聊天应用程序中,这个tmp变量的用途是什么   gwt这在java中代表什么?   java如何访问try块中的参数?   为什么在不同的类中使用相同的“For循环”会在Java中产生不同的输出?   java Google AppEngine 500错误   删除目录时的Java Ant性能   java如何仅在我的应用程序中获取运行线程   java将我的jar导入spark shell   Java流的性能。concat VS Collection。阿道尔   rest在这个Java代码中“entry”是什么意思?