Hi everyone,
I've isolated what appears to be a reproducible DirectML backend issue involving channel-wise PReLU.
Environment
Minimal behaviour
CPU:
- ReLU ✔
- LeakyReLU ✔
- SiLU ✔
- Sigmoid ✔
- Tanh ✔
- PReLU(num_parameters=1) ✔
- PReLU(num_parameters=2) ✔
DirectML:
- ReLU ✔
- LeakyReLU ✔
- SiLU ✔
- Sigmoid ✔
- Tanh ✔
- PReLU(num_parameters=1) ✔
- PReLU(num_parameters=2) ❌ Native crash
The process aborts with
The crash happens before Python can raise an exception.
Isolation steps
I reproduced this
- in a completely fresh Python 3.11 virtual environment,
- without Real-ESRGAN,
- without my instrumentation framework,
- using a standalone minimal reproducer.
The crash consistently occurs when switching from a single PReLU parameter to channel-wise PReLU (num_parameters > 1).
Has anyone seen this before?
Is this a known limitation or a regression in torch-directml?
Any insight would be greatly appreciated.Hi everyone,
I've isolated what appears to be a reproducible DirectML backend issue involving channel-wise PReLU.
Environment
Minimal behaviour
CPU:
- ReLU ✔
- LeakyReLU ✔
- SiLU ✔
- Sigmoid ✔
- Tanh ✔
- PReLU(num_parameters=1) ✔
- PReLU(num_parameters=2) ✔
DirectML:
- ReLU ✔
- LeakyReLU ✔
- SiLU ✔
- Sigmoid ✔
- Tanh ✔
- PReLU(num_parameters=1) ✔
- PReLU(num_parameters=2) ❌ Native crash
The process aborts with
The crash happens before Python can raise an exception.
Isolation steps
I reproduced this
- in a completely fresh Python 3.11 virtual environment,
- without Real-ESRGAN,
- without my instrumentation framework,
- using a standalone minimal reproducer.
The crash consistently occurs when switching from a single PReLU parameter to channel-wise PReLU (num_parameters > 1).
Has anyone seen this before?
Is this a known limitation or a regression in torch-directml?
Any insight would be greatly appreciated.DirectML_PReLU_Bug_Report.txt