Я создал MLIR, следуя оригинальным инструкциям, и следовал игрушечному руководству, чтобы изучить основы. Я попытался добавить диалекты Tensor и Linalg в реестр контекста в репозитории учебников по игрушкам, чтобы использовать инструмент toy-opt для сокращения кода, например
Код: Выделить всё
func.func @main() {
%static_tensor = tensor.empty() : tensor
return
}
чтобы проверить, доступны ли тензорный диалект и линалг, но я всегда получаю такие ошибки, как:
Код: Выделить всё
loc("./test/Engine/tensorLinalg.mlir":11:35): error: expected ':'
Error can't load file ./test/Engine/tensorLinalg.mlir
lli: Symbols not found: [ main ]
Поэтому я попробовал использовать mlir-opt в репозитории mlir внутри llvm-project, но кажется, что диалекты, перечисленные на странице mlir (
https://mlir.llvm.org/docs /Диалекты/) по умолчанию не регистрируются:
Код: Выделить всё
test_llvm.mlir:3:10: error: Dialect `tensor' not found for custom op 'tensor.empty'
%0 = tensor.empty() : tensor
^
test_llvm.mlir:3:10: note: Registered dialects: acc, amx, arm_neon, arm_sme, arm_sve, builtin, dlti, func, gpu, llvm, nvvm, omp, rocdl, spirv, vcix, x86vector ; for more info on dialect registration see https://mlir.llvm.org/getting_started/Faq/#registered-loaded-dependent-whats-up-with-dialects-management
Я хочу использовать только диалекты arith, memref, linalg и тензорные, из которых arith и memref я уже могу использовать, и опустить их до llvm. Есть ли какой-нибудь доступный проект, который может помочь мне с шаблоном? Любая помощь будет принята с благодарностью.
Подробнее здесь:
https://stackoverflow.com/questions/793 ... ect-tensor