Hi! I have been studying how TVM works and I tried out this
(https://github.com/apache/incubator-tvm/blob/master/tutorials/autotvm/tune_simple_template.py)
tutorial example from the website and it seems like running this example with
cuda (or OpenCL) produces errors like:
> Cannot find config for target=cuda -keys=cuda,gpu -max_num_threads=1024
> -thread_warp_size=32, workload=('tutorial/matmul', 512, 512, 512, 'float32').
> A fallback configuration is used, which may bring great performance
> regression.
> Traceback (most recent call last):
> File "tune_simple_template.py", line 321, in <module>
> func = tvm.build(s, arg_bufs)
> File
> "/root/.local/lib/python3.6/site-packages/tvm-0.8.dev0-py3.6-linux-x86_64.egg/tvm/driver/build_module.py",
> line 413, in build
> mod_host, mdev = _build_for_device(input_mod, tar, target_host)
> File
> "/root/.local/lib/python3.6/site-packages/tvm-0.8.dev0-py3.6-linux-x86_64.egg/tvm/driver/build_module.py",
> line 255, in _build_for_device
> mod_mixed = tvm.transform.Sequential(opt_mixed)(mod_mixed)
> File
> "/root/.local/lib/python3.6/site-packages/tvm-0.8.dev0-py3.6-linux-x86_64.egg/tvm/ir/transform.py",
> line 127, in __call__
> return _ffi_transform_api.RunPass(self, mod)
> File "tvm/_ffi/_cython/./packed_func.pxi", line 321, in
> tvm._ffi._cy3.core.PackedFuncBase.__call__
> File "tvm/_ffi/_cython/./packed_func.pxi", line 256, in
> tvm._ffi._cy3.core.FuncCall
> File "tvm/_ffi/_cython/./packed_func.pxi", line 245, in
> tvm._ffi._cy3.core.FuncCall3
> File "tvm/_ffi/_cython/./base.pxi", line 160, in tvm._ffi._cy3.core.CALL
> tvm._ffi.base.TVMError: Traceback (most recent call last):
> [bt] (5)
> /root/.local/lib/python3.6/site-packages/tvm-0.8.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(TVMFuncCall+0x65)
> [0x7f0f613a6035]
> [bt] (4)
> /root/.local/lib/python3.6/site-packages/tvm-0.8.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x6d4af6)
> [0x7f0f6097caf6]
> [bt] (3)
> /root/.local/lib/python3.6/site-packages/tvm-0.8.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(tvm::transform::SequentialNode::operator()(tvm::IRModule,
> tvm::transform::PassContext const&) const+0x2c8) [0x7f0f6097b8f8]
> [bt] (2)
> /root/.local/lib/python3.6/site-packages/tvm-0.8.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(tvm::transform::ModulePassNode::operator()(tvm::IRModule,
> tvm::transform::PassContext const&) const+0x12f) [0x7f0f6097c5af]
> [bt] (1)
> /root/.local/lib/python3.6/site-packages/tvm-0.8.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x8c352d)
> [0x7f0f60b6b52d]
> [bt] (0)
> /root/.local/lib/python3.6/site-packages/tvm-0.8.dev0-py3.6-linux-x86_64.egg/tvm/libtvm.so(+0x8c00a2)
> [0x7f0f60b680a2]
> Did you forget to bind?
> Variable `B` is directly accessed by host memory (it is not contained in
> a thread environment or in the function arguments.
> Variable `A` is directly accessed by host memory (it is not contained in
> a thread environment or in the function arguments.
> Variable `C` is directly accessed by host memory (it is not contained in
> a thread environment or in the function arguments.
> Variable `C` is directly accessed by host memory (it is not contained in
> a thread environment or in the function arguments.
> Variable `C` is directly accessed by host memory (it is not contained in
> a thread environment or in the function arguments.
> File "/local/incubator-tvm/src/tir/analysis/verify_memory.cc", line 202
> RuntimeError: Memory verification failed with the following errors:
> PrimFunc([A, B, C]) attrs={"global_symbol": "default_function",
> "tir.noalias": (bool)1, "target": cuda -keys=cuda,gpu -max_num_threads=1024
> -thread_warp_size=32} {
> for (i.outer, 0, 512) {
> for (j.outer, 0, 512) {
> C[((i.outer*512) + j.outer)] = 0f
> for (k, 0, 512) {
> C[((i.outer*512) + j.outer)] = (C[((i.outer*512) + j.outer)] +
> (A[((i.outer*512) + k)]*B[((k*512) + j.outer)]))
> }
> }
> }
> }
Is there any quick fix I can modify to demonstrating GEMM optimization on GPUs?
Any pointers are approciated!
---
[Visit
Topic](https://discuss.tvm.apache.org/t/matrix-multiplication-example-for-cuda/8078/1)
to respond.
You are receiving this because you enabled mailing list mode.
To unsubscribe from these emails, [click
here](https://discuss.tvm.apache.org/email/unsubscribe/853c06aa2161169cfea056557ee02a01597746f6f40b5e624b4f797577f80922).