blob: fe7ae62f29f6264cdcf51ab6cbc79de0912108a1 [file] [log] [blame]
TODO: Discard the old requantization stuff, keep less-than-8-bit kernels, expose
them as a different contract whereby the user specifies that operands use less
than 8 bits.
Read: doc/less-than-8-bit.md
This is about going from "the present" to "the future" as described there.
Discard all requantization stuff.
Probably no need to worry about compatibility, this was little used.
Instead, add a new option, in the form of new "bit depth params", whereby the user can specify that operands use less than 8 bits (even though they are represented as std::uint8_t). For example, specifying 6 bits would mean that the contract is that the user guarantees that LHS matrix entries are in the [0, 63] interval.
Then make use of that to select kernels that take advantage of the lower bit depth. The existing less-than-8bit kernels would work as-is, only now no requantization would be needed anymore in the packing stage, and not rescaling in the unpacking stage.