diff --git a/README.md b/README.md index 345db4a..eb667a1 100644 --- a/README.md +++ b/README.md @@ -210,72 +210,72 @@ pkg: github.com/keilerkonzept/bitknn cpu: Apple M1 Pro ``` -| Model | Bits | N | k | Op | s/op | B/op | allocs/op | -|-----------|------|---------|-----|-----------|-------------|------|-----------| -| Model | 64 | 100 | 3 | `Predict` | 99.06n ± 2% | 0 | 0 | -| WideModel | 64 | 100 | 3 | `Predict` | 191.6n ± 1% | 0 | 0 | -| Model | 64 | 100 | 3 | `Find` | 88.09n ± 0% | 0 | 0 | -| WideModel | 64 | 100 | 3 | `Find` | 182.8n ± 1% | 0 | 0 | -| Model | 64 | 100 | 10 | `Predict` | 225.1n ± 1% | 0 | 0 | -| WideModel | 64 | 100 | 10 | `Predict` | 372.0n ± 1% | 0 | 0 | -| Model | 64 | 100 | 10 | `Find` | 202.9n ± 1% | 0 | 0 | -| WideModel | 64 | 100 | 10 | `Find` | 345.2n ± 0% | 0 | 0 | -| Model | 64 | 1000 | 3 | `Predict` | 538.2n ± 1% | 0 | 0 | -| WideModel | 64 | 1000 | 3 | `Predict` | 1.469µ ± 1% | 0 | 0 | -| Model | 64 | 1000 | 3 | `Find` | 525.8n ± 1% | 0 | 0 | -| WideModel | 64 | 1000 | 3 | `Find` | 1.465µ ± 1% | 0 | 0 | -| Model | 64 | 1000 | 10 | `Predict` | 835.4n ± 1% | 0 | 0 | -| WideModel | 64 | 1000 | 10 | `Predict` | 1.880µ ± 1% | 0 | 0 | -| Model | 64 | 1000 | 10 | `Find` | 807.4n ± 0% | 0 | 0 | -| WideModel | 64 | 1000 | 10 | `Find` | 1.867µ ± 2% | 0 | 0 | -| Model | 64 | 1000 | 100 | `Predict` | 3.718µ ± 0% | 0 | 0 | -| WideModel | 64 | 1000 | 100 | `Predict` | 4.935µ ± 0% | 0 | 0 | -| Model | 64 | 1000 | 100 | `Find` | 3.494µ ± 0% | 0 | 0 | -| WideModel | 64 | 1000 | 100 | `Find` | 4.701µ ± 0% | 0 | 0 | -| Model | 64 | 1000000 | 3 | `Predict` | 458.8µ ± 0% | 0 | 0 | -| WideModel | 64 | 1000000 | 3 | `Predict` | 1.301m ± 1% | 0 | 0 | -| Model | 64 | 1000000 | 3 | `Find` | 457.9µ ± 1% | 0 | 0 | -| WideModel | 64 | 1000000 | 3 | `Find` | 1.302m ± 1% | 0 | 0 | -| Model | 64 | 1000000 | 10 | `Predict` | 456.9µ ± 0% | 0 | 0 | -| WideModel | 64 | 1000000 | 10 | `Predict` | 1.295m ± 2% | 0 | 0 | -| Model | 64 | 1000000 | 10 | `Find` | 457.6µ ± 1% | 0 | 0 | -| WideModel | 64 | 1000000 | 10 | `Find` | 1.298m ± 1% | 0 | 0 | -| Model | 64 | 1000000 | 100 | `Predict` | 474.5µ ± 1% | 0 | 0 | -| WideModel | 64 | 1000000 | 100 | `Predict` | 1.316m ± 1% | 0 | 0 | -| Model | 64 | 1000000 | 100 | `Find` | 466.9µ ± 0% | 0 | 0 | -| WideModel | 64 | 1000000 | 100 | `Find` | 1.306m ± 0% | 0 | 0 | -| WideModel | 128 | 100 | 3 | `Predict` | 296.7n ± 0% | 0 | 0 | -| WideModel | 128 | 100 | 3 | `Find` | 285.8n ± 0% | 0 | 0 | -| WideModel | 128 | 100 | 10 | `Predict` | 467.4n ± 1% | 0 | 0 | -| WideModel | 128 | 100 | 10 | `Find` | 441.1n ± 1% | 0 | 0 | -| WideModel | 640 | 100 | 3 | `Predict` | 654.6n ± 1% | 0 | 0 | -| WideModel | 640 | 100 | 3 | `Find` | 640.3n ± 1% | 0 | 0 | -| WideModel | 640 | 100 | 10 | `Predict` | 850.0n ± 1% | 0 | 0 | -| WideModel | 640 | 100 | 10 | `Find` | 825.0n ± 0% | 0 | 0 | -| WideModel | 128 | 1000 | 3 | `Predict` | 2.384µ ± 0% | 0 | 0 | -| WideModel | 128 | 1000 | 3 | `Find` | 2.374µ ± 0% | 0 | 0 | -| WideModel | 128 | 1000 | 10 | `Predict` | 2.900µ ± 0% | 0 | 0 | -| WideModel | 128 | 1000 | 10 | `Find` | 2.901µ ± 1% | 0 | 0 | -| WideModel | 128 | 1000 | 100 | `Predict` | 5.630µ ± 1% | 0 | 0 | -| WideModel | 128 | 1000 | 100 | `Find` | 5.472µ ± 3% | 0 | 0 | -| WideModel | 128 | 1000000 | 3 | `Predict` | 2.266m ± 0% | 0 | 0 | -| WideModel | 128 | 1000000 | 3 | `Find` | 2.273m ± 3% | 0 | 0 | -| WideModel | 128 | 1000000 | 10 | `Predict` | 2.269m ± 0% | 0 | 0 | -| WideModel | 128 | 1000000 | 10 | `Find` | 2.261m ± 1% | 0 | 0 | -| WideModel | 128 | 1000000 | 100 | `Predict` | 2.295m ± 1% | 0 | 0 | -| WideModel | 128 | 1000000 | 100 | `Find` | 2.289m ± 0% | 0 | 0 | -| WideModel | 640 | 1000 | 3 | `Predict` | 6.214µ ± 2% | 0 | 0 | -| WideModel | 640 | 1000 | 3 | `Find` | 6.201µ ± 1% | 0 | 0 | -| WideModel | 640 | 1000 | 10 | `Predict` | 6.777µ ± 1% | 0 | 0 | -| WideModel | 640 | 1000 | 10 | `Find` | 6.728µ ± 1% | 0 | 0 | -| WideModel | 640 | 1000 | 100 | `Predict` | 11.16µ ± 2% | 0 | 0 | -| WideModel | 640 | 1000 | 100 | `Find` | 10.85µ ± 2% | 0 | 0 | -| WideModel | 640 | 1000000 | 3 | `Predict` | 5.756m ± 4% | 0 | 0 | -| WideModel | 640 | 1000000 | 3 | `Find` | 5.832m ± 2% | 0 | 0 | -| WideModel | 640 | 1000000 | 10 | `Predict` | 5.842m ± 1% | 0 | 0 | -| WideModel | 640 | 1000000 | 10 | `Find` | 5.830m ± 5% | 0 | 0 | -| WideModel | 640 | 1000000 | 100 | `Predict` | 5.914m ± 6% | 0 | 0 | -| WideModel | 640 | 1000000 | 100 | `Find` | 5.872m ± 1% | 0 | 0 | +| Bits | N | k | Model | Op | s/op | B/op | allocs/op | +|------|---------|-----|-----------|-----------|-------------|------|-----------| +| 64 | 100 | 3 | Model | `Predict` | 99.06n ± 2% | 0 | 0 | +| 64 | 100 | 3 | WideModel | `Predict` | 191.6n ± 1% | 0 | 0 | +| 64 | 100 | 3 | Model | `Find` | 88.09n ± 0% | 0 | 0 | +| 64 | 100 | 3 | WideModel | `Find` | 182.8n ± 1% | 0 | 0 | +| 64 | 100 | 10 | Model | `Predict` | 225.1n ± 1% | 0 | 0 | +| 64 | 100 | 10 | WideModel | `Predict` | 372.0n ± 1% | 0 | 0 | +| 64 | 100 | 10 | Model | `Find` | 202.9n ± 1% | 0 | 0 | +| 64 | 100 | 10 | WideModel | `Find` | 345.2n ± 0% | 0 | 0 | +| 64 | 1000 | 3 | Model | `Predict` | 538.2n ± 1% | 0 | 0 | +| 64 | 1000 | 3 | WideModel | `Predict` | 1.469µ ± 1% | 0 | 0 | +| 64 | 1000 | 3 | Model | `Find` | 525.8n ± 1% | 0 | 0 | +| 64 | 1000 | 3 | WideModel | `Find` | 1.465µ ± 1% | 0 | 0 | +| 64 | 1000 | 10 | Model | `Predict` | 835.4n ± 1% | 0 | 0 | +| 64 | 1000 | 10 | WideModel | `Predict` | 1.880µ ± 1% | 0 | 0 | +| 64 | 1000 | 10 | Model | `Find` | 807.4n ± 0% | 0 | 0 | +| 64 | 1000 | 10 | WideModel | `Find` | 1.867µ ± 2% | 0 | 0 | +| 64 | 1000 | 100 | Model | `Predict` | 3.718µ ± 0% | 0 | 0 | +| 64 | 1000 | 100 | WideModel | `Predict` | 4.935µ ± 0% | 0 | 0 | +| 64 | 1000 | 100 | Model | `Find` | 3.494µ ± 0% | 0 | 0 | +| 64 | 1000 | 100 | WideModel | `Find` | 4.701µ ± 0% | 0 | 0 | +| 64 | 1000000 | 3 | Model | `Predict` | 458.8µ ± 0% | 0 | 0 | +| 64 | 1000000 | 3 | WideModel | `Predict` | 1.301m ± 1% | 0 | 0 | +| 64 | 1000000 | 3 | Model | `Find` | 457.9µ ± 1% | 0 | 0 | +| 64 | 1000000 | 3 | WideModel | `Find` | 1.302m ± 1% | 0 | 0 | +| 64 | 1000000 | 10 | Model | `Predict` | 456.9µ ± 0% | 0 | 0 | +| 64 | 1000000 | 10 | WideModel | `Predict` | 1.295m ± 2% | 0 | 0 | +| 64 | 1000000 | 10 | Model | `Find` | 457.6µ ± 1% | 0 | 0 | +| 64 | 1000000 | 10 | WideModel | `Find` | 1.298m ± 1% | 0 | 0 | +| 64 | 1000000 | 100 | Model | `Predict` | 474.5µ ± 1% | 0 | 0 | +| 64 | 1000000 | 100 | WideModel | `Predict` | 1.316m ± 1% | 0 | 0 | +| 64 | 1000000 | 100 | Model | `Find` | 466.9µ ± 0% | 0 | 0 | +| 64 | 1000000 | 100 | WideModel | `Find` | 1.306m ± 0% | 0 | 0 | +| 128 | 100 | 3 | WideModel | `Predict` | 296.7n ± 0% | 0 | 0 | +| 128 | 100 | 3 | WideModel | `Find` | 285.8n ± 0% | 0 | 0 | +| 128 | 100 | 10 | WideModel | `Predict` | 467.4n ± 1% | 0 | 0 | +| 128 | 100 | 10 | WideModel | `Find` | 441.1n ± 1% | 0 | 0 | +| 640 | 100 | 3 | WideModel | `Predict` | 654.6n ± 1% | 0 | 0 | +| 640 | 100 | 3 | WideModel | `Find` | 640.3n ± 1% | 0 | 0 | +| 640 | 100 | 10 | WideModel | `Predict` | 850.0n ± 1% | 0 | 0 | +| 640 | 100 | 10 | WideModel | `Find` | 825.0n ± 0% | 0 | 0 | +| 128 | 1000 | 3 | WideModel | `Predict` | 2.384µ ± 0% | 0 | 0 | +| 128 | 1000 | 3 | WideModel | `Find` | 2.374µ ± 0% | 0 | 0 | +| 128 | 1000 | 10 | WideModel | `Predict` | 2.900µ ± 0% | 0 | 0 | +| 128 | 1000 | 10 | WideModel | `Find` | 2.901µ ± 1% | 0 | 0 | +| 128 | 1000 | 100 | WideModel | `Predict` | 5.630µ ± 1% | 0 | 0 | +| 128 | 1000 | 100 | WideModel | `Find` | 5.472µ ± 3% | 0 | 0 | +| 128 | 1000000 | 3 | WideModel | `Predict` | 2.266m ± 0% | 0 | 0 | +| 128 | 1000000 | 3 | WideModel | `Find` | 2.273m ± 3% | 0 | 0 | +| 128 | 1000000 | 10 | WideModel | `Predict` | 2.269m ± 0% | 0 | 0 | +| 128 | 1000000 | 10 | WideModel | `Find` | 2.261m ± 1% | 0 | 0 | +| 128 | 1000000 | 100 | WideModel | `Predict` | 2.295m ± 1% | 0 | 0 | +| 128 | 1000000 | 100 | WideModel | `Find` | 2.289m ± 0% | 0 | 0 | +| 640 | 1000 | 3 | WideModel | `Predict` | 6.214µ ± 2% | 0 | 0 | +| 640 | 1000 | 3 | WideModel | `Find` | 6.201µ ± 1% | 0 | 0 | +| 640 | 1000 | 10 | WideModel | `Predict` | 6.777µ ± 1% | 0 | 0 | +| 640 | 1000 | 10 | WideModel | `Find` | 6.728µ ± 1% | 0 | 0 | +| 640 | 1000 | 100 | WideModel | `Predict` | 11.16µ ± 2% | 0 | 0 | +| 640 | 1000 | 100 | WideModel | `Find` | 10.85µ ± 2% | 0 | 0 | +| 640 | 1000000 | 3 | WideModel | `Predict` | 5.756m ± 4% | 0 | 0 | +| 640 | 1000000 | 3 | WideModel | `Find` | 5.832m ± 2% | 0 | 0 | +| 640 | 1000000 | 10 | WideModel | `Predict` | 5.842m ± 1% | 0 | 0 | +| 640 | 1000000 | 10 | WideModel | `Find` | 5.830m ± 5% | 0 | 0 | +| 640 | 1000000 | 100 | WideModel | `Predict` | 5.914m ± 6% | 0 | 0 | +| 640 | 1000000 | 100 | WideModel | `Find` | 5.872m ± 1% | 0 | 0 | ## License