LBANN
0.103.0
LivermoreBigArtificialNeuralNetworkToolkit
common_cereal_registration.hpp
Go to the documentation of this file.
1
// Copyright (c) 2014-2023, Lawrence Livermore National Security, LLC.
3
// Produced at the Lawrence Livermore National Laboratory.
4
// Written by the LBANN Research Team (B. Van Essen, et al.) listed in
5
// the CONTRIBUTORS file. <lbann-dev@llnl.gov>
6
//
7
// LLNL-CODE-697807.
8
// All rights reserved.
9
//
10
// This file is part of LBANN: Livermore Big Artificial Neural Network
11
// Toolkit. For details, see http://software.llnl.gov/LBANN or
12
// https://github.com/LLNL/LBANN.
13
//
14
// Licensed under the Apache License, Version 2.0 (the "Licensee"); you
15
// may not use this file except in compliance with the License. You may
16
// obtain a copy of the License at:
17
//
18
// http://www.apache.org/licenses/LICENSE-2.0
19
//
20
// Unless required by applicable law or agreed to in writing, software
21
// distributed under the License is distributed on an "AS IS" BASIS,
22
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
23
// implied. See the License for the specific language governing
24
// permissions and limitations under the license.
26
27
#include "lbann_config.hpp"
28
29
#ifdef LBANN_HAS_CEREAL_BINARY_ARCHIVES
30
#define LBANN_ADD_BINARY_SERIALIZE_ETI(...) \
31
template void __VA_ARGS__::serialize(cereal::BinaryOutputArchive&); \
32
template void __VA_ARGS__::serialize(cereal::BinaryInputArchive&); \
33
template void __VA_ARGS__::serialize(RootedBinaryOutputArchive&); \
34
template void __VA_ARGS__::serialize(RootedBinaryInputArchive&)
35
#else
36
#define LBANN_ADD_BINARY_SERIALIZE_ETI(...)
37
#endif
38
39
#ifdef LBANN_HAS_CEREAL_JSON_ARCHIVES
40
#define LBANN_ADD_JSON_SERIALIZE_ETI(...) \
41
template void __VA_ARGS__::serialize(cereal::JSONOutputArchive&); \
42
template void __VA_ARGS__::serialize(cereal::JSONInputArchive&); \
43
template void __VA_ARGS__::serialize(RootedJSONOutputArchive&); \
44
template void __VA_ARGS__::serialize(RootedJSONInputArchive&)
45
#else
46
#define LBANN_ADD_JSON_SERIALIZE_ETI(...)
47
#endif
48
49
#ifdef LBANN_HAS_CEREAL_PORTABLE_BINARY_ARCHIVES
50
#define LBANN_ADD_PORTABLE_BINARY_SERIALIZE_ETI(...) \
51
template void __VA_ARGS__::serialize(cereal::PortableBinaryOutputArchive&); \
52
template void __VA_ARGS__::serialize(cereal::PortableBinaryInputArchive&); \
53
template void __VA_ARGS__::serialize(RootedPortableBinaryOutputArchive&); \
54
template void __VA_ARGS__::serialize(RootedPortableBinaryInputArchive&)
55
#else
56
#define LBANN_ADD_PORTABLE_BINARY_SERIALIZE_ETI(...)
57
#endif
58
59
#ifdef LBANN_HAS_CEREAL_XML_ARCHIVES
60
#define LBANN_ADD_XML_SERIALIZE_ETI(...) \
61
template void __VA_ARGS__::serialize(cereal::XMLOutputArchive&); \
62
template void __VA_ARGS__::serialize(cereal::XMLInputArchive&); \
63
template void __VA_ARGS__::serialize(RootedXMLOutputArchive&); \
64
template void __VA_ARGS__::serialize(RootedXMLInputArchive&)
65
#else
66
#define LBANN_ADD_XML_SERIALIZE_ETI(...)
67
#endif
68
69
#define LBANN_ADD_ALL_SERIALIZE_ETI(...) \
70
LBANN_ADD_BINARY_SERIALIZE_ETI(__VA_ARGS__); \
71
LBANN_ADD_JSON_SERIALIZE_ETI(__VA_ARGS__); \
72
LBANN_ADD_PORTABLE_BINARY_SERIALIZE_ETI(__VA_ARGS__); \
73
LBANN_ADD_XML_SERIALIZE_ETI(__VA_ARGS__)
74
75
#define LBANN_REGISTER_DYNAMIC_INIT(NAME) CEREAL_REGISTER_DYNAMIC_INIT(NAME)
include
lbann
macros
common_cereal_registration.hpp
Generated on Wed Oct 11 2023 20:49:37 for LBANN by
1.8.13