Serializes the CLCompileContext built-in programs.
24{
25
26 std::map<std::string, cl::Program> builtProgramsMap = clCompileContext.get_built_programs();
27 if (builtProgramsMap.empty())
28 {
29 ARMNN_LOG(warning) <<
"There are no built programs to be serialised.";
30 return;
31 }
32
33
34 std::vector<flatbuffers::Offset<armnn::Program>> clPrograms;
35 for(const auto& program : builtProgramsMap)
36 {
37 std::vector<std::vector<uint8_t>> binaries = program.second.getInfo<CL_PROGRAM_BINARIES>();
39 m_FlatBufferBuilder.CreateString(program.first),
40 m_FlatBufferBuilder.CreateVector(binaries[0])));
41 }
42
43
44 auto clContext =
CreateClContext(m_FlatBufferBuilder, m_FlatBufferBuilder.CreateVector(clPrograms));
45
46 m_FlatBufferBuilder.Finish(clContext);
47}
#define ARMNN_LOG(severity)
flatbuffers::Offset< ClContext > CreateClContext(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< flatbuffers::Vector< flatbuffers::Offset< armnn::Program > > > programs=0)
flatbuffers::Offset< Program > CreateProgram(flatbuffers::FlatBufferBuilder &_fbb, flatbuffers::Offset< flatbuffers::String > name=0, flatbuffers::Offset< flatbuffers::Vector< uint8_t > > binary=0)