NVIDIA / cutlass

CUDA Templates for Linear Algebra Subroutines
Other
5.66k stars 971 forks source link

[BUG] multiple functions not found in the std namespace in CUTLASS 3.2.2 #1221

Closed lahwaacz closed 11 months ago

lahwaacz commented 11 months ago

I'm building CUTLASS 3.2.2 on Arch Linux and I'm getting this error:

FAILED: tools/profiler/CMakeFiles/cutlass_profiler.dir/src/cudnn_helpers.cpp.o
/usr/bin/c++ -DCUTLASS_ENABLE_CUBLAS=1 -DCUTLASS_ENABLE_CUDNN=1 -I/build/cutlass/src/cutlass-3.2.2/include -I/build/cutlass/src/cutlass-3.2.2/tools/profiler/include -I/build/cutlass/src/build/include -I/include -I/examples -I/build/cutlass/src/cutlass-3.2.2/tools/library/include -I/build/cutlass/src/cutlass-3.2.2/tools/util/include -isystem /opt/cuda/include -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/cutlass/src=/usr/src/debug/cutlass -flto=auto -O3 -DNDEBUG -std=c++17 -fPIE -MD -MT tools/profiler/CMakeFiles/cutlass_profiler.dir/src/cudnn_helpers.cpp.o -MF tools/profiler/CMakeFiles/cutlass_profiler.dir/src/cudnn_helpers.cpp.o.d -o tools/profiler/CMakeFiles/cutlass_profiler.dir/src/cudnn_helpers.cpp.o -c /build/cutlass/src/cutlass-3.2.2/tools/profiler/src/cudnn_helpers.cpp
In file included from /build/cutlass/src/cutlass-3.2.2/tools/util/include/cutlass/util/device_memory.h:41,
                 from /build/cutlass/src/cutlass-3.2.2/tools/profiler/include/cutlass/profiler/cudnn_helpers.h:42,
                 from /build/cutlass/src/cutlass-3.2.2/tools/profiler/src/cudnn_helpers.cpp:38:
/build/cutlass/src/cutlass-3.2.2/include/cutlass/platform/platform.h:958:30: error: ‘float_round_style’ has not been declared in ‘std’
  958 | using CUTLASS_STL_NAMESPACE::float_round_style;
      |                              ^~~~~~~~~~~~~~~~~
/build/cutlass/src/cutlass-3.2.2/include/cutlass/platform/platform.h:959:30: error: ‘round_indeterminate’ has not been declared in ‘std’
  959 | using CUTLASS_STL_NAMESPACE::round_indeterminate;
      |                              ^~~~~~~~~~~~~~~~~~~
/build/cutlass/src/cutlass-3.2.2/include/cutlass/platform/platform.h:960:30: error: ‘round_toward_zero’ has not been declared in ‘std’
  960 | using CUTLASS_STL_NAMESPACE::round_toward_zero;
      |                              ^~~~~~~~~~~~~~~~~
/build/cutlass/src/cutlass-3.2.2/include/cutlass/platform/platform.h:961:30: error: ‘round_to_nearest’ has not been declared in ‘std’
  961 | using CUTLASS_STL_NAMESPACE::round_to_nearest;
      |                              ^~~~~~~~~~~~~~~~
/build/cutlass/src/cutlass-3.2.2/include/cutlass/platform/platform.h:962:30: error: ‘round_toward_infinity’ has not been declared in ‘std’
  962 | using CUTLASS_STL_NAMESPACE::round_toward_infinity;
      |                              ^~~~~~~~~~~~~~~~~~~~~
/build/cutlass/src/cutlass-3.2.2/include/cutlass/platform/platform.h:963:30: error: ‘round_toward_neg_infinity’ has not been declared in ‘std’
  963 | using CUTLASS_STL_NAMESPACE::round_toward_neg_infinity;
      |                              ^~~~~~~~~~~~~~~~~~~~~~~~~
