一种基于CPU和GPU的数组代码生成器
loo-v2020的Python项目详细描述
Loopy:基于转换的高性能CPU/GPU代码生成
。。图片::https://gitlab.tiker.net/inducer/loopy/badges/master/pipeline.svg :alt:Gitlab生成状态 :目标:https://gitlab.tiker.net/inducer/loopy/commits/master .. 图片::https://github.com/inducer/loopy/workflows/CI/badge.svg?branch=master&event=push :alt:Github生成状态 :目标:https://github.com/inducer/loopy/actions?query=branch%3Amaster+workflow%3ACI+event%3Apush .. 图片::https://badge.fury.io/py/loo.py.png :alt:Python包索引发布页 :目标:https://pypi.org/project/loo.py/
Loopy允许您轻松地生成所需的冗长、复杂的代码 使gpu和多核cpu获得良好的性能。 Loopy的核心思想是计算应该简单地描述,然后 将转换为获得高性能的版本。这种转变 在用户控制下从Python内部执行。在
它可以捕获以下类型的优化:
- OpenCL/CUDA模型中的向量和多核并行性
- 数据布局转换(数组结构到结构数组)
- 循环展开
- 有效处理边界情况的循环平铺
- 预取/复制优化
- 指令级并行
- 还有更多
循环目标数组类型计算,例如:
- 稠密线性代数
- 卷积
- n体相互作用
- PDE解算器,如有限元、有限差分和 快速多极型计算
它不是(也不想成为)通用编程语言。在
Loopy是根据自由MIT license <http://en.wikipedia.org/wiki/MIT_License>
授权的,商业、学术免费,
以及私人使用。Loopy的所有依赖项都可以从
使用后的包索引:
pip install loo.py
此外,Loopy与
pyopencl <http://mathema.tician.de/software/pyopencl>
。在
网络上与Loopy相关的位置:
- 在
在Python package index <http://pypi.python.org/pypi/loo.py>
}(下载版本)注意PyPI标识符中额外的“.”!在 - 在
在Documentation <http://documen.tician.de/loopy>
}(阅读事物的工作原理) - 在
在Github <http://github.com/inducer/loopy>
\u(获取最新源代码,文件错误) - 在
在Wiki <http://wiki.tiker.net/Loopy>
}(阅读安装技巧,获取示例,阅读常见问题解答) - 在
在Homepage <http://mathema.tician.de/software/loopy>
- 项目
标签: