Skip to content

[Bug Fix] Fix compilation issues in enforce_test.cc for different cuFFT versions#75949

Merged
luotao1 merged 4 commits intoPaddlePaddle:developfrom
youge325:enforce
Oct 27, 2025
Merged

[Bug Fix] Fix compilation issues in enforce_test.cc for different cuFFT versions#75949
luotao1 merged 4 commits intoPaddlePaddle:developfrom
youge325:enforce

Conversation

@youge325
Copy link
Copy Markdown
Contributor

PR Category

Environment Adaptation

PR Types

Bug fixes

Description

  • 修改主要是让 enforce_test.cc 在不同 cuFFT 版本下都能编译。
  • 新增的 #ifdef CUFFT_... 包裹把对 CUFFT_INCOMPLETE_PARAMETER_LISTCUFFT_PARSE_ERRORCUFFT_LICENSE_ERROR 这些错误码的检查改成“若宏存在才测试”,避免在较新或裁剪版的 cuFFT 里宏被移除时出现未定义符号的编译错误。
  • 编译时的错误日志如下:
[518/826] Building CXX object test\CMakeFiles\enforce_test.dir\cpp\fluid\platform\enforce_test.cc.obj
FAILED: test/CMakeFiles/enforce_test.dir/cpp/fluid/platform/enforce_test.cc.obj
"D:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\bin\Hostx64\x64\cl.exe"  /nologo /TP -DCUDA_TOOLKIT_ROOT_DIR="\"C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v13.0\"" -DCUDA_VERSION_MAJOR=\"13\" -DCUDA_VERSION_MINOR=\"0\" -DCUDNN_MAJOR_VERSION=\"9\" -DEIGEN_STRONG_INLINE=inline -DEIGEN_USE_GPU -DGLOG_NO_ABBREVIATED_SEVERITIES -DGOOGLE_GLOG_DLL_DECL="" -DLAPACK_FOUND -DNEW_RELEASE_ALL -DNOMINMAX -DPADDLE_DISABLE_PROFILER -DPADDLE_DLL_INFERENCE -DPADDLE_ON_INFERENCE -DPADDLE_VERSION=0.0.0 -DPADDLE_VERSION_INTEGER=0 -DPADDLE_WITH_AVX -DPADDLE_WITH_CCCL -DPADDLE_WITH_CRYPTO -DPADDLE_WITH_CUDA -DPADDLE_WITH_DNNL -DPADDLE_WITH_MKLML -DPADDLE_WITH_PIP_CUDA_LIBRARIES -DPADDLE_WITH_POCKETFFT -DPADDLE_WITH_SSE3 -DPADDLE_WITH_TENSORRT -DPADDLE_WITH_TESTING -DPHI_INNER -DPHI_SHARED -DSTATIC_IR -DTRT_PLUGIN_FP16_AVAILABLE -DUTF8PROC_STATIC -DWIN32_LEAN_AND_MEAN -DYAML_CPP_STATIC_DEFINE -D_XKEYCHECK_H -ID:\Paddle\third_party\cccl\thrust -ID:\Paddle\third_party\cccl\libcudacxx\include -ID:\Paddle\third_party\cccl\cub -ID:\Paddle\build -ID:\Paddle\paddle\fluid\framework\io -ID:\Paddle\patches\thrust -ID:\TensorRT-10.13.3.9\include -ID:\Paddle\build\third_party\install\zlib\include -ID:\Paddle\build\third_party\install -ID:\Paddle\build\third_party\install\gflags\include -ID:\Paddle\build\third_party\install\glog\include -ID:\Paddle\third_party\eigen3 -ID:\Paddle\third_party\threadpool -ID:\Paddle\third_party\dlpack\include -ID:\Paddle\build\third_party\install\xxhash\include -ID:\Paddle\build\third_party\install\warpctc\include -ID:\Paddle\build\third_party\install\warprnnt\include -ID:\Paddle\build\third_party\install\utf8proc\include -ID:\Paddle\build\third_party\install\mklml\include -ID:\Paddle\build\third_party\install\onednn\include -ID:\Paddle\build\third_party\install\protobuf\include -ID:\Paddle\third_party\nlohmann_json\include -ID:\Paddle\build\third_party\install\yaml-cpp\include -ID:\Users\Lenovo\AppData\Local\Programs\Python\Python310\include -ID:\Users\Lenovo\AppData\Local\Programs\Python\Python310\Lib\site-packages\numpy\core\include -ID:\Paddle\build\third_party\pybind\src\extern_pybind\include -ID:\Paddle\build\third_party\install\gtest\include -ID:\Paddle\build\third_party\install\libuv\include -ID:\Paddle\third_party\cccl -ID:\Paddle\build\third_party\install\cryptopp\include -ID:\Paddle\build\third_party\pocketfft\src -ID:\Paddle\build\third_party\dirent\src\extern_dirent\include -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\include" -ID:\Paddle -ID:\Paddle\paddle\phi\api\include\compat -ID:\Paddle\paddle\phi\api\include\compat\torch\csrc\api\include -ID:\Paddle\build\..\paddle\fluid\framework\io /DWIN32 /D_WINDOWS  /W0  /GR /EHsc /w /wd4068 /wd4129 /wd4244 /wd4267 /wd4297 /wd4530 /wd4577 /wd4819 /wd4838  /arch:AVX /MD /O2 /Ob2 /DNDEBUG /bigobj /Zc:inline -std:c++17 /showIncludes /Fotest\CMakeFiles\enforce_test.dir\cpp\fluid\platform\enforce_test.cc.obj /Fdtest\CMakeFiles\enforce_test.dir\ /FS -c D:\Paddle\test\cpp\fluid\platform\enforce_test.cc
D:\Paddle\test\cpp\fluid\platform\enforce_test.cc(425): error C2065: 'CUFFT_INCOMPLETE_PARAMETER_LIST': undeclared identifier
D:\Paddle\test\cpp\fluid\platform\enforce_test.cc(425): error C2512: 'testing::AssertionResult': no appropriate default constructor available
D:\Paddle\test\cpp\fluid\platform\enforce_test.cc(425): note: 'testing::AssertionResult::AssertionResult': no appropriate default constructor available
D:\Paddle\build\third_party\install\gtest\include\gtest/gtest.h(299): note: could be 'testing::AssertionResult::AssertionResult(const T &,internal::EnableIf<!testing::internal::ImplicitlyConvertible<T,testing::AssertionResult>::value>::type *)'
D:\Paddle\test\cpp\fluid\platform\enforce_test.cc(425): note: while trying to match the argument list '()'
D:\Paddle\test\cpp\fluid\platform\enforce_test.cc(425): error C2737: 'gtest_ar_': const object must be initialized
D:\Paddle\test\cpp\fluid\platform\enforce_test.cc(428): error C2065: 'CUFFT_PARSE_ERROR': undeclared identifier
D:\Paddle\test\cpp\fluid\platform\enforce_test.cc(428): error C2512: 'testing::AssertionResult': no appropriate default constructor available
D:\Paddle\test\cpp\fluid\platform\enforce_test.cc(428): note: 'testing::AssertionResult::AssertionResult': no appropriate default constructor available
D:\Paddle\build\third_party\install\gtest\include\gtest/gtest.h(299): note: could be 'testing::AssertionResult::AssertionResult(const T &,internal::EnableIf<!testing::internal::ImplicitlyConvertible<T,testing::AssertionResult>::value>::type *)'
D:\Paddle\test\cpp\fluid\platform\enforce_test.cc(428): note: while trying to match the argument list '()'
D:\Paddle\test\cpp\fluid\platform\enforce_test.cc(428): error C2737: 'gtest_ar_': const object must be initialized
D:\Paddle\test\cpp\fluid\platform\enforce_test.cc(431): error C2065: 'CUFFT_LICENSE_ERROR': undeclared identifier
D:\Paddle\test\cpp\fluid\platform\enforce_test.cc(431): error C2512: 'testing::AssertionResult': no appropriate default constructor available
D:\Paddle\test\cpp\fluid\platform\enforce_test.cc(431): note: 'testing::AssertionResult::AssertionResult': no appropriate default constructor available
D:\Paddle\build\third_party\install\gtest\include\gtest/gtest.h(299): note: could be 'testing::AssertionResult::AssertionResult(const T &,internal::EnableIf<!testing::internal::ImplicitlyConvertible<T,testing::AssertionResult>::value>::type *)'
D:\Paddle\test\cpp\fluid\platform\enforce_test.cc(431): note: while trying to match the argument list '()'
D:\Paddle\test\cpp\fluid\platform\enforce_test.cc(431): error C2737: 'gtest_ar_': const object must be initialized
[525/826] Building CXX object test\CMakeFiles\errors_test.dir\cpp\fluid\platform\errors_test.cc.obj
ninja: build stopped: subcommand failed.

