@@ -9,7 +9,7 @@
|
||||
/*! \brief whether use glog for logging */
|
||||
#ifndef DMLC_USE_GLOG
|
||||
#define DMLC_USE_GLOG 0
|
||||
#endif
|
||||
#endif // DMLC_USE_GLOG
|
||||
|
||||
/*!
|
||||
* \brief whether throw dmlc::Error instead of
|
||||
@@ -19,7 +19,7 @@
|
||||
*/
|
||||
#ifndef DMLC_LOG_FATAL_THROW
|
||||
#define DMLC_LOG_FATAL_THROW 1
|
||||
#endif
|
||||
#endif // DMLC_LOG_FATAL_THROW
|
||||
|
||||
/*!
|
||||
* \brief whether always log a message before throw
|
||||
@@ -27,7 +27,7 @@
|
||||
*/
|
||||
#ifndef DMLC_LOG_BEFORE_THROW
|
||||
#define DMLC_LOG_BEFORE_THROW 1
|
||||
#endif
|
||||
#endif // DMLC_LOG_BEFORE_THROW
|
||||
|
||||
/*!
|
||||
* \brief Whether to use customized logger,
|
||||
@@ -35,7 +35,7 @@
|
||||
*/
|
||||
#ifndef DMLC_LOG_CUSTOMIZE
|
||||
#define DMLC_LOG_CUSTOMIZE 0
|
||||
#endif
|
||||
#endif // DMLC_LOG_CUSTOMIZE
|
||||
|
||||
/*!
|
||||
* \brief Wheter to print stack trace for fatal error,
|
||||
@@ -45,22 +45,22 @@
|
||||
&& defined(__GNUC__) && !defined(__MINGW32__) \
|
||||
&& !defined(__sun) && !defined(__SVR4))
|
||||
#define DMLC_LOG_STACK_TRACE 1
|
||||
#endif
|
||||
#endif // guards
|
||||
|
||||
/*! \brief whether compile with hdfs support */
|
||||
#ifndef DMLC_USE_HDFS
|
||||
#define DMLC_USE_HDFS 0
|
||||
#endif
|
||||
#endif // DMLC_USE_HDFS
|
||||
|
||||
/*! \brief whether compile with s3 support */
|
||||
#ifndef DMLC_USE_S3
|
||||
#define DMLC_USE_S3 0
|
||||
#endif
|
||||
#endif // DMLC_USE_S3
|
||||
|
||||
/*! \brief whether or not use parameter server */
|
||||
#ifndef DMLC_USE_PS
|
||||
#define DMLC_USE_PS 0
|
||||
#endif
|
||||
#endif // DMLC_USE_PS
|
||||
|
||||
/*! \brief whether or not use c++11 support */
|
||||
#ifndef DMLC_USE_CXX11
|
||||
@@ -68,8 +68,8 @@
|
||||
#define DMLC_USE_CXX11 1
|
||||
#else
|
||||
#define DMLC_USE_CXX11 (__cplusplus >= 201103L)
|
||||
#endif
|
||||
#endif
|
||||
#endif // defined(__GXX_EXPERIMENTAL_CXX0X__) || defined(_MSC_VER)
|
||||
#endif // DMLC_USE_CXX11
|
||||
|
||||
/*! \brief strict CXX11 support */
|
||||
#ifndef DMLC_STRICT_CXX11
|
||||
@@ -77,8 +77,8 @@
|
||||
#define DMLC_STRICT_CXX11 1
|
||||
#else
|
||||
#define DMLC_STRICT_CXX11 (__cplusplus >= 201103L)
|
||||
#endif
|
||||
#endif
|
||||
#endif // defined(_MSC_VER)
|
||||
#endif // DMLC_STRICT_CXX11
|
||||
|
||||
/*! \brief Whether cxx11 thread local is supported */
|
||||
#ifndef DMLC_CXX11_THREAD_LOCAL
|
||||
@@ -87,17 +87,17 @@
|
||||
#define DMLC_CXX11_THREAD_LOCAL 1
|
||||
#else
|
||||
#define DMLC_CXX11_THREAD_LOCAL 0
|
||||
#endif
|
||||
#endif // (_MSC_VER >= 1900)
|
||||
#else
|
||||
#define DMLC_CXX11_THREAD_LOCAL (__cplusplus >= 201103L)
|
||||
#endif
|
||||
#endif
|
||||
#endif // defined(_MSC_VER)
|
||||
#endif // DMLC_CXX11_THREAD_LOCAL
|
||||
|
||||
|
||||
/*! \brief whether RTTI is enabled */
|
||||
#ifndef DMLC_ENABLE_RTTI
|
||||
#define DMLC_ENABLE_RTTI 1
|
||||
#endif
|
||||
#endif // DMLC_ENABLE_RTTI
|
||||
|
||||
/// check if g++ is before 4.6
|
||||
#if DMLC_USE_CXX11 && defined(__GNUC__) && !defined(__clang_version__)
|
||||
@@ -107,8 +107,8 @@
|
||||
"compile without c++0x, some features may be disabled")
|
||||
#undef DMLC_USE_CXX11
|
||||
#define DMLC_USE_CXX11 0
|
||||
#endif
|
||||
#endif
|
||||
#endif // __GNUC__ == 4 && __GNUC_MINOR__ < 6
|
||||
#endif // DMLC_USE_CXX11 && defined(__GNUC__) && !defined(__clang_version__)
|
||||
|
||||
|
||||
/*!
|
||||
@@ -117,19 +117,19 @@
|
||||
*/
|
||||
#ifndef DMLC_ENABLE_STD_THREAD
|
||||
#define DMLC_ENABLE_STD_THREAD DMLC_USE_CXX11
|
||||
#endif
|
||||
#endif // DMLC_ENABLE_STD_THREAD
|
||||
|
||||
/*! \brief whether enable regex support, actually need g++-4.9 or higher*/
|
||||
#ifndef DMLC_USE_REGEX
|
||||
#define DMLC_USE_REGEX DMLC_STRICT_CXX11
|
||||
#endif
|
||||
#endif // DMLC_USE_REGEX
|
||||
|
||||
/*! \brief helper macro to supress unused warning */
|
||||
#if defined(__GNUC__)
|
||||
#define DMLC_ATTRIBUTE_UNUSED __attribute__((unused))
|
||||
#else
|
||||
#define DMLC_ATTRIBUTE_UNUSED
|
||||
#endif
|
||||
#endif // defined(__GNUC__)
|
||||
|
||||
/*! \brief helper macro to generate string concat */
|
||||
#define DMLC_STR_CONCAT_(__x, __y) __x##__y
|
||||
@@ -154,41 +154,46 @@
|
||||
# define DISALLOW_COPY_AND_ASSIGN(T) \
|
||||
T(T const&); \
|
||||
T& operator=(T const&)
|
||||
# endif
|
||||
#endif
|
||||
# endif // DMLC_USE_CXX11
|
||||
#endif // DISALLOW_COPY_AND_ASSIGN
|
||||
|
||||
///
|
||||
/// code block to handle optionally loading
|
||||
///
|
||||
#if !defined(__GNUC__)
|
||||
#define fopen64 std::fopen
|
||||
#endif
|
||||
#endif // !defined(__GNUC__)
|
||||
|
||||
#if (defined __MINGW32__) && !(defined __MINGW64__)
|
||||
#define fopen64 std::fopen
|
||||
#endif
|
||||
#endif // (defined __MINGW32__) && !(defined __MINGW64__)
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#if _MSC_VER < 1900
|
||||
|
||||
# if _MSC_VER < 1900
|
||||
// NOTE: sprintf_s is not equivalent to snprintf,
|
||||
// they are equivalent when success, which is sufficient for our case
|
||||
#define snprintf sprintf_s
|
||||
#define vsnprintf vsprintf_s
|
||||
#endif
|
||||
#else
|
||||
#ifdef _FILE_OFFSET_BITS
|
||||
#if _FILE_OFFSET_BITS == 32
|
||||
#pragma message("Warning: FILE OFFSET BITS defined to be 32 bit")
|
||||
#endif
|
||||
#endif
|
||||
# define snprintf sprintf_s
|
||||
# define vsnprintf vsprintf_s
|
||||
# endif // _MSC_VER < 1900
|
||||
|
||||
#ifdef __APPLE__
|
||||
#define off64_t off_t
|
||||
#define fopen64 std::fopen
|
||||
#endif
|
||||
#else
|
||||
|
||||
# ifdef _FILE_OFFSET_BITS
|
||||
# if _FILE_OFFSET_BITS == 32
|
||||
# pragma message("Warning: FILE OFFSET BITS defined to be 32 bit")
|
||||
# endif // _FILE_OFFSET_BITS == 32
|
||||
# endif // _FILE_OFFSET_BITS
|
||||
|
||||
# ifdef __APPLE__
|
||||
# define off64_t off_t
|
||||
# define fopen64 std::fopen
|
||||
# endif // __APPLE__
|
||||
|
||||
extern "C" {
|
||||
#include <sys/types.h>
|
||||
}
|
||||
#endif
|
||||
#endif // _MSC_VER
|
||||
|
||||
#ifdef _MSC_VER
|
||||
//! \cond Doxygen_Suppress
|
||||
@@ -203,7 +208,8 @@ typedef unsigned __int64 uint64_t;
|
||||
//! \endcond
|
||||
#else
|
||||
#include <inttypes.h>
|
||||
#endif
|
||||
#endif // _MSC_VER
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
@@ -211,7 +217,7 @@ typedef unsigned __int64 uint64_t;
|
||||
#define noexcept_true throw ()
|
||||
#define noexcept_false
|
||||
#define noexcept(a) noexcept_##a
|
||||
#endif
|
||||
#endif // defined(_MSC_VER) && _MSC_VER < 1900
|
||||
|
||||
#if DMLC_USE_CXX11
|
||||
#define DMLC_THROW_EXCEPTION noexcept(false)
|
||||
@@ -219,7 +225,7 @@ typedef unsigned __int64 uint64_t;
|
||||
#else
|
||||
#define DMLC_THROW_EXCEPTION
|
||||
#define DMLC_NO_EXCEPTION
|
||||
#endif
|
||||
#endif // DMLC_USE_CXX11
|
||||
|
||||
/*! \brief namespace for dmlc */
|
||||
namespace dmlc {
|
||||
@@ -272,6 +278,6 @@ inline const char* BeginPtr(const std::string &str) {
|
||||
#if defined(_MSC_VER) && _MSC_VER < 1900
|
||||
#define constexpr const
|
||||
#define alignof __alignof
|
||||
#endif
|
||||
#endif // defined(_MSC_VER) && _MSC_VER < 1900
|
||||
|
||||
#endif // DMLC_BASE_H_
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#include "./base.h"
|
||||
#if DMLC_USE_CXX11
|
||||
#include <type_traits>
|
||||
#endif
|
||||
#endif // DMLC_USE_CXX11
|
||||
#include <string>
|
||||
|
||||
namespace dmlc {
|
||||
@@ -25,7 +25,7 @@ struct is_pod {
|
||||
#else
|
||||
/*! \brief the value of the traits */
|
||||
static const bool value = false;
|
||||
#endif
|
||||
#endif // DMLC_USE_CXX11
|
||||
};
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ struct is_integral {
|
||||
#else
|
||||
/*! \brief the value of the traits */
|
||||
static const bool value = false;
|
||||
#endif
|
||||
#endif // DMLC_USE_CXX11
|
||||
};
|
||||
|
||||
/*!
|
||||
@@ -56,7 +56,7 @@ struct is_floating_point {
|
||||
#else
|
||||
/*! \brief the value of the traits */
|
||||
static const bool value = false;
|
||||
#endif
|
||||
#endif // DMLC_USE_CXX11
|
||||
};
|
||||
|
||||
/*!
|
||||
@@ -72,7 +72,7 @@ struct is_arithmetic {
|
||||
/*! \brief the value of the traits */
|
||||
static const bool value = (dmlc::is_integral<T>::value ||
|
||||
dmlc::is_floating_point<T>::value);
|
||||
#endif
|
||||
#endif // DMLC_USE_CXX11
|
||||
};
|
||||
|
||||
/*!
|
||||
@@ -147,7 +147,7 @@ DMLC_DECLARE_TRAITS(is_integral, uint64_t, true);
|
||||
DMLC_DECLARE_TRAITS(is_floating_point, float, true);
|
||||
DMLC_DECLARE_TRAITS(is_floating_point, double, true);
|
||||
|
||||
#endif
|
||||
#endif // DMLC_USE_CXX11
|
||||
|
||||
DMLC_DECLARE_TYPE_NAME(float, "float");
|
||||
DMLC_DECLARE_TYPE_NAME(double, "double");
|
||||
|
||||
@@ -13,13 +13,13 @@
|
||||
#else
|
||||
#define RABIT_EXTERN_C
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
#endif // __cplusplus
|
||||
|
||||
#if defined(_MSC_VER) || defined(_WIN32)
|
||||
#define RABIT_DLL RABIT_EXTERN_C __declspec(dllexport)
|
||||
#else
|
||||
#define RABIT_DLL RABIT_EXTERN_C
|
||||
#endif
|
||||
#endif // defined(_MSC_VER) || defined(_WIN32)
|
||||
|
||||
/*! \brief rabit unsigned long type */
|
||||
typedef unsigned long rbt_ulong; // NOLINT(*)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*!
|
||||
* Copyright by Contributors
|
||||
* Copyright (c) 2014-2019 by Contributors
|
||||
* \file rabit-inl.h
|
||||
* \brief implementation of inline template function for rabit interface
|
||||
*
|
||||
@@ -188,7 +188,7 @@ inline void TrackerPrintf(const char *fmt, ...) {
|
||||
msg.resize(strlen(msg.c_str()));
|
||||
TrackerPrint(msg);
|
||||
}
|
||||
#endif
|
||||
#endif // RABIT_STRICT_CXX98_
|
||||
// load latest check point
|
||||
inline int LoadCheckPoint(Serializable *global_model,
|
||||
Serializable *local_model) {
|
||||
@@ -323,6 +323,6 @@ inline void SerializeReducer<DType>::Allreduce(DType *sendrecvobj,
|
||||
std::function<void()> prepare_fun) {
|
||||
this->Allreduce(sendrecvobj, max_nbytes, count, InvokeLambda_, &prepare_fun);
|
||||
}
|
||||
#endif
|
||||
#endif // DMLC_USE_CXX11
|
||||
} // namespace rabit
|
||||
#endif // RABIT_INTERNAL_RABIT_INL_H_
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*!
|
||||
* Copyright by Contributors
|
||||
* Copyright (c) 2014-2019 by Contributors
|
||||
* \file timer.h
|
||||
* \brief This file defines the utils for timing
|
||||
* \author Tianqi Chen, Nacho, Tianyi
|
||||
@@ -10,7 +10,7 @@
|
||||
#ifdef __MACH__
|
||||
#include <mach/clock.h>
|
||||
#include <mach/mach.h>
|
||||
#endif
|
||||
#endif // __MACH__
|
||||
#include "./utils.h"
|
||||
|
||||
namespace rabit {
|
||||
@@ -19,22 +19,22 @@ namespace utils {
|
||||
* \brief return time in seconds, not cross platform, avoid to use this in most places
|
||||
*/
|
||||
inline double GetTime(void) {
|
||||
#ifdef __MACH__
|
||||
#ifdef __MACH__
|
||||
clock_serv_t cclock;
|
||||
mach_timespec_t mts;
|
||||
host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock);
|
||||
utils::Check(clock_get_time(cclock, &mts) == 0, "failed to get time");
|
||||
mach_port_deallocate(mach_task_self(), cclock);
|
||||
return static_cast<double>(mts.tv_sec) + static_cast<double>(mts.tv_nsec) * 1e-9;
|
||||
#else
|
||||
#if defined(__unix__) || defined(__linux__)
|
||||
#else
|
||||
#if defined(__unix__) || defined(__linux__)
|
||||
timespec ts;
|
||||
utils::Check(clock_gettime(CLOCK_REALTIME, &ts) == 0, "failed to get time");
|
||||
return static_cast<double>(ts.tv_sec) + static_cast<double>(ts.tv_nsec) * 1e-9;
|
||||
#else
|
||||
#else
|
||||
return static_cast<double>(time(NULL));
|
||||
#endif
|
||||
#endif
|
||||
#endif // defined(__unix__) || defined(__linux__)
|
||||
#endif // __MACH__
|
||||
}
|
||||
} // namespace utils
|
||||
} // namespace rabit
|
||||
|
||||
@@ -14,32 +14,35 @@
|
||||
|
||||
#ifndef RABIT_STRICT_CXX98_
|
||||
#include <cstdarg>
|
||||
#endif
|
||||
#endif // RABIT_STRICT_CXX98_
|
||||
|
||||
#if !defined(__GNUC__) || defined(__FreeBSD__)
|
||||
#define fopen64 std::fopen
|
||||
#endif
|
||||
#endif // !defined(__GNUC__) || defined(__FreeBSD__)
|
||||
|
||||
#ifdef _MSC_VER
|
||||
// NOTE: sprintf_s is not equivalent to snprintf,
|
||||
// they are equivalent when success, which is sufficient for our case
|
||||
#define snprintf sprintf_s
|
||||
#define vsnprintf vsprintf_s
|
||||
|
||||
#else
|
||||
|
||||
#ifdef _FILE_OFFSET_BITS
|
||||
#if _FILE_OFFSET_BITS == 32
|
||||
#pragma message("Warning: FILE OFFSET BITS defined to be 32 bit")
|
||||
#endif
|
||||
#endif
|
||||
#endif // _FILE_OFFSET_BITS == 32
|
||||
#endif // _FILE_OFFSET_BITS
|
||||
|
||||
#ifdef __APPLE__
|
||||
#define off64_t off_t
|
||||
#define fopen64 std::fopen
|
||||
#endif
|
||||
#endif // __APPLE__
|
||||
|
||||
extern "C" {
|
||||
#include <sys/types.h>
|
||||
}
|
||||
#endif
|
||||
#endif // _MSC_VER
|
||||
|
||||
#ifdef _MSC_VER
|
||||
typedef unsigned char uint8_t;
|
||||
@@ -49,7 +52,7 @@ typedef unsigned __int64 uint64_t;
|
||||
typedef __int64 int64_t;
|
||||
#else
|
||||
#include <inttypes.h>
|
||||
#endif
|
||||
#endif // _MSC_VER
|
||||
|
||||
namespace rabit {
|
||||
/*! \brief namespace for helper utils of the project */
|
||||
@@ -88,8 +91,8 @@ inline void HandleLogPrint(const char *msg) {
|
||||
void HandleAssertError(const char *msg);
|
||||
void HandleCheckError(const char *msg);
|
||||
void HandlePrint(const char *msg);
|
||||
#endif
|
||||
#endif
|
||||
#endif // RABIT_STRICT_CXX98_
|
||||
#endif // RABIT_CUSTOMIZE_MSG_
|
||||
#ifdef RABIT_STRICT_CXX98_
|
||||
// these function pointers are to be assigned
|
||||
extern "C" void (*Printf)(const char *fmt, ...);
|
||||
@@ -151,7 +154,7 @@ inline void Error(const char *fmt, ...) {
|
||||
HandleCheckError(msg.c_str());
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif // RABIT_STRICT_CXX98_
|
||||
|
||||
/*! \brief replace fopen, report error when the file open fails */
|
||||
inline std::FILE *FopenCheck(const char *fname, const char *flag) {
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
#define DMLC_USE_CXX11 1
|
||||
#else
|
||||
#define DMLC_USE_CXX11 (__cplusplus >= 201103L)
|
||||
#endif
|
||||
#endif
|
||||
#endif // defined(__GXX_EXPERIMENTAL_CXX0X__) || defined(_MSC_VER)
|
||||
#endif // DMLC_USE_CXX11
|
||||
|
||||
// optionally support of lambda functions in C++11, if available
|
||||
#if DMLC_USE_CXX11
|
||||
@@ -108,7 +108,7 @@ inline void TrackerPrint(const std::string &msg);
|
||||
* \param fmt the format string
|
||||
*/
|
||||
inline void TrackerPrintf(const char *fmt, ...);
|
||||
#endif
|
||||
#endif // RABIT_STRICT_CXX98_
|
||||
/*!
|
||||
* \brief broadcasts a memory region to every node from the root
|
||||
*
|
||||
@@ -297,7 +297,7 @@ class Reducer {
|
||||
*/
|
||||
inline void Allreduce(DType *sendrecvbuf, size_t count,
|
||||
std::function<void()> prepare_fun);
|
||||
#endif
|
||||
#endif // DMLC_USE_CXX11
|
||||
|
||||
private:
|
||||
/*! \brief function handle to do reduce */
|
||||
@@ -345,7 +345,7 @@ class SerializeReducer {
|
||||
inline void Allreduce(DType *sendrecvobj,
|
||||
size_t max_nbyte, size_t count,
|
||||
std::function<void()> prepare_fun);
|
||||
#endif
|
||||
#endif // DMLC_USE_CXX11
|
||||
|
||||
private:
|
||||
/*! \brief function handle to do reduce */
|
||||
|
||||
Reference in New Issue
Block a user