Class: GPT2BlockFFIMetal

Inherits:
Object
  • Object
show all
Defined in:
lib/toy/llm/engine/gpt2_fwd_engine_metal.rb

Overview

Per-block tensor handles. Distinct class from BlockFFICache (in lib/tinynn.rb) to avoid Spinel collapsing :ptr-array ivars across the two cache types.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeGPT2BlockFFIMetal

Returns a new instance of GPT2BlockFFIMetal.



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/toy/llm/engine/gpt2_fwd_engine_metal.rb', line 38

def initialize
  # Inline literal seed pattern (not `null = ...; [null]` — Spinel
  # loses :ptr typing through the local-var binding and re-types the
  # array as poly_array).
  @t_ln1_gamma = TinyNNMetal.tnn_null_ptr
  @t_ln1_beta  = TinyNNMetal.tnn_null_ptr
  @t_ln2_gamma = TinyNNMetal.tnn_null_ptr
  @t_ln2_beta  = TinyNNMetal.tnn_null_ptr
  @t_w_q = [TinyNNMetal.tnn_null_ptr]
  @t_w_k = [TinyNNMetal.tnn_null_ptr]
  @t_w_v = [TinyNNMetal.tnn_null_ptr]
  @t_b_q = [TinyNNMetal.tnn_null_ptr]
  @t_b_k = [TinyNNMetal.tnn_null_ptr]
  @t_b_v = [TinyNNMetal.tnn_null_ptr]
  @t_w_o   = TinyNNMetal.tnn_null_ptr
  @t_b_o   = TinyNNMetal.tnn_null_ptr
  @t_w_ff1 = TinyNNMetal.tnn_null_ptr
  @t_b_ff1 = TinyNNMetal.tnn_null_ptr
  @t_w_ff2 = TinyNNMetal.tnn_null_ptr
  @t_b_ff2 = TinyNNMetal.tnn_null_ptr
end

Instance Attribute Details

#t_b_ff1Object

Returns the value of attribute t_b_ff1.



31
32
33
# File 'lib/toy/llm/engine/gpt2_fwd_engine_metal.rb', line 31

def t_b_ff1
  @t_b_ff1
end

#t_b_ff2Object

Returns the value of attribute t_b_ff2.



31
32
33
# File 'lib/toy/llm/engine/gpt2_fwd_engine_metal.rb', line 31

def t_b_ff2
  @t_b_ff2
end

#t_b_kObject

Returns the value of attribute t_b_k.



31
32
33
# File 'lib/toy/llm/engine/gpt2_fwd_engine_metal.rb', line 31

def t_b_k
  @t_b_k
end

#t_b_oObject

Returns the value of attribute t_b_o.



31
32
33
# File 'lib/toy/llm/engine/gpt2_fwd_engine_metal.rb', line 31

def t_b_o
  @t_b_o
end

#t_b_qObject

Returns the value of attribute t_b_q.



31
32
33
# File 'lib/toy/llm/engine/gpt2_fwd_engine_metal.rb', line 31

def t_b_q
  @t_b_q
end

#t_b_vObject

Returns the value of attribute t_b_v.



31
32
33
# File 'lib/toy/llm/engine/gpt2_fwd_engine_metal.rb', line 31

def t_b_v
  @t_b_v
end

#t_ln1_betaObject

Returns the value of attribute t_ln1_beta.



31
32
33
# File 'lib/toy/llm/engine/gpt2_fwd_engine_metal.rb', line 31

def t_ln1_beta
  @t_ln1_beta
end

#t_ln1_gammaObject

Returns the value of attribute t_ln1_gamma.



31
32
33
# File 'lib/toy/llm/engine/gpt2_fwd_engine_metal.rb', line 31

def t_ln1_gamma
  @t_ln1_gamma
end

#t_ln2_betaObject

Returns the value of attribute t_ln2_beta.



31
32
33
# File 'lib/toy/llm/engine/gpt2_fwd_engine_metal.rb', line 31

def t_ln2_beta
  @t_ln2_beta
end

#t_ln2_gammaObject

Returns the value of attribute t_ln2_gamma.



31
32
33
# File 'lib/toy/llm/engine/gpt2_fwd_engine_metal.rb', line 31

def t_ln2_gamma
  @t_ln2_gamma
end

#t_w_ff1Object

Returns the value of attribute t_w_ff1.



31
32
33
# File 'lib/toy/llm/engine/gpt2_fwd_engine_metal.rb', line 31

def t_w_ff1
  @t_w_ff1
end

#t_w_ff2Object

Returns the value of attribute t_w_ff2.



31
32
33
# File 'lib/toy/llm/engine/gpt2_fwd_engine_metal.rb', line 31

def t_w_ff2
  @t_w_ff2
end

#t_w_kObject

Returns the value of attribute t_w_k.



31
32
33
# File 'lib/toy/llm/engine/gpt2_fwd_engine_metal.rb', line 31

def t_w_k
  @t_w_k
end

#t_w_oObject

Returns the value of attribute t_w_o.



31
32
33
# File 'lib/toy/llm/engine/gpt2_fwd_engine_metal.rb', line 31

def t_w_o
  @t_w_o
end

#t_w_qObject

Returns the value of attribute t_w_q.



31
32
33
# File 'lib/toy/llm/engine/gpt2_fwd_engine_metal.rb', line 31

def t_w_q
  @t_w_q
end

#t_w_vObject

Returns the value of attribute t_w_v.



31
32
33
# File 'lib/toy/llm/engine/gpt2_fwd_engine_metal.rb', line 31

def t_w_v
  @t_w_v
end