…FT versions

- 修改主要是让 enforce_test.cc 在不同 cuFFT 版本下都能编译。
- 新增的 `#ifdef CUFFT_...` 包裹把对 `CUFFT_INCOMPLETE_PARAMETER_LIST`、`CUFFT_PARSE_ERROR`、`CUFFT_LICENSE_ERROR` 这些错误码的检查改成“若宏存在才测试”,避免在较新或裁剪版的 cuFFT 里宏被移除时出现未定义符号的编译错误。
@paddle-bot
Copy link
Copy Markdown

paddle-bot Bot commented Oct 19, 2025

你的PR提交成功,感谢你对开源项目的贡献!
请关注后续CI自动化测试结果,详情请参考Paddle-CI手册
Your PR has been submitted. Thanks for your contribution!
Please wait for the result of CI firstly. See Paddle CI Manual for details.

@paddle-bot paddle-bot Bot added the contributor External developers label Oct 19, 2025
@youge325
Copy link
Copy Markdown
Contributor Author

/re-run all-failed

@youge325
Copy link
Copy Markdown
Contributor Author

/re-run all-failed

@luotao1 luotao1 added the HappyOpenSource 快乐开源活动issue与PR label Oct 21, 2025
@luotao1 luotao1 merged commit ed0e828 into PaddlePaddle:develop Oct 27, 2025
52 checks passed
@youge325 youge325 deleted the enforce branch October 27, 2025 04:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

contributor External developers HappyOpenSource 快乐开源活动issue与PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants