| 209 | |
| 210 | template <typename TensorDataType> |
| 211 | EvalType abstract_evaluation_layer<TensorDataType>::get_value(bool scaled) |
| 212 | { |
| 213 | switch (this->get_device_allocation()) { |
| 214 | case El::Device::CPU: |
| 215 | this->get_comm()->wait(m_allreduce_req); |
| 216 | break; |
| 217 | #ifdef LBANN_HAS_GPU |
| 218 | case El::Device::GPU: |
| 219 | this->m_copy_event.synchronize(); |
| 220 | break; |
| 221 | #endif // LBANN_HAS_GPU |
| 222 | default: |
| 223 | LBANN_ERROR("invalid device"); |
| 224 | } |
| 225 | if (scaled) { |
| 226 | return El::To<EvalDataType>(m_scale) * El::To<EvalDataType>(m_value(0, 0)); |
| 227 | } |
| 228 | else { |
| 229 | return m_value(0, 0); |
| 230 | } |
| 231 | } |
| 232 | |
| 233 | template <typename TensorDataType> |
| 234 | abstract_evaluation_layer<TensorDataType>::abstract_evaluation_layer( |
no test coverage detected