MEP 20: 他のレイヤーの参照
- Created: 2024-09-20 15:56:10
下のレイヤーとか上のレイヤーもアクセス出来るようにしたい。
タプルのアクセスのように大括弧でどうだろう?
input_u8[-1](x, y)
0が現在のレイヤー、-1が下のレイヤー、1が上のレイヤー。 プラスをどちらの向きにするかはちょっと悩ましいが、z-indexと同じにしておく方がいいかな、と予想。 だいたい-1しか使わないので、一番使うのがマイナスなのはどうなんだ?という気もするが。
大括弧にする懸念としては、テンソルのアクセスを大括弧にしたくなった時にこまる、というのがある。 現状は
input_u8(x, y)
と関数のようになっているが、タプルとの関連で考えると
input_u8[x, y]
の方が正しいのでは?という気もしている。 最初に関数呼び出しのシンタックスにしたのはHalideがそうだったから以上の意味は無いが、型の時点でサイズが決まるタプルとは区別したい思いもある。 そういう点ではテンソルアクセスがタプルのアクセスと違うのはこれで良い気もしている。
他のレイヤーがタプルと同じアクセス方法なのは良い。概念的に似ている気がする。
実装方針
metalのレイヤーではinput_u8_1とかinput_u8_m1とかにしよう。m1は-1。 IRのテンソルの名前としてもこういう名前にしておく。
マップとしてはレイヤーのインデックス、つまり現在が0で一つ上が1で一つ下が-1というキーで突っ込んでおけばいいかな。