74 lines
3.1 KiB
ReStructuredText
74 lines
3.1 KiB
ReStructuredText
.. Licensed to the Apache Software Foundation (ASF) under one
|
|
or more contributor license agreements. See the NOTICE file
|
|
distributed with this work for additional information
|
|
regarding copyright ownership. The ASF licenses this file
|
|
to you under the Apache License, Version 2.0 (the
|
|
"License"); you may not use this file except in compliance
|
|
with the License. You may obtain a copy of the License at
|
|
|
|
.. http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
.. Unless required by applicable law or agreed to in writing,
|
|
software distributed under the License is distributed on an
|
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
KIND, either express or implied. See the License for the
|
|
specific language governing permissions and limitations
|
|
under the License.
|
|
|
|
|
|
TVM Errors
|
|
==========
|
|
|
|
TVM may raise errors from Python code, from C++ code reached through the
|
|
FFI, or from generated runtime modules. Error messages usually include
|
|
a Python stack trace, and may also include a C++ stack trace when the
|
|
error crosses the TVM FFI boundary.
|
|
|
|
Some errors report invalid user input, unsupported operators, missing
|
|
runtime features, or unavailable hardware. Others report a failed
|
|
internal check, usually raised by ``TVM_FFI_ICHECK`` or
|
|
``TVM_FFI_THROW`` in C++ code. Internal check failures often indicate
|
|
that TVM reached a state that the implementation did not expect.
|
|
|
|
What to Check First
|
|
-------------------
|
|
|
|
- Make sure the TVM Python package and native libraries come from the
|
|
same build. A common symptom of a mismatched environment is importing
|
|
Python files from one checkout while loading ``libtvm`` from another.
|
|
- Check that the required runtime is enabled in ``config.cmake``. For
|
|
example, CUDA tests and CUDA compilation require a TVM build with
|
|
CUDA support enabled.
|
|
- Check that the target hardware is available to the process. GPU
|
|
tests may be skipped or fail if the device is not visible inside the
|
|
current container or environment.
|
|
- If the error occurs while importing or converting a model, reduce the
|
|
input to the smallest model, operator, or shape that reproduces the
|
|
issue.
|
|
|
|
Reporting an Issue
|
|
------------------
|
|
|
|
Search the `Apache TVM Discuss Forum <https://discuss.tvm.apache.org/>`_
|
|
and the `TVM issue tracker <https://github.com/apache/tvm/issues>`_
|
|
for the exact error message first. If you do not find an existing
|
|
report, include the following details when starting a new discussion or
|
|
filing an issue:
|
|
|
|
- The TVM version or git commit hash.
|
|
- The Python version, operating system, and hardware.
|
|
- The target and runtime being used, such as LLVM, CUDA, Vulkan, or RPC.
|
|
- The relevant build configuration from ``config.cmake``.
|
|
- A minimal script, model, input shape, or IR module that reproduces the
|
|
failure.
|
|
- The full error message, including both Python and C++ stack traces
|
|
when present.
|
|
|
|
Developer Notes
|
|
---------------
|
|
|
|
For guidance on raising typed errors from TVM code, see
|
|
:ref:`error-handling-guide`. That guide covers when to use specific
|
|
error types, how C++ error prefixes map to Python exceptions, and how
|
|
``TVM_FFI_ICHECK`` interacts with TVM's error handling.
|