hikettei / cl-waffe2

[Experimental] Graph and Tensor Abstraction for Deep Learning all in Common Lisp
https://hikettei.github.io/cl-waffe2/
MIT License
124 stars 5 forks source link

[API Enhancement] Project Simplification for those who is new to Common Lisp #17

Open hikettei opened 1 year ago

hikettei commented 1 year ago
hikettei commented 9 months ago

We need to simplify the list of instructions needed for backend extensions:

Cheat sheet for backend extension

A backend which is completely separated from the standard implementation can be established by implementing all of the following instructions:

;; Arithmetic
AddNode SubNode MulNode DivNode
ScalarAdd ScalarSub ScalarMul ScalarDiv
InverseNode

;; [TODO] should be reduced to =>
AddNode SubNode MulNode DivNode
;; Matrix Transformation
MoveTensorNode

MoveTensorNode but JITxxxBackend dedicated to arithmetic ops for fast permute computation.
;; Mathematical Functions
SinNode CosNode TanNode ...
;; Logical Operations
;; Neural Network specialized instructions

Im2ColNode
Col2ImNode

To put it bluntly, instructions needs to be reimplemented are divided to three types:

Our goal is: just 1000 line CUDA Extension