Chapter 29

runtime/forward

github.com/openfluke/welvet/runtime/forward


Why it exists

A grid of heterogeneous ops needs one walker that dispatches by concrete type and fails loudly on unknowns.

What it is

Forward[T](grid, input) → Result tape; Cell[T] for single-cell dispatch. Covers Dense…Residual + extended wired ops.

Go example

examples/29-forward/main.go

Run:cd welvet/examples/29-forward && source ../env.sh && go run .
package main

import (
	"fmt"

	"github.com/openfluke/welvet/architecture"
	"github.com/openfluke/welvet/core"
	"github.com/openfluke/welvet/layers/dense"
	"github.com/openfluke/welvet/runtime/forward"
)

func main() {
	g := architecture.NewGrid(1, 1, 1, 1)
	l, _ := dense.New(8, 8, core.ActivationLinear, core.DTypeFloat32)
	_ = dense.Place(g, 0, 0, 0, 0, l)
	res, err := forward.Forward(g, core.NewTensor[float32](1, 8))
	fmt.Println(res != nil, err)
}

Output

exit 0 · last run via go run .

true <nil>