未验证 提交 92d8fed8 编写于 作者: zhouweiwei2014's avatar zhouweiwei2014 提交者: GitHub

Improve sccache hit rate and avoid absolute path (#34435)

上级 eb27d8b7
...@@ -932,12 +932,8 @@ function(generate_dummy_static_lib) ...@@ -932,12 +932,8 @@ function(generate_dummy_static_lib)
if(NOT dummy_GENERATOR) if(NOT dummy_GENERATOR)
message(FATAL_ERROR "You must provide a generator file name.") message(FATAL_ERROR "You must provide a generator file name.")
endif() endif()
# if ${dummy_GENERATOR} contains "/", it may be a file path
if(NOT ${dummy_GENERATOR} MATCHES ".*/.*")
set(dummy_GENERATOR "${CMAKE_CURRENT_LIST_DIR}/${dummy_GENERATOR}")
endif()
if(NOT dummy_CONTENT) if(NOT dummy_CONTENT)
set(dummy_CONTENT "${dummy_FILE_PATH} for lib ${dummy_LIB_NAME}") set(dummy_CONTENT "${dummy_LIB_NAME}_dummy.c for lib ${dummy_LIB_NAME}")
endif() endif()
configure_file(${PROJECT_SOURCE_DIR}/cmake/dummy.c.in ${dummy_FILE_PATH} @ONLY) configure_file(${PROJECT_SOURCE_DIR}/cmake/dummy.c.in ${dummy_FILE_PATH} @ONLY)
......
...@@ -77,11 +77,14 @@ function(compose_unity_target_sources TARGET TYPE) ...@@ -77,11 +77,14 @@ function(compose_unity_target_sources TARGET TYPE)
get_property(unity_group_index_max GLOBAL PROPERTY ${TARGET}_${TYPE}_group_index) get_property(unity_group_index_max GLOBAL PROPERTY ${TARGET}_${TYPE}_group_index)
foreach(src ${ARGN}) foreach(src ${ARGN})
set(unity_file "") set(unity_file "")
# UB use absolute path of source. # Note(zhouwei25): UB use the path releative to CMAKE_SOURCE_DIR.
# If use absolute path, sccache/ccache hit rate will be reduced.
if(IS_ABSOLUTE ${src}) if(IS_ABSOLUTE ${src})
set(src_absolute_path ${src}) set(src_absolute_path ${src})
file(RELATIVE_PATH src_relative_path ${CMAKE_SOURCE_DIR} ${src})
else() else()
set(src_absolute_path ${CMAKE_CURRENT_SOURCE_DIR}/${src}) set(src_absolute_path ${CMAKE_CURRENT_SOURCE_DIR}/${src})
file(RELATIVE_PATH src_relative_path ${CMAKE_SOURCE_DIR} ${src_absolute_path})
endif() endif()
# If `unity_group_index_max` is empty, there is no combination # If `unity_group_index_max` is empty, there is no combination
# relationship. # relationship.
...@@ -106,7 +109,7 @@ function(compose_unity_target_sources TARGET TYPE) ...@@ -106,7 +109,7 @@ function(compose_unity_target_sources TARGET TYPE)
set_property(GLOBAL APPEND PROPERTY ${unity_file_sources} ${UNITY_CU_BEFORE_CODE}) set_property(GLOBAL APPEND PROPERTY ${unity_file_sources} ${UNITY_CU_BEFORE_CODE})
endif() endif()
endif() endif()
set_property(GLOBAL APPEND PROPERTY ${unity_file_sources} "#include \"${src_absolute_path}\"") set_property(GLOBAL APPEND PROPERTY ${unity_file_sources} "#include \"${src_relative_path}\"")
set(unity_target_sources ${unity_target_sources} ${unity_file}) set(unity_target_sources ${unity_target_sources} ${unity_file})
break() break()
endif() endif()
......
...@@ -154,8 +154,10 @@ dir %cache_dir% ...@@ -154,8 +154,10 @@ dir %cache_dir%
dir paddle\fluid\pybind\Release dir paddle\fluid\pybind\Release
rem -------Caching strategy 1: End -------------------------------- rem -------Caching strategy 1: End --------------------------------
rem -------Caching strategy 2: sccache decorate compiler----------- rem -------Caching strategy 2: sccache decorate compiler-----------
if "%WITH_SCCACHE%"=="ON" ( if "%WITH_SCCACHE%"=="ON" (
del D:\sccache\sccache_log.txt
cmd /C sccache -V || call :install_sccache cmd /C sccache -V || call :install_sccache
sccache --stop-server 2> NUL sccache --stop-server 2> NUL
if not exist D:\sccache mkdir D:\sccache if not exist D:\sccache mkdir D:\sccache
...@@ -324,17 +326,14 @@ if %day_now% NEQ %day_before% ( ...@@ -324,17 +326,14 @@ if %day_now% NEQ %day_before% (
echo %day_now% > %cache_dir%\day.txt echo %day_now% > %cache_dir%\day.txt
type %cache_dir%\day.txt type %cache_dir%\day.txt
if %day_now% EQU 21 ( if %day_now% EQU 21 (
del D:\sccache\sccache_log.txt
rmdir %cache_dir%\third_party_GPU /s/q rmdir %cache_dir%\third_party_GPU /s/q
rmdir %cache_dir%\third_party /s/q rmdir %cache_dir%\third_party /s/q
) )
if %day_now% EQU 11 ( if %day_now% EQU 11 (
del D:\sccache\sccache_log.txt
rmdir %cache_dir%\third_party_GPU /s/q rmdir %cache_dir%\third_party_GPU /s/q
rmdir %cache_dir%\third_party /s/q rmdir %cache_dir%\third_party /s/q
) )
if %day_now% EQU 01 ( if %day_now% EQU 01 (
del D:\sccache\sccache_log.txt
rmdir %cache_dir%\third_party_GPU /s/q rmdir %cache_dir%\third_party_GPU /s/q
rmdir %cache_dir%\third_party /s/q rmdir %cache_dir%\third_party /s/q
) )
......
...@@ -674,7 +674,6 @@ TWO_PARALLEL_JOB = [ ...@@ -674,7 +674,6 @@ TWO_PARALLEL_JOB = [
'test_fill_op', 'test_fill_op',
'test_slice_op', 'test_slice_op',
'test_cond', 'test_cond',
'test_lstm',
'test_ema', 'test_ema',
'test_nan_inf', 'test_nan_inf',
'test_isinstance', 'test_isinstance',
...@@ -810,7 +809,6 @@ TWO_PARALLEL_JOB = [ ...@@ -810,7 +809,6 @@ TWO_PARALLEL_JOB = [
'test_embedding_id_stop_gradient', 'test_embedding_id_stop_gradient',
'test_empty_op', 'test_empty_op',
'test_py_reader_combination', 'test_py_reader_combination',
'test_ptb_lm',
'test_expand_op', 'test_expand_op',
'test_prroi_pool_op', 'test_prroi_pool_op',
'test_fake_dequantize_op', 'test_fake_dequantize_op',
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册