AKG(Auto Kernel Generator) is an optimizer for operators in Deep Learning Networks. It provides the ability to automatically fuse ops with specific patterns. AKG works with MindSpore-GraphKernel to improve the performance of networks running on different hardware backends.
AKG composes with three basic optimization module, normalization, auto schedule and backend optimization.
normalization. In order to solve the limitation in expression ability of polyhedral(which can only process static linear programs), the computation IR needs to be normalized first. The mainly optimization of normalization module includes auto-inline, loop fusing, common subexpression elimination and so on.
auto schedule. Base on polyhedral technology, the auto schedule module mainly have auto-vectorization, auto-tiling, thread/block mapping, dependency analysis and memory promotion.
backend optimization. The backend optimization module mainly consists of TensorCore acceleration, double buffer optimization, storage flatten optimization and inject sync optimization.
GPU V100/A100 are supported. More Backends are on the list.
See MindSpore README.md for details.
We suggest you build and run akg together with MindSpore. And we also provide a way to run case in standalone mode for convenience sake. Refer to MindSpore Installation for more information about compilation dependencies.
Build on Ascend910
git-lfs needs to be installed before cloning the source codes.
git clone https://gitee.com/mindspore/akg.git cd akg bash build.sh -e ascend
Build on GPU
git clone https://gitee.com/mindspore/akg.git cd akg bash build.sh -e gpu
cd tests source ./test_env.sh
cd tests source ./test_env.sh gpu
cd tests/st/ops/ascend/vector pytest -s test_abs_001.py -m "level0" # run level0 testcases
cd tests/operators/gpu python3 test_all.py "op_name" # replace op_name with the operator name which you want to test
Welcome contributions. See MindSpore Contributor Wiki for more details.
The release notes, see our RELEASE.
：Code submit frequency
：React/respond to issue & PR etc.
：Well-balanced team members and collaboration
：Recent popularity of project
：Star counts, download counts etc.