Skip to content
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

[LLVM][AMDGPU] Isel error for %llvm.amdgcn.wmma.f16.16x16x16.f16 for GFX1100. #102981

Closed
nirvedhmeshram opened this issue Aug 12, 2024 · 3 comments
Labels
backend:AMDGPU crash Prefer [crash-on-valid] or [crash-on-invalid] llvm:SelectionDAG SelectionDAGISel as well question A question, not bug report. Check out https://llvm.org/docs/GettingInvolved.html instead!

Comments

@nirvedhmeshram
Copy link
Contributor

nirvedhmeshram commented Aug 12, 2024

The input ll file is provided here. It gives the following bug (I will update the dump with debug symbols once I have it)

llc wmma.ll -march=amdgcn -mcpu=gfx1100
LLVM ERROR: Cannot select: intrinsic %llvm.amdgcn.wmma.f16.16x16x16.f16
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: ./llvm-project/bin/llc wmma.ll -march=amdgcn -mcpu=gfx1100
1.      Running pass 'CallGraph Pass Manager' on module 'wmma.ll'.
2.      Running pass 'AMDGPU DAG->DAG Pattern Instruction Selection' on function '@matmul_dispatch_0_matmul_16x16x16_f16'
 #0 0x00005dc15c6eeee7 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (./llvm-project/bin/llc+0x23bcee7)
 #1 0x00005dc15c6ecd1e llvm::sys::RunSignalHandlers() (./llvm-project/bin/llc+0x23bad1e)
 #2 0x00005dc15c6ef5ba SignalHandler(int) Signals.cpp:0:0
 #3 0x00007b1748442520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007b17484969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #5 0x00007b1748442476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #6 0x00007b17484287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #7 0x00005dc15c66e883 llvm::report_fatal_error(llvm::Twine const&, bool) (./llvm-project/bin/llc+0x233c883)
 #8 0x00005dc15c536ba2 (./llvm-project/bin/llc+0x2204ba2)
 #9 0x00005dc15c5360d5 (./llvm-project/bin/llc+0x22040d5)
#10 0x00005dc15b471b14 AMDGPUDAGToDAGISel::SelectINTRINSIC_WO_CHAIN(llvm::SDNode*) (./llvm-project/bin/llc+0x113fb14)
#11 0x00005dc15c52cfec llvm::SelectionDAGISel::DoInstructionSelection() (./llvm-project/bin/llc+0x21fafec)
#12 0x00005dc15c52c6e7 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (./llvm-project/bin/llc+0x21fa6e7)
#13 0x00005dc15c52b330 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (./llvm-project/bin/llc+0x21f9330)
#14 0x00005dc15c529c40 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (./llvm-project/bin/llc+0x21f7c40)
#15 0x00005dc15b46d94d AMDGPUDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) (./llvm-project/bin/llc+0x113b94d)
#16 0x00005dc15c5285fe llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (./llvm-project/bin/llc+0x21f65fe)
#17 0x00005dc15badea10 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (./llvm-project/bin/llc+0x17aca10)
#18 0x00005dc15bf21d94 llvm::FPPassManager::runOnFunction(llvm::Function&) (./llvm-project/bin/llc+0x1befd94)
#19 0x00005dc15b72a772 (anonymous namespace)::CGPassManager::runOnModule(llvm::Module&) CallGraphSCCPass.cpp:0:0
#20 0x00005dc15bf22afc llvm::legacy::PassManagerImpl::run(llvm::Module&) (./llvm-project/bin/llc+0x1bf0afc)
#21 0x00005dc15a917b77 main (./llvm-project/bin/llc+0x5e5b77)
#22 0x00007b1748429d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#23 0x00007b1748429e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#24 0x00005dc15a9121c5 _start (./llvm-project/bin/llc+0x5e01c5)
Aborted (core dumped)
@llvmbot
Copy link
Collaborator

llvmbot commented Aug 12, 2024

@llvm/issue-subscribers-backend-amdgpu

Author: Nirvedh Meshram (nirvedhmeshram)