/build/cutlass/src/cutlass-3.2.2/include/cutlass/platform/platform.h:966:30: error: ‘float_denorm_style’ has not been declared in ‘std’
  966 | using CUTLASS_STL_NAMESPACE::float_denorm_style;
      |                              ^~~~~~~~~~~~~~~~~~
/build/cutlass/src/cutlass-3.2.2/include/cutlass/platform/platform.h:967:30: error: ‘denorm_indeterminate’ has not been declared in ‘std’
  967 | using CUTLASS_STL_NAMESPACE::denorm_indeterminate;
      |                              ^~~~~~~~~~~~~~~~~~~~
/build/cutlass/src/cutlass-3.2.2/include/cutlass/platform/platform.h:968:30: error: ‘denorm_absent’ has not been declared in ‘std’
  968 | using CUTLASS_STL_NAMESPACE::denorm_absent;
      |                              ^~~~~~~~~~~~~
/build/cutlass/src/cutlass-3.2.2/include/cutlass/platform/platform.h:969:30: error: ‘denorm_present’ has not been declared in ‘std’
  969 | using CUTLASS_STL_NAMESPACE::denorm_present;
      |                              ^~~~~~~~~~~~~~

The configure output is:

-- CMake Version: 3.27.9
-- The CXX compiler identification is GNU 13.2.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- The CUDA compiler identification is NVIDIA 12.3.52
-- Detecting CUDA compiler ABI info
-- Detecting CUDA compiler ABI info - done
-- Check for working CUDA compiler: /opt/cuda/bin/nvcc - skipped
-- Detecting CUDA compile features
-- Detecting CUDA compile features - done
-- CUDART: /opt/cuda/lib64/libcudart.so
-- CUDA Driver: /opt/cuda/lib64/stubs/libcuda.so
-- NVRTC: /opt/cuda/lib64/libnvrtc.so
-- Default Install Location: /usr
-- Found Python3: /usr/bin/python3.11 (found suitable version "3.11.6", minimum required is "3.5") found components: Interpreter
-- CUDA Compilation Architectures: 70;72;75;80;86;87;89;90;90a
-- Enable caching of reference results in conv unit tests
-- Enable rigorous conv problem sizes in conv unit tests
-- Using NVCC flags: --expt-relaxed-constexpr;-DCUTLASS_TEST_LEVEL=0;-DCUTLASS_TEST_ENABLE_CACHED_RESULTS=1;-DCUTLASS_CONV_UNIT_TEST_RIGOROUS_SIZE_ENABLED=1;-DCUTLASS_DEBUG_TRACE_LEVEL=0;-Xcompiler=-Wconversion;-Xcompiler=-fno-strict-aliasing
fatal: not a git repository (or any of the parent directories): .git
-- CUTLASS Revision: Unable to detect, Git returned code 128.
-- The C compiler identification is GNU 13.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found Python: /usr/bin/python3.11 (found version "3.11.6") found components: Interpreter
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Configuring cublas ...
-- cuBLAS: /opt/cuda/lib64/libcublas.so
-- cuBLAS: /opt/cuda/include
-- Configuring cuBLAS ... done.
-- Configuring cuDNN ...
-- cuDNN: /lib64/libcudnn.so
-- cuDNN: /usr/include
-- Configuring cuDNN ... done.
-- Completed generation of library instances. See /build/cutlass/src/build/tools/library/library_instance_generation.log for more information.
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_simt.unity.6d3bcd3b9720.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_simt.unity.d69f43d7ea78.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_simt.unity.f5981aa013fb.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_simt.unity.3531a25824a3.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_simt.unity.2f14c0bb03c5.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_simt.unity.d79797107feb.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_simt.unity.559f6106384e.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_simt.unity.f82ac67ac892.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_simt.unity.42678b6d7910.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_simt_3x.unity.582046f8ba4c.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_simt_3x.unity.4ab17cff250b.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_sm70.unity.6b143a2e1df9.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_sm70.unity.1fc183d42e99.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_sm75.unity.5efd287dfc75.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_sm75.unity.a47cfaba889e.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_sm75.unity.cc02800bb7eb.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_sm75.unity.a7f311c282bd.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_sm75.unity.c3054c7c8039.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_sm75.unity.6496c940e968.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_sm75.unity.39799870a161.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_f16_sm80.unity.cecb8069b6d3.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_f32_sm80.unity.bdd9dca39b4c.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_f32_sm80.unity.23ee7662f9e5.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_f32_sm80.unity.a1f9ce5afd35.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_sm90.unity.a3910ffeca5a.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_sm90.unity.760f9c1dcbb2.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_alignx_sm90.unity.c0249d5fb6c5.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_epilogue_fusion_sm90.unity.dfe5b062dbf2.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_epilogue_fusion_sm90.unity.e145f997a3bc.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_epilogue_fusion_sm90.unity.9e9ec821328e.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_epilogue_fusion_sm90.unity.bde81be8b2b9.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_cluster_multicast_sm90.unity.e443110c544b.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_cluster_multicast_sm90.unity.e2f263b1400a.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_gmma_rs_warpspecialized_sm90.unity.ffbeb6dbd46a.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_f32_tf32_sm80.unity.abda0e3ffa35.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_f32_tf32_sm80.unity.45837f3ac377.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_f32_tf32_sm80.unity.96393805cc32.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_f64.unity.3ace2e65400d.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_f64.unity.a57d2f5b534b.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_f64.unity.0c55903fcf2b.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_f64.unity.7d4e48f01c89.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_s32_sm80.unity.c96ffaab923b.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_s32_sm80.unity.a606d8abf097.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_s32_sm80.unity.ab4eb6160524.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_s32_sm80.unity.7dbc418d7ad7.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_wmma.unity.a201f3aca1df.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_wmma.unity.77a5c702efff.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_wmma.unity.890c66a7770e.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_wmma.unity.588b310779b0.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_wmma.unity.d364d9c6fb85.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_wmma.unity.717dca98d014.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_wmma.unity.1e2c1949c454.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_wmma.unity.dea0c9ac1704.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_wmma.unity.6c3edfd0f631.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_tensorop_planar_complex.unity.b339db93842f.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_grouped.unity.b6a1ffb56f9c.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_grouped_scheduler.unity.12df3577deeb.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_grouped_rank_2k_scheduler.unity.7e1cdddea146.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_sparse_tensorop_sm80.unity.afe0f3a4fdb9.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_sparse_tensorop_sm80.unity.77d5221e272a.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_sparse_tensorop_sm80.unity.ec81f1e3f490.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_sparse_tensorop_sm80.unity.5ef7de4d448a.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemv_device.unity.6c87d70f4480.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.467514c5998d.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.00e6e83b5d07.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.b619dac1e79b.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.4a4ff5cd2d66.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.91dfb85ec7bc.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.f7e5b3ef2f0c.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.c5be50067833.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.6a3056c1b477.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.a32a7767196f.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.07ea47b032f1.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.0efe28d4e006.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.2e7407db85a0.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.39e9ae3d80ed.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.4f6bc1cada87.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.ceb550dbcdd0.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.42ec4295e41c.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.02c4b3fe66bb.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.8d882128fb76.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.e5709fcdfa7e.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.80c51f056c87.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.1b5862952e07.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_blas3.unity.6d5e5c7e1dd5.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_grouped_blas3.unity.bf3bdd25f267.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_grouped_blas3.unity.9e37805c0015.cu
-- Generating /build/cutlass/src/build/test/unit/gemm/device/cutlass_test_unit_gemm_device_grouped_blas3.unity.de069760a863.cu
-- Enable device reference verification in conv unit tests
-- Configuring done (4.9s)
-- Generating done (0.4s)
-- Build files have been written to: /build/cutlass/src/build

Despite the output, GCC 12.3.0 is used as the CUDA host compiler (it is configured via $NVCC_PREPEND_FLAGS).

hwu36 commented 11 months ago

add #include <limits> ?

lahwaacz commented 11 months ago

Actually, this was fixed by https://github.com/NVIDIA/cutlass/pull/1121 which was released in CUTLASS 3.3.0.