Releases: tenstorrent/sfpi
test
7.33.0-stochrnd-40342 #40342: Correct sfpstochrnd encoding
test
7.33.0-checking-36930 #36930: Extend checking
Compiler update
- Check builtin argument values
- Remove erroneous sfpi getter function
- Rename internal sfpu vector type. This is not part of the user API
- Add
copyexpfunction to copy the exponent from one vector to another.
7.33.0-vec_t-40182
#40182: Move raw sfpu vector type into implementation namespace
test
Remove vConstFloat detail detail detail vDReg refactor
Compiler Update
Compiler update
- Do not enable load-locked/store-conditional instructions on quasar (use the
zaamoextension, rather thana) - Do not enable floating point on quasar (no
fextension) - Correct a bug introduced renaming
xttrocctoxttroccqsr, sorry - Use
#!/bin/env bashin shell scripts (thanks @iharabukhouski)
The vector, v, and compressed, c, extensions are already not enabled on quasar.
Quasar updates
Assembler Changes
xttroccISA extension renamedxttroccqsr, for future proofingxttcacheISA extension added, this enables 2 cache control instructions
Compiler Changes
-mcpu=tt-qsr64enablesxttcacheextension-mcpu=tt-qsr64-roccenablexttcacheand renamedxttroccqsrextensions- Wormhole, Blackhole
ebreakerratum workaround added. Enabled by any-mcpu=tt-whor-mcpu=tt-bhcpu selection, - Crash in replay optimization fixed. This was caused by erroneous code that now (later) triggers a diagnostic as expected.
The ebreak workaround adds 8 nop instructions after any inline asm consisting of exactly ebreak. Embedding ebreak within a sequence of instructions will not invoke the workaround.
Compiler builtins change
The tensix builtins are not consistent in their parameter ordering. This reordered the few oddly ordered ones. Most users will not perceive a change as these are for internal use in the SFPI headers themselves.
sfpsetman,sfpsetexp,sfpsetsgn(both_vand_ivariants)sfpload,sfpstoresfpdivp2sfpstochrnd(both_vand_ivariants)sfpxloadi
The changes:
a) move all the vector input operands to the beginning
b) place any operand that is permitted to be runtime-computable immediately after that.
It is not recommended that you start using these builtins directly. If you have use the above, you will need to update your code. The failure mode for not doing so will be compilation errors.
This removes a set of inconsistencies in the compiler.
Quasar pseudo-instructions
- Split quasar
sfpload,sfpstoreaddress operand to Dest/SrcS field and address:
sfpload Reg,Addr,Mode,Mod1,Dest-or-SrcS,BankDone
sfpstore Reg,Addr,Mode,Mod1,Dest-or-SrcS,BankDone
- Add
sfpbankdonepseudo-instruction, which maps onto thesfpnopencoding with at least one non-zero operand:
sfpbankdone srcs_wr_done, srcs_rd_done, dest_done
An sfpbankdone instruction with 3 zero operands will disassemble to sfpnop.
sfpnopreturns to a non-operand instruction, as nops are meant to be:
sfpnop
- Swap address and register operands for
sfpstoreon all variants, to be more standard in how load and store instruction operand are ordered:
sfpstore Reg,Addr,Mode,Mod1