-
Notifications
You must be signed in to change notification settings - Fork 17.5k
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
cmd/asm: support Advanced Matrix Extensions (AMX) in Go Assembler #61079
Comments
This doesn't need to be a proposal, so taking it out of the proposal process. |
/cc @golang/compiler |
Would love to work on that. |
@anton-kuklin that would be great. Thanks! (I don't know of anybody currently working on this.) |
Sure, starting my work. |
Quick update on my progress. During the investigation of how to implement this feature I discovered that there's a tool x86avgen. It generates corresponding optables based on a provided csv file, e.g. this or this. After that I discovered, that there's a tool x86spec which actually downloads the latest intel doc and parses it to generate corresponding csv file mentioned previously. However, there's a problem. Currently this tool can't parse properly the latest documentation with added AMX commands, due to the unhandled header.
To add AMX commands I first need to fix this parser (which I will work on). Do I need to create a separate issue for it, or I can fix it as part of this one? CC: @cherrymui |
Change https://go.dev/cl/510555 mentions this issue: |
Hey @cherrymui, any chance you can give it a look? It should become pretty straightforward, after we will sort out the PR mentioned above. |
Added instructions: LDTILECFG, STTILECFG, TDPBF16PS, TDPBSSD, TDPBSUD, TDPBUSD, TDPBUUD, TILELOADD, TILELOADDT1, TILESTORED Fixes: golang#61079
Change https://go.dev/cl/516277 mentions this issue: |
I've created an initial PR, however there's a number of questions, which had to be resolved before it will be ready, so it will take some time. I will ask questions in gerrit. |
Added instructions LDTILECFG, STTILECFG, TDPBF16PS, TDPBSSD, TDPBSUD, TDPBUSD, TDPBUUD, TILELOADD, TILELOADDT1, TILESTORED Fixes: golang#61079
The Go assembler (shipped with 1.20.5) currently lacks support for Advanced Matrix Extensions (AMX), particularly the sub-extensions AMX-TILE, AMX-INT8, and AMX-BF16.
As a workaround, we have been using byte sequences to generate the required instructions. However, for the sake of our mental stability, we would love to use proper instructions. @golang/compiler could you please add these 12 AMX instructions.
The text was updated successfully, but these errors were encountered: