作用:
运行时将Function通过XlaCompilationCache编译成Executable,并放入cache中。
其中XlaCompilationCache使用了:tensorflow/compiler/tf2xla/xla_compiler.cc下的XlaCompiler::CompileFunction将function转换成Executable。
放入Cache流程:
XlaCompileOp::Compute
CompileToLocalExecutable
XlaCompilationCache::Compile
XlaCompilationCache::CompileImpl
std::unique_ptr<Entry>& e = cache_[signature];
其中Cache继承于ResourceBase。
XlaCompileOp Compute流程:
-
获取CacheResource。
-
创建或者从cache中获取executable。
-
对executable生成一个key。
-
将pair<key, executable>放入全局静态对象XlaExecutableClosureStore中。
-
将key放入输出中。
XlaCompileOp 编译 XlaKernelOp:
::CompileToLocalExecutable
XlaCompilationCache::Compile
XlaCompilationCache::CompileImpl
XlaCompilationCache::CompileStrict
XlaCompiler::CompileFunction(in compile_fn)
XlaCompiler::CompileGraph
XlaCompiler::ExecuteGraph
GraphCompiler::Compile
XlaCompilationDevice::Compute
OpKernel::Compute
XlaCompileOp 生成可执行文件:
::CompileToLocalExecutable
XlaCompilationCache::Compile
XlaCompilationCache::CompileImpl
XlaCompilationCache::CompileStrict
XlaCompilationCache::BuildExecutable
LocalClient::Compile
LocalService::CompileExecutables
Service::BuildExecutables
LLVMCompiler::Compile (Backend::Compile)
CpuCompiler::RunBackend / GpuCompiler::RunBackend