@@ -298,6 +298,24 @@ def get_build_version(ipex_git_sha):
298298 return ipex_version
299299
300300
301+ def generate_code_fingerprint (ipex_build_version , ipex_git_sha , torch_git_sha , build_mode ):
302+ fingerprint = "{}_{}_{}_{}" .format (ipex_build_version , ipex_git_sha , torch_git_sha , build_mode )
303+ return fingerprint
304+
305+ def check_code_fingerprint_in_file (file_path , fingerprint ):
306+ b_exist = os .path .isfile (file_path )
307+ if b_exist is False :
308+ return False
309+
310+ with open (file_path ) as file :
311+ # read all content of a file
312+ content = file .read ()
313+ # check if string present in a file
314+ if fingerprint in content :
315+ return True
316+ else :
317+ return False
318+
301319def create_version_files (base_dir , ipex_build_version , ipex_git_sha , torch_git_sha ):
302320 def write_buffer_to_file (file_path , buffer ):
303321 write_buffer_flag = True
@@ -315,7 +333,7 @@ def write_buffer_to_file(file_path, buffer):
315333
316334 print ('Building Intel Extension for PyTorch. Version: {}' .format (ipex_build_version ))
317335 py_version_path = os .path .join (base_dir , package_name , 'version.py' )
318- cpp_version_path = os .path .join (base_dir , package_name , '..' , 'csrc' , 'utils' , 'version.cpp ' )
336+ cpp_version_path = os .path .join (base_dir , package_name , '..' , 'csrc' , 'utils' , 'version.h ' )
319337
320338 py_buffer = "# Autogenerated file, do not edit!\n "
321339 py_buffer += "__version__ = '{}'\n " .format (ipex_build_version )
@@ -326,9 +344,15 @@ def write_buffer_to_file(file_path, buffer):
326344 mode_str = "debug"
327345 py_buffer += "__mode__ = '{}'\n " .format (mode_str )
328346
347+ current_code_fingerprint = generate_code_fingerprint (ipex_build_version , ipex_git_sha , torch_git_sha , mode_str )
348+ b_same_fingerprint = check_code_fingerprint_in_file (cpp_version_path , current_code_fingerprint )
349+ if b_same_fingerprint is True :
350+ return
351+
329352 c_buffer = '// Autogenerated file, do not edit!\n '
330- # c_buffer += '#include "intel_extension_for_pytorch/csrc/version.h"\n\n'
331- c_buffer += '#include "version.h"\n \n '
353+ c_buffer += '// code fingerprint: {}\n \n ' .format (current_code_fingerprint )
354+ c_buffer += '#pragma once\n '
355+ c_buffer += '#include <string>\n \n '
332356 c_buffer += 'namespace torch_ipex {\n \n '
333357 c_buffer += 'const std::string __version__()\n ' .format (ipex_build_version )
334358 c_buffer += '{{ return "{}"; }}\n \n ' .format (ipex_build_version )
0 commit comments