---
title: TIK简介
description: "TIK（Tensor Iterator Kernel）是一种基于Python语言的动态编程框架，呈现为一个Python模块。"
url: https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/latest/others/tbeaicpudevg/atlasopdev_10_0047.html
sourcePath: /source/zh/CANNCommunityEdition/920beta1/others/tbeaicpudevg/atlasopdev_10_0047.html
indexId: aaf83af2d6443f6ef3cbca1a714452b968de5814478b530582a662e51d9ea11a84
---
# TIK简介

#### 什么是TIK

TIK（Tensor Iterator Kernel）是一种基于Python语言的动态编程框架，呈现为一个Python模块。

开发者可以通过调用TIK提供的API基于Python语言编写自定义算子，然后TIK编译器会编译为适配AI处理器应用程序的二进制文件。


#### TIK的优势

TIK算子开发方式是一种灵活的开发方式。TIK代码在算子开发效率和算子性能自动优化上有着一定的优势：

1. 并行化：提供程序员串行化编程体系，方便编写算子，TIK工具自动对计算过程并行化，实现高性能。
2. 自动内存管理：程序员在编写算子的时候不用感知和管理地址，编译器会做好内存分配。
3. 灵活性：通过手动调度可以更加精确的控制数据搬运和计算流程，从而实现更高的性能，将AI处理器的能力发挥到极致。
4. 易调试：区别于其他形式算子验证的黑盒模式，开发人员没有办法一步一步的去定位算子的问题，TIK的Debug模式可以帮助用户快速的定位功能问题，极大的缩短了开发调测时间。


#### TIK编程模型

图1是使用TIK进行编程的过程示意图，用户调用TIK API编写算子对应的Python程序后，TIK会将其转化为TIK DSL(TIK DSL是一种DSL语言，它可以在比CCE更高的抽象层次上定义CCEC程序的行为)，经过编译器编译后生成CCEC文件（CCEC代码目前对于TIK编程人员无法感知），再经过CCE编译器编译后生成可运行在AI处理器上的应用程序。

图1 TIK编程模型
