设计要求:
(1)提供Tensor的统一使用方式
(2)Tensor的计算,支持多种形式,比如:python原生、 numba加速、 cuda加速
设计方案:
(1)为了支持需求(2),在Tensor的backend属性中,记录了需要使用那种形式的计算策略。
抽象下,有这么个需求:一个大积木A,由很多更小的积木B组成,积木B可能又由更小的积木C组成。我们构建积木A的时候要指定需要那种类型的积木C。
怎么办呢?我们将对积木C的限定,作为一个上下文变量,从上层往下层传,这样随时可以从上下文中得到对积木C的限定,进行相应的操作。