LBANN
0.103.0
LivermoreBigArtificialNeuralNetworkToolkit
register_layer_with_cereal.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/macros/common_cereal_registration.hpp
>
28
29
#include <cereal/types/polymorphic.hpp>
30
38
#undef LBANN_COMMA
39
#undef LBANN_REGISTER_LAYER_WITH_CEREAL_BASE
40
#undef LBANN_REGISTER_LAYER_WITH_CEREAL
41
#undef PROTO_DEVICE
42
#undef PROTO
43
44
#define LBANN_COMMA ,
45
46
#define LBANN_REGISTER_LAYER_WITH_CEREAL_BASE(NAME, TYPE, LAYOUT, DEVICE) \
47
LBANN_ADD_ALL_SERIALIZE_ETI( \
48
::lbann::NAME<TYPE, ::lbann::data_layout::LAYOUT, DEVICE>); \
49
CEREAL_REGISTER_TYPE_WITH_NAME( \
50
::lbann::NAME< \
51
TYPE LBANN_COMMA ::lbann::data_layout::LAYOUT LBANN_COMMA DEVICE>, \
52
#NAME "(" #TYPE "," #LAYOUT "," #DEVICE ")")
53
54
#define LBANN_REGISTER_LAYER_WITH_CEREAL(NAME, TYPE, DEVICE) \
55
LBANN_REGISTER_LAYER_WITH_CEREAL_BASE(NAME, TYPE, DATA_PARALLEL, DEVICE); \
56
LBANN_REGISTER_LAYER_WITH_CEREAL_BASE(NAME, TYPE, MODEL_PARALLEL, DEVICE)
57
58
#define PROTO_DEVICE(T, D) \
59
LBANN_REGISTER_LAYER_WITH_CEREAL(LBANN_LAYER_NAME, T, D)
60
#include "
instantiate_device.hpp
"
61
#undef PROTO
62
#undef PROTO_DEVICE
63
#undef LBANN_REGISTER_LAYER_WITH_CEREAL
64
#undef LBANN_REGISTER_LAYER_WITH_CEREAL_BASE
65
#undef LBANN_COMMA
66
67
// Finally, add the dynamic init registration
68
LBANN_REGISTER_DYNAMIC_INIT
(LBANN_LAYER_NAME)
common_cereal_registration.hpp
instantiate_device.hpp
LBANN_REGISTER_DYNAMIC_INIT
#define LBANN_REGISTER_DYNAMIC_INIT(NAME)
Definition:
common_cereal_registration.hpp:75
include
lbann
macros
register_layer_with_cereal.hpp
Generated on Wed Oct 11 2023 20:49:38 for LBANN by
1.8.13