Skip to content

Commit

Permalink
[CUDNN] Remove defunct cuDNN V8 API build flag (pytorch#120006)
Browse files Browse the repository at this point in the history
The flag basically does nothing following pytorch#95722

Let's see if the quantization tests break

CC @malfet @atalmanagement

Pull Request resolved: pytorch#120006
Approved by: https://github.com/malfet
  • Loading branch information
eqy authored and pytorchmergebot committed Jun 3, 2024
1 parent 0e7bd7f commit ac568fc
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 28 deletions.
1 change: 0 additions & 1 deletion cmake/Summary.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ function(caffe2_print_configuration_summary)
message(STATUS " Split CUDA : ${BUILD_SPLIT_CUDA}")
message(STATUS " CUDA static link : ${CAFFE2_STATIC_LINK_CUDA}")
message(STATUS " USE_CUDNN : ${USE_CUDNN}")
message(STATUS " USE_EXPERIMENTAL_CUDNN_V8_API: ${USE_EXPERIMENTAL_CUDNN_V8_API}")
message(STATUS " USE_CUSPARSELT : ${USE_CUSPARSELT}")
message(STATUS " CUDA version : ${CUDA_VERSION}")
message(STATUS " USE_FLASH_ATTENTION : ${USE_FLASH_ATTENTION}")
Expand Down
1 change: 0 additions & 1 deletion defs.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ default_compiler_flags = [
"-DTH_INDEX_BASE=0",
"-DMAGMA_V2",
"-DNO_CUDNN_DESTROY_HANDLE",
"-DUSE_EXPERIMENTAL_CUDNN_V8_API", # enable cudnn v8 api
"-DUSE_FBGEMM",
"-DUSE_PYTORCH_QNNPACK",
# The dynamically loaded NVRTC trick doesn't work in fbcode,
Expand Down
49 changes: 23 additions & 26 deletions test/quantization/core/test_quantized_op.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import torch.testing._internal.hypothesis_utils as hu
hu.assert_deadline_disabled()

from torch.testing._internal.common_cuda import SM80OrLater
from torch.testing._internal.common_utils import TestCase
from torch.testing._internal.common_utils import IS_PPC, TEST_WITH_UBSAN, IS_MACOS, BUILD_WITH_CAFFE2, IS_SANDCASTLE
from torch.testing._internal.common_quantization import skipIfNoFBGEMM, skipIfNoQNNPACK, skipIfNoONEDNN
Expand All @@ -31,10 +32,12 @@
qengine_is_onednn,
)
from torch.ao.quantization import PerChannelMinMaxObserver
from torch.testing._internal.common_cuda import TEST_CUDNN, TEST_CUDA
from torch.testing._internal.common_cuda import TEST_CUDNN, TEST_CUDNN_VERSION, TEST_CUDA
from torch.testing._internal.optests import opcheck
import torch.backends.xnnpack

from torch.utils.cpp_extension import ROCM_HOME

from typing import Optional

np_dtype = {
Expand All @@ -43,6 +46,8 @@
torch.qint32 : np.int32
}

TEST_ROCM = TEST_CUDA and torch.version.hip is not None and ROCM_HOME is not None

class PointwisePostOp(NamedTuple):
binary_attr : str = "none"
alpha : float = 1.0
Expand Down Expand Up @@ -905,9 +910,8 @@ def test_qadd_relu_same_qparams(self):
"""Tests the correctness of the cudnn add and add_relu op
(Similar to test_qadd_relu_different_qparams, will probably merge in the future)"""
@unittest.skipIf(not TEST_CUDNN, "cudnn is not enabled.")
@unittest.skip("Local only - currently the test_qadd_relu_cudnn op is bulid "
"with USE_EXPERIMENTAL_CUDNN_V8_API, we can enable the test "
"after it is built by default")
@unittest.skipIf(not SM80OrLater, "requires sm80 or later.")
@unittest.skipIf(TEST_ROCM, "not supported on rocm.")
def test_qadd_relu_cudnn(self):
dtype = torch.qint8
add_relu = torch.ops.quantized.add_relu
Expand Down Expand Up @@ -940,9 +944,8 @@ def test_qadd_relu_cudnn(self):

"""Tests the correctness of the cudnn add and add_relu op for nhwc format"""
@unittest.skipIf(not TEST_CUDNN, "cudnn is not enabled.")
@unittest.skip("Local only - currently the test_qadd_relu_cudnn_nhwc op is bulid "
"with USE_EXPERIMENTAL_CUDNN_V8_API, we can enable the test "
"after it is built by default")
@unittest.skipIf(not SM80OrLater, "requires sm80 or later.")
@unittest.skipIf(TEST_ROCM, "not supported on rocm.")
def test_qadd_relu_cudnn_nhwc(self):
dtype = torch.qint8
add_relu = torch.ops.quantized.add_relu
Expand Down Expand Up @@ -1379,7 +1382,7 @@ def test_max_pool1d(self, X, kernel, stride, dilation, padding, ceil_mode):
self.assertEqual(a_ref, a_hat.dequantize(),
msg="ops.quantized.max_pool1d results are off")

# TODO: merge this test with test_max_pool2d when USE_EXPERIMENTAL_CUDNN_V8_API flag is enabled in CI
# TODO: merge this test with test_max_pool2d
"""Tests 2D cudnn max pool operation on quantized tensors."""
@given(X=hu.tensor(shapes=hu.array_shapes(min_dims=3, max_dims=4,
min_side=1, max_side=10),
Expand All @@ -1394,9 +1397,8 @@ def test_max_pool1d(self, X, kernel, stride, dilation, padding, ceil_mode):
padding=st.integers(0, 2),
ceil_mode=st.booleans())
@unittest.skipIf(not TEST_CUDNN, "cudnn is not enabled.")
@unittest.skip("Local only - currently the qconv2d_cudnn op is bulid "
"with USE_EXPERIMENTAL_CUDNN_V8_API, we can enable the test "
"after it is built by default")
@unittest.skipIf(TEST_CUDNN_VERSION <= 90100, "cuDNN maxpool2d mishandles -128 before v90100")
@unittest.skipIf(TEST_ROCM, "not supported on rocm.")
def test_max_pool2d_cudnn(self, X, kernel, stride, dilation, padding, ceil_mode):
X, (scale, zero_point, torch_type) = X
assume(kernel // 2 >= padding) # Kernel cannot be overhanging!
Expand Down Expand Up @@ -4050,9 +4052,8 @@ def test_qlinear_with_input_q_dq_qweight_dq_output_fp32(
use_channelwise=st.sampled_from([False])) # channelwise currently not supported for qlinear cudnn
@skipIfNoFBGEMM
@unittest.skipIf(not TEST_CUDNN, "cudnn is not enabled.")
@unittest.skip("Local only - currently the qlinear_cudnn op is bulid "
"with USE_EXPERIMENTAL_CUDNN_V8_API, we can enable the test "
"after it is built by default")
@unittest.skipIf(not SM80OrLater, "requires sm80 or later.")
@unittest.skipIf(TEST_ROCM, "not supported on rocm.")
# TODO: check with yang regarding CUDNN flags
def test_qlinear_cudnn(self, batch_size, input_channels, output_channels, use_bias,
use_relu, use_multi_dim_input, use_channelwise):
Expand Down Expand Up @@ -5427,9 +5428,8 @@ def test_qconv2d_add_relu(self):
use_channelwise=st.sampled_from([False]))
@skipIfNoFBGEMM
@unittest.skipIf(not TEST_CUDNN, "cudnn is not enabled.")
@unittest.skip("Local only - currently the qconv2d_cudnn op is bulid "
"with USE_EXPERIMENTAL_CUDNN_V8_API, we can enable the test "
"after it is built by default")
@unittest.skipIf(not SM80OrLater, "requires sm80 or later.")
@unittest.skipIf(TEST_ROCM, "not supported on rocm.")
def test_qconv2d_cudnn(
self,
batch_size,
Expand Down Expand Up @@ -5510,9 +5510,8 @@ def test_qconv2d_cudnn(
use_channelwise=st.sampled_from([False]))
@skipIfNoFBGEMM
@unittest.skipIf(not TEST_CUDNN, "cudnn is not enabled.")
@unittest.skip("Local only - currently the qconv2d_cudnn op is bulid "
"with USE_EXPERIMENTAL_CUDNN_V8_API, we can enable the test "
"after it is built by default")
@unittest.skipIf(not SM80OrLater, "requires sm80 or later.")
@unittest.skipIf(TEST_ROCM, "not supported on rocm.")
def test_qconv2d_relu_cudnn(
self,
batch_size,
Expand Down Expand Up @@ -6245,9 +6244,8 @@ def test_qconv1d_relu(
use_channelwise=st.sampled_from([False]))
@skipIfNoFBGEMM
@unittest.skipIf(not TEST_CUDNN, "cudnn is not enabled.")
@unittest.skip("Local only - currently the qconv1d_cudnn op is bulid "
"with USE_EXPERIMENTAL_CUDNN_V8_API, we can enable the test "
"after it is built by default")
@unittest.skipIf(not SM80OrLater, "requires sm80 or later.")
@unittest.skipIf(TEST_ROCM, "not supported on rocm.")
def test_qconv1d_cudnn(
self,
batch_size,
Expand Down Expand Up @@ -6319,9 +6317,8 @@ def test_qconv1d_cudnn(
use_channelwise=st.sampled_from([False]))
@skipIfNoFBGEMM
@unittest.skipIf(not TEST_CUDNN, "cudnn is not enabled.")
@unittest.skip("Local only - currently the qconv1d_cudnn op is bulid "
"with USE_EXPERIMENTAL_CUDNN_V8_API, we can enable the test "
"after it is built by default")
@unittest.skipIf(not SM80OrLater, "requires sm80 or later.")
@unittest.skipIf(TEST_ROCM, "not supported on rocm.")
def test_qconv1d_relu_cudnn(
self,
batch_size,
Expand Down

0 comments on commit ac568fc

Please sign in to comment.