Cookiee235 opened a new issue, #17941:
URL: https://github.com/apache/tvm/issues/17941
Currently, convolution ops (conv1d/conv2d) in the topi namespace can produce
negative output dimensions with certain parameter combinations (e.g. large
kernel/dilation).
However, such invalid behaviours cannot be captured in the `topi` and
`tvm.build`. It seems we should add validation to fail early with clear error
messages when parameters would generate invalid output shapes.
### Actual behavior
```
Traceback (most recent call last):
File
"/data/qshenaf/remote_pc/TirFuzz/bugs/05-01_00-45/topi.nn.conv1d_4.py", line
11, in <module>
tvm.nd.empty(op_output.shape, dtype=op_output.dtype, device=tvm.cpu(0))
# crash
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/qshenaf/envs/tvm/python/tvm/runtime/ndarray.py", line 444, in
empty
arr = _ffi_api.TVMArrayAllocWithScope(shape, dtype, device, mem_scope)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "tvm/_ffi/_cython/./packed_func.pxi", line 339, in
tvm._ffi._cy3.core.PackedFuncBase.__call__
File "tvm/_ffi/_cython/./packed_func.pxi", line 284, in
tvm._ffi._cy3.core.FuncCall
File "tvm/_ffi/_cython/./base.pxi", line 185, in
tvm._ffi._cy3.core.CHECK_CALL
File "/data/qshenaf/envs/tvm/python/tvm/_ffi/base.py", line 468, in
raise_last_ffi_error
raise py_err
tvm._ffi.base.TVMError: std: :bad_alloc
```
### Environment
Any environment details, such as: Operating System, TVM version, etc
### Steps to reproduce
```
import tvm
from tvm import te, topi, tir
data = te.placeholder((4, 2048, 32), dtype='int8', name='data')
kernel = te.placeholder((3, 2048, 1024), dtype='int8', name='kernel')
op_config = {'data': data, 'kernel': kernel, 'strides': (2,), 'padding': 0,
'dilation': 3, 'data_layout': 'NCW', 'kernel_layout': 'OIW', 'out_dtype':
'int32',}
op_output = topi.nn.conv1d(**op_config)
sch = tir.Schedule(te.create_prim_func([data, kernel,
op_output]).with_attr('target', tvm.target.Target('llvm')))
tvm.build(sch.mod) # run well
tvm.nd.empty(op_output.shape, dtype=op_output.dtype, device=tvm.cpu(0)) #
crash
```
### Triage
Please refer to the list of label tags
[here](https://github.com/apache/tvm/wiki/Issue-Triage-Labels) to find the
relevant tags and add them below in a bullet format (example below).
* needs-triage
* topi
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]