27 #ifndef LBANN_LAYERS_MISC_UNIFORM_HASH_HPP_INCLUDED 28 #define LBANN_LAYERS_MISC_UNIFORM_HASH_HPP_INCLUDED 32 #include "lbann/proto/layers.pb.h" 42 template <
typename TensorDataType, data_layout Layout, El::Device Device>
46 static_assert(
Device == El::Device::GPU,
47 "uniform_hash_layer only supports GPU");
49 static_assert(
Device != El::Device::CPU,
50 "uniform_hash_layer only supports GPU");
51 #endif // LBANN_HAS_GPU 63 template <
typename ArchiveT>
68 std::string
get_type()
const override;
86 template <
typename T, data_layout L, El::Device D>
88 lbann_data::Layer& proto)
const 90 proto.set_datatype(proto::ProtoDataType<T>);
91 proto.mutable_uniform_hash();
95 #ifndef LBANN_UNIFORM_HASH_LAYER_INSTANTIATE 97 extern template class uniform_hash_layer<T, \ 98 data_layout::DATA_PARALLEL, \ 100 extern template class uniform_hash_layer<T, \ 101 data_layout::MODEL_PARALLEL, \ 105 #endif // LBANN_UNIFORM_HASH_LAYER_INSTANTIATE 106 #endif // LBANN_HAS_GPU 110 #endif // LBANN_LAYERS_MISC_UNIFORM_HASH_HPP_INCLUDED
constexpr El::Device Device
data_layout
Data layout that is optimized for different modes of parallelism.