Undefined symbol while compiling runtime for MediaTek
Hello, during compilation for MediaTek I'm receiving following issue:
ld.lld: error: undefined symbol: torch::executor::neuron::BufferAllocator::Find(void*)
>>> referenced by NeuronBackend.cpp:132 (/Users/nono/dev/executorch/backends/mediatek/runtime/NeuronBackend.cpp:132)
>>> CMakeFiles/neuron_backend.dir/runtime/NeuronBackend.cpp.o:(executorch::backends::neuron::NeuronExecuTorchDelegate::execute(executorch::runtime::BackendExecutionContext&, executorch::runtime::EValue**) const)
>>> referenced by NeuronBackend.cpp:150 (/Users/nono/dev/executorch/backends/mediatek/runtime/NeuronBackend.cpp:150)
>>> CMakeFiles/neuron_backend.dir/runtime/NeuronBackend.cpp.o:(executorch::backends::neuron::NeuronExecuTorchDelegate::execute(executorch::runtime::BackendExecutionContext&, executorch::runtime::EValue**) const)
>>> referenced by NeuronBackend.cpp:175 (/Users/nono/dev/executorch/backends/mediatek/runtime/NeuronBackend.cpp:175)
>>> CMakeFiles/neuron_backend.dir/runtime/NeuronBackend.cpp.o:(executorch::backends::neuron::NeuronExecuTorchDelegate::HintNeuronBackend(executorch::runtime::EValue**) const)
>>> referenced 1 more times
ld.lld: error: undefined symbol: torch::executor::neuron::BufferAllocator::GetInstance()
>>> referenced by NeuronBackend.cpp:168 (/Users/nono/dev/executorch/backends/mediatek/runtime/NeuronBackend.cpp:168)
I did all steps as described in the README. Is there any problem I miss? Thank you for help!
cc @cccclai @neuropilot-captain @cbilgin
@cccclai who is a good contact from mediatek for this?
I found this error too, mark the issue.
Can someone point me to a specific commit hash or tag of the ExecuTorch repository that is known to work with the MediaTek SDK / backend?
I've been trying to run the provided LLaMA demo and build the MediaTek flow, but I haven’t been able to find a version that actually works end-to-end without errors.
Thanks in advance! 🙏
@neuropilot-captain can you have a look?
I've noticed that this error has also been reported on Discord, indicating it may be a widespread issue. Is there any chance it will be resolved soon?
Can somebody answer? Mediatek backend is not runnable in current Executorch and with current Neuropilot SDK.
Sorry for the inconvenience, just pinged @neuropilot-captain again to take a look
Hi @micpod, it seems to be a library compatibility issue. We are working on a PR to access the latest buffer allocator: https://github.com/pytorch/executorch/pull/8760, and will be merged very soon. Thanks!