Spaces:
Running
Running
Janne Hellsten
commited on
Commit
·
2506395
1
Parent(s):
386669a
Print better error message for the dreaded upfirdn2d_plugin problem
Browse filesPrint full traceback when custom extension build fails.
Also allow pytorch 1.9 so that this runs against pytorch upstream
devel builds.
issues #2, #28, #35, #37, #39
torch_utils/ops/bias_act.py
CHANGED
|
@@ -9,11 +9,11 @@
|
|
| 9 |
"""Custom PyTorch ops for efficient bias and activation."""
|
| 10 |
|
| 11 |
import os
|
| 12 |
-
import sys
|
| 13 |
import warnings
|
| 14 |
import numpy as np
|
| 15 |
import torch
|
| 16 |
import dnnlib
|
|
|
|
| 17 |
|
| 18 |
from .. import custom_ops
|
| 19 |
from .. import misc
|
|
@@ -47,7 +47,7 @@ def _init():
|
|
| 47 |
try:
|
| 48 |
_plugin = custom_ops.get_plugin('bias_act_plugin', sources=sources, extra_cuda_cflags=['--use_fast_math'])
|
| 49 |
except:
|
| 50 |
-
warnings.warn('Failed to build CUDA kernels for bias_act. Falling back to slow reference implementation. Details:\n\n' +
|
| 51 |
return _plugin is not None
|
| 52 |
|
| 53 |
#----------------------------------------------------------------------------
|
|
|
|
| 9 |
"""Custom PyTorch ops for efficient bias and activation."""
|
| 10 |
|
| 11 |
import os
|
|
|
|
| 12 |
import warnings
|
| 13 |
import numpy as np
|
| 14 |
import torch
|
| 15 |
import dnnlib
|
| 16 |
+
import traceback
|
| 17 |
|
| 18 |
from .. import custom_ops
|
| 19 |
from .. import misc
|
|
|
|
| 47 |
try:
|
| 48 |
_plugin = custom_ops.get_plugin('bias_act_plugin', sources=sources, extra_cuda_cflags=['--use_fast_math'])
|
| 49 |
except:
|
| 50 |
+
warnings.warn('Failed to build CUDA kernels for bias_act. Falling back to slow reference implementation. Details:\n\n' + traceback.format_exc())
|
| 51 |
return _plugin is not None
|
| 52 |
|
| 53 |
#----------------------------------------------------------------------------
|
torch_utils/ops/conv2d_gradfix.py
CHANGED
|
@@ -50,7 +50,7 @@ def _should_use_custom_op(input):
|
|
| 50 |
return False
|
| 51 |
if input.device.type != 'cuda':
|
| 52 |
return False
|
| 53 |
-
if any(torch.__version__.startswith(x) for x in ['1.7.', '1.8.']):
|
| 54 |
return True
|
| 55 |
warnings.warn(f'conv2d_gradfix not supported on PyTorch {torch.__version__}. Falling back to torch.nn.functional.conv2d().')
|
| 56 |
return False
|
|
|
|
| 50 |
return False
|
| 51 |
if input.device.type != 'cuda':
|
| 52 |
return False
|
| 53 |
+
if any(torch.__version__.startswith(x) for x in ['1.7.', '1.8.', '1.9']):
|
| 54 |
return True
|
| 55 |
warnings.warn(f'conv2d_gradfix not supported on PyTorch {torch.__version__}. Falling back to torch.nn.functional.conv2d().')
|
| 56 |
return False
|
torch_utils/ops/grid_sample_gradfix.py
CHANGED
|
@@ -34,7 +34,7 @@ def grid_sample(input, grid):
|
|
| 34 |
def _should_use_custom_op():
|
| 35 |
if not enabled:
|
| 36 |
return False
|
| 37 |
-
if any(torch.__version__.startswith(x) for x in ['1.7.', '1.8.']):
|
| 38 |
return True
|
| 39 |
warnings.warn(f'grid_sample_gradfix not supported on PyTorch {torch.__version__}. Falling back to torch.nn.functional.grid_sample().')
|
| 40 |
return False
|
|
|
|
| 34 |
def _should_use_custom_op():
|
| 35 |
if not enabled:
|
| 36 |
return False
|
| 37 |
+
if any(torch.__version__.startswith(x) for x in ['1.7.', '1.8.', '1.9']):
|
| 38 |
return True
|
| 39 |
warnings.warn(f'grid_sample_gradfix not supported on PyTorch {torch.__version__}. Falling back to torch.nn.functional.grid_sample().')
|
| 40 |
return False
|
torch_utils/ops/upfirdn2d.py
CHANGED
|
@@ -9,10 +9,10 @@
|
|
| 9 |
"""Custom PyTorch ops for efficient resampling of 2D images."""
|
| 10 |
|
| 11 |
import os
|
| 12 |
-
import sys
|
| 13 |
import warnings
|
| 14 |
import numpy as np
|
| 15 |
import torch
|
|
|
|
| 16 |
|
| 17 |
from .. import custom_ops
|
| 18 |
from .. import misc
|
|
@@ -31,7 +31,7 @@ def _init():
|
|
| 31 |
try:
|
| 32 |
_plugin = custom_ops.get_plugin('upfirdn2d_plugin', sources=sources, extra_cuda_cflags=['--use_fast_math'])
|
| 33 |
except:
|
| 34 |
-
warnings.warn('Failed to build CUDA kernels for upfirdn2d. Falling back to slow reference implementation. Details:\n\n' +
|
| 35 |
return _plugin is not None
|
| 36 |
|
| 37 |
def _parse_scaling(scaling):
|
|
|
|
| 9 |
"""Custom PyTorch ops for efficient resampling of 2D images."""
|
| 10 |
|
| 11 |
import os
|
|
|
|
| 12 |
import warnings
|
| 13 |
import numpy as np
|
| 14 |
import torch
|
| 15 |
+
import traceback
|
| 16 |
|
| 17 |
from .. import custom_ops
|
| 18 |
from .. import misc
|
|
|
|
| 31 |
try:
|
| 32 |
_plugin = custom_ops.get_plugin('upfirdn2d_plugin', sources=sources, extra_cuda_cflags=['--use_fast_math'])
|
| 33 |
except:
|
| 34 |
+
warnings.warn('Failed to build CUDA kernels for upfirdn2d. Falling back to slow reference implementation. Details:\n\n' + traceback.format_exc())
|
| 35 |
return _plugin is not None
|
| 36 |
|
| 37 |
def _parse_scaling(scaling):
|