The input ll file is provided [here](https://gist.github.com/nirvedhmeshram/dee07c32b15db2920570878cbec6af35). It gives the following bug (I will update the dump with debug symbols once I have it) ``` llc wmma.ll -march=amdgcn -mcpu=gfx1100 ``` ``` LLVM ERROR: Cannot select: intrinsic %llvm.amdgcn.wmma.f16.16x16x16.f16 PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace. Stack dump: 0. Program arguments: ./llvm-project/bin/llc wmma.ll -march=amdgcn -mcpu=gfx1100 1. Running pass 'CallGraph Pass Manager' on module 'wmma.ll'. 2. Running pass 'AMDGPU DAG->DAG Pattern Instruction Selection' on function '@matmul_dispatch_0_matmul_16x16x16_f16' #0 0x00005dc15c6eeee7 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (./llvm-project/bin/llc+0x23bcee7) #1 0x00005dc15c6ecd1e llvm::sys::RunSignalHandlers() (./llvm-project/bin/llc+0x23bad1e) #2 0x00005dc15c6ef5ba SignalHandler(int) Signals.cpp:0:0 #3 0x00007b1748442520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520) #4 0x00007b17484969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc) #5 0x00007b1748442476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476) #6 0x00007b17484287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3) #7 0x00005dc15c66e883 llvm::report_fatal_error(llvm::Twine const&, bool) (./llvm-project/bin/llc+0x233c883) #8 0x00005dc15c536ba2 (./llvm-project/bin/llc+0x2204ba2) #9 0x00005dc15c5360d5 (./llvm-project/bin/llc+0x22040d5) #10 0x00005dc15b471b14 AMDGPUDAGToDAGISel::SelectINTRINSIC_WO_CHAIN(llvm::SDNode*) (./llvm-project/bin/llc+0x113fb14) #11 0x00005dc15c52cfec llvm::SelectionDAGISel::DoInstructionSelection() (./llvm-project/bin/llc+0x21fafec) #12 0x00005dc15c52c6e7 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (./llvm-project/bin/llc+0x21fa6e7) #13 0x00005dc15c52b330 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (./llvm-project/bin/llc+0x21f9330) #14 0x00005dc15c529c40 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (./llvm-project/bin/llc+0x21f7c40) #15 0x00005dc15b46d94d AMDGPUDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) (./llvm-project/bin/llc+0x113b94d) #16 0x00005dc15c5285fe llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (./llvm-project/bin/llc+0x21f65fe) #17 0x00005dc15badea10 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (./llvm-project/bin/llc+0x17aca10) #18 0x00005dc15bf21d94 llvm::FPPassManager::runOnFunction(llvm::Function&) (./llvm-project/bin/llc+0x1befd94) #19 0x00005dc15b72a772 (anonymous namespace)::CGPassManager::runOnModule(llvm::Module&) CallGraphSCCPass.cpp:0:0 #20 0x00005dc15bf22afc llvm::legacy::PassManagerImpl::run(llvm::Module&) (./llvm-project/bin/llc+0x1bf0afc) #21 0x00005dc15a917b77 main (./llvm-project/bin/llc+0x5e5b77) #22 0x00007b1748429d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90) #23 0x00007b1748429e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40) #24 0x00005dc15a9121c5 _start (./llvm-project/bin/llc+0x5e01c5) Aborted (core dumped) ```

@nirvedhmeshram nirvedhmeshram changed the title [LLVM][AMDGCN] Isel error for %llvm.amdgcn.wmma.f16.16x16x16.f16 for GFX1100. [LLVM][AMDGPU] Isel error for %llvm.amdgcn.wmma.f16.16x16x16.f16 for GFX1100. Aug 12, 2024
@nirvedhmeshram
Copy link
Contributor Author

closing this as I see the issue is that we need -mattr=+wavefrontsize64 that the front end did not provide. With that the IR passes

@EugeneZelenko EugeneZelenko added the question A question, not bug report. Check out https://llvm.org/docs/GettingInvolved.html instead! label Aug 12, 2024
@arsenm
Copy link
Contributor

arsenm commented Aug 13, 2024

There are separate wave32 and wave64 patterns but I think both should work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend:AMDGPU crash Prefer [crash-on-valid] or [crash-on-invalid] llvm:SelectionDAG SelectionDAGISel as well question A question, not bug report. Check out https://llvm.org/docs/GettingInvolved.html instead!
Projects
None yet
Development

No branches or pull requests

4 participants