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
vmvx: error: failed to legalize operation 'memref.alloca' that was explicitly marked illegal #9155
Comments
This is an argmin/max op. It's a dup of #8899 We will need a stack allocation, which is bounded. Other backends allocate bounded static buffer to work it around. For vmvx, I think we're not going to make vmvx accept stack allocation. For now there is no way around it. |
Hmm... that kind of defeats the purpose of VMVX being a reference backend... will bring this up. |
vmvx can easily handle stack allocs like this |
https://github.com/google/iree/blob/41a2cebe9560fda8a3ef171bb2dd5f51434897f2/compiler/src/iree/compiler/Dialect/VM/Conversion/MemRefToVM/ConvertMemRefToVM.cpp |
cool, if we accept bounded stack allocs for vmvx backend, I can take a look at it. |
Workgroup local memory is always going to be better (on all implementations), but that's a bigger change - having memref.alloc/alloca -> vm.buffer.alloc is always useful though and I think that'd unblock all this. |
Describe the bug
error: failed to legalize operation 'memref.alloca' that was explicitly marked illegal
FYI, the reproducer is the same as in #9126 cc @hanhanW for insights.
Full log: https://gist.github.com/silvasean/72957031fea1be083f0172508f94358b
Note: this blocks running BERT on IREE's vmvx backend!
To Reproduce
The text was updated successfully, but these errors were encountered: