the secret is a “<” and a couple of "3.0"s
1.) In ./torch/cuda/init.py#L80 change
if capability == (3, 0) or major < 3:
to
if capability < (3, 0) or major < 3:
- In ./torch/utils/cpp_extension.py#L1522-L1535 change
named_arches = collections.OrderedDict([
('Kepler+Tesla', '3.7'),
('Kepler', '3.5+PTX'),
('Maxwell+Tegra', '5.3'),
('Maxwell', '5.0;5.2+PTX'),
('Pascal', '6.0;6.1+PTX'),
('Volta', '7.0+PTX'),
('Turing', '7.5+PTX'),
('Ampere', '8.0;8.6+PTX'),
])
supported_arches = ['3.5', '3.7', '5.0', '5.2', '5.3', '6.0', '6.1', '6.2',
'7.0', '7.2', '7.5', '8.0', '8.6']
valid_arch_strings = supported_arches + [s + "+PTX" for s in supported_arches]
to
named_arches = collections.OrderedDict([
('Kepler+Tesla', '3.7'),
('Kepler', '3.0;3.5+PTX'),
('Maxwell+Tegra', '5.3'),
('Maxwell', '5.0;5.2+PTX'),
('Pascal', '6.0;6.1+PTX'),
('Volta', '7.0+PTX'),
('Turing', '7.5+PTX'),
('Ampere', '8.0;8.6+PTX'),
])
supported_arches = ['3.0','3.5', '3.7', '5.0', '5.2', '5.3', '6.0', '6.1', '6.2',
'7.0', '7.2', '7.5', '8.0', '8.6']
valid_arch_strings = supported_arches + [s + "+PTX" for s in supported_arches]
Then it works just fine. Tested it this evening myself 