Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash with error happend during compilatio in jt.nn.max_pool3d/max_pool2d #519

Closed
x0w3n opened this issue May 8, 2024 · 0 comments
Closed

Comments

@x0w3n
Copy link

x0w3n commented May 8, 2024

Describe the bug

Crash occurs when passing unexpected values to jittor's jt.nn.max_pool3d/max_pool2d, such as kernel_size=-1,stride=-1, resulting in error happend during compilatio.

Full Log

max_pool2d:

[i 0508 13:41:22.394176 64 compiler.py:956] Jittor(1.3.9.6) src: /jittor/python/jittor
[i 0508 13:41:22.396759 64 compiler.py:957] g++ at /usr/bin/g++(8.3.0)
[i 0508 13:41:22.396815 64 compiler.py:958] cache_path: /root/.cache/jittor/jt1.3.9/g++8.3.0/py3.7.4/Linux-5.15.153x56/13thGenIntelRCx56/8c5a/master
[i 0508 13:41:22.400760 64 __init__.py:412] Found addr2line(2.31.1) at /usr/bin/addr2line.
[i 0508 13:41:22.626378 64 __init__.py:227] Total mem: 15.43GB, using 5 procs for compiling.
[i 0508 13:41:22.699519 64 jit_compiler.cc:28] Load cc_path: /usr/bin/g++
Traceback (most recent call last):
  File "test.py", line 8, in <module>
    a = jt.nn.max_pool2d(x=jt.random((1,3,3,5)),kernel_size=-1,stride=-1,padding=-1) # crash
  File "/jittor/python/jittor/pool.py", line 551, in max_pool2d
    return MaxPool2d(kernel_size, stride, padding, dilation, return_indices, ceil_mode)(x)
  File "/jittor/python/jittor/__init__.py", line 1184, in __call__
    return self.execute(*args, **kw)
  File "/jittor/python/jittor/pool.py", line 541, in execute
    return self._layer(x)
  File "/jittor/python/jittor/__init__.py", line 1184, in __call__
    return self.execute(*args, **kw)
  File "/jittor/python/jittor/pool.py", line 176, in execute
    '''])
RuntimeError: Wrong inputs arguments, Please refer to examples(help(jt.ops.code)).

Types of your inputs are:
 self   = module,
 args   = (list, NanoString, list, ),
 kwargs = {cuda_header=str, cuda_src=str, cuda_grad_src=list, cpu_header=str, cpu_src=str, cpu_grad_src=list, },

The function declarations are:
 VarHolder* code(NanoVector shape,  NanoString dtype, vector<VarHolder*>&& inputs={},  string&& cpu_src="",  vector<string>&& cpu_grad_src={},  string&& cpu_header="",  string&& cuda_src="",  vector<string>&& cuda_grad_src={},  string&& cuda_header="",  DataMap&& data={})
 vector_to_tuple<VarHolder*> code_(vector<NanoVector>&& shapes,  vector<NanoString>&& dtypes, vector<VarHolder*>&& inputs={},  string&& cpu_src="",  vector<string>&& cpu_grad_src={},  string&& cpu_header="",  string&& cuda_src="",  vector<string>&& cuda_grad_src={},  string&& cuda_header="",  DataMap&& data={})
 vector_to_tuple<VarHolder*> code__(vector<VarHolder*>&& inputs, vector<VarHolder*>&& outputs,  string&& cpu_src="",  vector<string>&& cpu_grad_src={},  string&& cpu_header="",  string&& cuda_src="",  vector<string>&& cuda_grad_src={},  string&& cuda_header="",  DataMap&& data={})

Failed reason:[f 0508 13:41:22.832308 64 code_op.cc:25] Check failed: (i == 0) ^ (v[i] >= 0)  Something wrong... Could you please report this issue?
 Vary shape should only occur in the first dimension: [1,3,-1,-3,]

max_pool3d:

[i 0508 13:42:09.968239 08 compiler.py:956] Jittor(1.3.9.6) src: /jittor/python/jittor
[i 0508 13:42:09.971688 08 compiler.py:957] g++ at /usr/bin/g++(8.3.0)
[i 0508 13:42:09.971747 08 compiler.py:958] cache_path: /root/.cache/jittor/jt1.3.9/g++8.3.0/py3.7.4/Linux-5.15.153x56/13thGenIntelRCx56/8c5a/master
[i 0508 13:42:09.976544 08 __init__.py:412] Found addr2line(2.31.1) at /usr/bin/addr2line.
[i 0508 13:42:10.198135 08 __init__.py:227] Total mem: 15.43GB, using 5 procs for compiling.
[i 0508 13:42:10.271802 08 jit_compiler.cc:28] Load cc_path: /usr/bin/g++
Traceback (most recent call last):
  File "test.py", line 7, in <module>
    a = jt.nn.max_pool3d(x=jt.random((1,3,3,5,5)),kernel_size=-1,stride=-1,padding=-1) # crash
  File "/jittor/python/jittor/pool.py", line 555, in max_pool3d
    return MaxPool3d(kernel_size, stride, padding, dilation, return_indices, ceil_mode)(x)
  File "/jittor/python/jittor/__init__.py", line 1184, in __call__
    return self.execute(*args, **kw)
  File "/jittor/python/jittor/pool.py", line 548, in execute
    return self._layer(x)
  File "/jittor/python/jittor/__init__.py", line 1184, in __call__
    return self.execute(*args, **kw)
  File "/jittor/python/jittor/pool.py", line 373, in execute
    '''])
