-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support ComputeConfig::unpack_to_dest_mode
#879
Comments
|
Going to look at this now |
Hey @nsmithtt - tt-metal requires the new enum to be set for either none, or all 32 CBs with this assert they have:
I don't see we have this type of variable NUM_CIRCULAR_BUFFERS=32 replicated on our side anywhere. On their side it comes from here:
2 questions:
|
Completely agree with both points:
Seems weird that it must be specified for all circular buffers TBH, could make sense for metal to make this a |
- Pass field (per CB) down from compiler to runtime to metal API - Hardcoded to UnpackToDestMode::Default and for all 32 CBs for now because tt-metal requires this (will be relaxed soon), replace with compiler logic when ready.
Opened a metal ticket tenstorrent/tt-metal#14066 after offline discussion to request that requirement be removed, then don't need to export up via systemdesc (unless you think we want it anyways, for other purposes). |
Sounds good. We might need it anyway to know what the max number of CBs is. What we probably want actually is a breakdown:
This is almost inferable from tt-metal's If the above metal ticket gets fixed, then this issue a much lower priority. We already have to model these CB's in TTKernel dialect which I think would make it impossible to emit more of each type already. |
- Export NUM_CIRCULAR_BUFFERS from tt-metal into system-desc's ChipDesc and use it for assert in tt-mlir compiler to ensure compiler/metal view of max number of CB's is aligned. - Pass new enum UnpackToDestMode (per CB) down from compiler to runtime to metal API
* Uplift metal: fixed mesh device include, reshape, and memory constants * Remove preserve_fp32_precision until it is replaced by unpack_to_dest_mode (issue #879) * Guard saving artifacts in ttrt performance mode and temporary skip for device perf tests * Additional fixes after uplift * Skip failing test for uplift * Change metal version... * Fix format * Remove ttrt perf tests for uplift only --------- Co-authored-by: Jackson Nie <[email protected]> Co-authored-by: ddilbaz <[email protected]> Co-authored-by: Tapasvi Patel <[email protected]> Co-authored-by: Milan Topalovic <[email protected]>
- Most recent tt-metal uplift removed preserve_fp32_precision and replaced with unpack_to_dest_mode vector on ComputeConfig - Export NUM_CIRCULAR_BUFFERS from tt-metal into system-desc's ChipDesc and use it for assert in tt-mlir compiler to ensure compiler/metal view of max number of CB's is aligned. - Pass new enum UnpackToDestMode (per CB) down from compiler to runtime to metal API
) * Runtime/Compiler - Support ComputeConfig::unpack_to_dest_mode #879 - Most recent tt-metal uplift removed preserve_fp32_precision and replaced with unpack_to_dest_mode vector on ComputeConfig - Export NUM_CIRCULAR_BUFFERS from tt-metal into system-desc's ChipDesc and use it for assert in tt-mlir compiler to ensure compiler/metal view of max number of CB's is aligned. - Pass new enum UnpackToDestMode (per CB) down from compiler to runtime to metal API - Add num_cbs = 32 to hardcoded system_desc in test_grid_set.mlir. Looks like this test is intending to run with custom soc_desc, annoying.
Metal replaced
computeConfig.preserve_fp32_precision
withunpack_to_dest_mode
:We need to update:
TTKernelOpsEnums.td
: AddUnpackToDestMode
enumTTKernelOpsTypes.td
: UpdateTensixConfigAttr
w/ new ArrayAttr fieldunpack_to_dest_mode
(one per CB)TTMetal/program.fbs
: Updatetable TensixConfig
ttmetal/command_queue.cpp
: Plumb through to metal apiThe text was updated successfully, but these errors were encountered: