(rontolisp) docs
← checkpoint パッケージの関数

checkpoint:stage-float32

(checkpoint:stage-float32 stream dst)

バイトストリーム stream の現在位置から、F32 テンソル(任意ランクのパックされた単精度配列 dst のバイト列、リトルエンディアン)を 1 回の read-sequence で読み込みます。dst を返します。変換の要らない幅のための、checkpoint:stage-float-bits の対です。

bfloat16 の dst だけはそのバイト列ではないので、チャンクごとにステージングして流しながら丸めます。先に f32 テンソル全体を作ることは決してしません。10 億パラメータならそれは 4.4 GB の一時領域になります。

CL-USER> (with-open-file (s "model.safetensors" :element-type '(unsigned-byte 8))
           (checkpoint:skip-bytes s data-start)
           (checkpoint:stage-float32 s (checkpoint:make-tensor 2048 'single-float)))
#f(0.0234375 -0.0078125 ...)