Overview
Overview
Welcome to Caten/APIs
WIP
proceed is a function that evaluates a computational graph.
Result
ctx:with-contextvar
is a macro that sets the context variable. JIT=1
to use JIT, JIT_DEBUG=1
to see the generated code. DOT=1
to debug the pattern matcher on your browser. (need graphviz)
lisp
CATEN-USER> (ctx:with-contextvar (:jit 1 :jit_debug 1 :dot 0)
(caten (forward (Embedding 10 10) (make-tensor `(b c)))))
Result
Result
#S(AVM
:GRAPH
Graph[seen=NIL, outputs=NIL] {
<Node[BUFFER] ALLOCATE(NID68218) : val_128 <- () where :nrank=0 :dtype=INT32 :_type_relay=<OK> :_no_group_realize_on_vm=T>
<Node[BUFFER] LOAD(NID68220) : val_129 <- (val_128) where :value=C :_type_relay=<OK> :_no_group_realize_on_vm=T>
<Node[BUFFER] ALLOCATE(NID108636) : val_132 <- () where :nrank=0 :dtype=INT32 :_type_relay=<OK>>
<Node[BUFFER] ALLOCATE(NID108637) : val_131 <- () where :nrank=0 :dtype=INT32 :_type_relay=<OK>>
<Node[JIT] JIT_KERNEL(NID108633) : val_132, val_131, val_129 <- (val_132, val_131, val_129) where :fname=MAIN63883_e97_k0 :jit-info=<CLANG[NIL] Code [0 kernels]>>
<Node[BUFFER] ALLOCATE(NID63885) : val_78 <- () where :nrank=0 :dtype=UINT32 :_type_relay=<OK> :_no_group_realize_on_vm=T>
<Node[BUFFER] LOAD(NID63887) : val_79 <- (val_78) where :value=B :_type_relay=<OK> :_no_group_realize_on_vm=T>
<Node[BUFFER] ALLOCATE(NID63889) : val_76 <- () where :nrank=0 :dtype=UINT32 :_type_relay=<OK> :_no_group_realize_on_vm=T>
<Node[BUFFER] LOAD(NID63891) : val_77 <- (val_76) where :value=C :_type_relay=<OK> :_no_group_realize_on_vm=T>
<Node[BUFFER] ALLOCATE(NID63897) : val_74 <- () where :nrank=0 :dtype=INT32 :_type_relay=<OK> :_no_group_realize_on_vm=T>
<Node[BUFFER] LOAD(NID63899) : val_75 <- (val_74) where :value=C :_type_relay=<OK> :_no_group_realize_on_vm=T>
<ALLOCATE : val_80 <- (shape=(val_79, val_77), stride=(val_75, 1)) where :nrank=2 :dtype=FLOAT32 :_type_relay=<OK>>
<Node[BUFFER] ALLOCATE(NID68257) : val_104 <- () where :nrank=0 :dtype=INT32 :_type_relay=<OK> :_no_group_realize_on_vm=T>
<Node[BUFFER] LOAD(NID68259) : val_105 <- (val_104) where :value=C :_type_relay=<OK> :_no_group_realize_on_vm=T>
<Node[BUFFER] ALLOCATE(NID108638) : val_108 <- () where :nrank=0 :dtype=INT32 :_type_relay=<OK>>
<Node[BUFFER] ALLOCATE(NID108639) : val_107 <- () where :nrank=0 :dtype=INT32 :_type_relay=<OK>>
<Node[JIT] JIT_KERNEL(NID108634) : val_108, val_107, val_105 <- (val_108, val_107, val_105) where :fname=MAIN63883_e117_k0 :jit-info=<CLANG[NIL] Code [0 kernels]>>
<ALLOCATE : val_34 <- (shape=(10, 10), stride=(10, 1), from=<(10 10) Realized Array>) where :nrank=2 :dtype=FLOAT32 :_type_relay=<OK>>
<ALLOCATE : val_151 <- (shape=(B, C, 1, 10), stride=(val_132, 10, 10, 1)) where :nrank=4 :dtype=FLOAT32 :_type_relay=<OK>>
<Node[JIT] JIT_KERNEL(NID108635) : val_108, val_132, B, C, val_151, val_34, val_80 <- (val_108, val_132, B, C, val_151, val_34, val_80) where :fname=MAIN63883_e126_k0 :jit-info=<CLANG[NIL] Code [1 kernels]>>
<Node[SPECIAL/VM] PAUSE/BACKWARD(NID107551) : val_153 <- (val_151) where :_type_relay=<OK> :_no_group_realize_on_vm=T>
}
:NAME MAIN63883
:FW-OUTPUTS (val_153)
:BW-OUTPUTS NIL
:ID2TENSOR #<HASH-TABLE :TEST EQL :COUNT 1 {10077B70E3}>
:TAPE-LENGTH 21
:PC 0
:VARIABLES #<HASH-TABLE :TEST EQL :COUNT 2 {1008014503}>
:DUMPED NIL)