Fix compilation errors
diff --git a/torch/lib/THD/base/data_channels/DataChannelGloo.cpp b/torch/lib/THD/base/data_channels/DataChannelGloo.cpp
index 20e7812..e7bd998 100644
--- a/torch/lib/THD/base/data_channels/DataChannelGloo.cpp
+++ b/torch/lib/THD/base/data_channels/DataChannelGloo.cpp
@@ -107,8 +107,10 @@
template<DataOperation op, typename... Args>
-store_type DataChannelGloo::getStore(THDGroup group_id, Args... args) {
- std::string unique_prefix = std::to_string(op) + "-" + std::to_string(group_id);
+DataChannelGloo::store_type
+DataChannelGloo::getStore(THDGroup group_id, Args... args) {
+ std::string unique_prefix = std::to_string(static_cast<uint8_t>(op)) + "-" +
+ std::to_string(group_id);
std::vector<std::string> v = {std::to_string(args)...};
for (auto it = v.begin(); it != v.end(); ++it) {
unique_prefix += "-" + *it;
diff --git a/torch/lib/THD/base/data_channels/DataChannelGloo.hpp b/torch/lib/THD/base/data_channels/DataChannelGloo.hpp
index f932c3d..2d0588f 100644
--- a/torch/lib/THD/base/data_channels/DataChannelGloo.hpp
+++ b/torch/lib/THD/base/data_channels/DataChannelGloo.hpp
@@ -1,5 +1,6 @@
#pragma once
+#include "../ChannelUtils.hpp"
#include "../DataChannel.hpp"
#include "DataChannelUtils.hpp"
@@ -109,7 +110,7 @@
THDGroup group_id = THDGroupWORLD);
template<DataOperation op, typename... Args>
- store_type getStore(DataOperation op, THDGroup group_id, Args... args);
+ store_type getStore(THDGroup group_id, Args... args);
void _send(const Scalar& data, rank_type dst_id);
void _send(thpp::Tensor& data, rank_type dst_id);
@@ -178,7 +179,7 @@
template<DataOperation op>
std::shared_ptr<context_type> getSharedContext(
const DataChannel::Group& group,
- DataChannelGloo::store_type& store
+ DataChannelGloo::store_type&& store
) {
if (_shared_contexts.find(op) == _shared_contexts.end()) {
_shared_contexts[op] = createContext(group, store);
@@ -194,7 +195,7 @@
template<DataOperation D, typename T, typename... Args>
value_type getAlgorithm(THDGroup group_id, const DataChannel::Group& group,
- DataChannelGloo::store_type& store, Args... args) {
+ DataChannelGloo::store_type&& store, Args... args) {
auto key = algorithm_spec<D, T>::key(group_id, args...);
if (_algorithms.find(key) == _algorithms.end()) {
_algorithms[key] = algorithm_spec<D, T>::create(group, store, args...);