RuntimeError: Wrong inputs arguments, Please refer to examples(help(jt.ops.code)).

Types of your inputs are:
 self   = module,
 args   = (list, NanoString, list, ),
 kwargs = {cuda_header=str, cuda_src=str, cuda_grad_src=list, cpu_header=str, cpu_src=str, cpu_grad_src=list, },

The function declarations are:
 VarHolder* code(NanoVector shape,  NanoString dtype, vector<VarHolder*>&& inputs={},  string&& cpu_src="",  vector<string>&& cpu_grad_src={},  string&& cpu_header="",  string&& cuda_src="",  vector<string>&& cuda_grad_src={},  string&& cuda_header="",  DataMap&& data={})
 vector_to_tuple<VarHolder*> code_(vector<NanoVector>&& shapes,  vector<NanoString>&& dtypes, vector<VarHolder*>&& inputs={},  string&& cpu_src="",  vector<string>&& cpu_grad_src={},  string&& cpu_header="",  string&& cuda_src="",  vector<string>&& cuda_grad_src={},  string&& cuda_header="",  DataMap&& data={})
 vector_to_tuple<VarHolder*> code__(vector<VarHolder*>&& inputs, vector<VarHolder*>&& outputs,  string&& cpu_src="",  vector<string>&& cpu_grad_src={},  string&& cpu_header="",  string&& cuda_src="",  vector<string>&& cuda_grad_src={},  string&& cuda_header="",  DataMap&& data={})

Failed reason:[f 0508 13:42:10.419155 08 code_op.cc:25] Check failed: (i == 0) ^ (v[i] >= 0)  Something wrong... Could you please report this issue?
 Vary shape should only occur in the first dimension: [1,3,-1,-3,-3,]

Minimal Reproduce

import jittor as jt
from jittor import *
max_pool3d = jt.nn.max_pool3d(x=jt.random((1,3,3,5,5)),kernel_size=-1,stride=-1,padding=-1) # crash
# max_pool2d = jt.nn.max_pool2d(x=jt.random((1,3,3,5)),kernel_size=-1,stride=-1,padding=-1) # crash

Expected behavior

The main reason for these crashes may be that the same underlying processing function of the pool does not do boundary detection for kernel_size, stride=, etc.

@x0w3n x0w3n changed the title Crash with error happend during compilatio in jt.nn.max_pool3d/max_pool2d Crash with error happend during compilatio in jt.nn.max_pool3d/max_pool2d May 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants