提交 909cc6f0 编写于 作者: L Liu Yiqun

Implement paddle::str::to_string instead of calling std::to_string.

上级 6478483f
...@@ -14,6 +14,7 @@ limitations under the License. */ ...@@ -14,6 +14,7 @@ limitations under the License. */
#include "Storage.h" #include "Storage.h"
#include "Allocator.h" #include "Allocator.h"
#include "paddle/utils/StringUtil.h"
#include "paddle/utils/Util.h" #include "paddle/utils/Util.h"
DEFINE_int32(pool_limit_size, DEFINE_int32(pool_limit_size,
...@@ -62,7 +63,7 @@ PoolAllocator* StorageEngine::getGpuAllocator(int deviceId) { ...@@ -62,7 +63,7 @@ PoolAllocator* StorageEngine::getGpuAllocator(int deviceId) {
} }
if (gpuAllocator_[deviceId] == nullptr) { if (gpuAllocator_[deviceId] == nullptr) {
std::string name = std::string name =
"gpu" + std::to_string(deviceId) + std::string("_pool"); "gpu" + str::to_string(deviceId) + std::string("_pool");
gpuAllocator_[deviceId] = gpuAllocator_[deviceId] =
new PoolAllocator(new GpuAllocator(), FLAGS_pool_limit_size, name); new PoolAllocator(new GpuAllocator(), FLAGS_pool_limit_size, name);
} }
......
...@@ -29,6 +29,7 @@ limitations under the License. */ ...@@ -29,6 +29,7 @@ limitations under the License. */
#include "paddle/utils/Flags.h" #include "paddle/utils/Flags.h"
#include "paddle/utils/GlobalConstants.h" #include "paddle/utils/GlobalConstants.h"
#include "paddle/utils/Stat.h" #include "paddle/utils/Stat.h"
#include "paddle/utils/StringUtil.h"
DEFINE_int32(pserver_num_threads, 1, "number of threads for sync op exec"); DEFINE_int32(pserver_num_threads, 1, "number of threads for sync op exec");
DEFINE_double(async_lagged_ratio_min, DEFINE_double(async_lagged_ratio_min,
...@@ -218,7 +219,8 @@ void ParameterServer2::setConfig(const SetConfigRequest& request, ...@@ -218,7 +219,8 @@ void ParameterServer2::setConfig(const SetConfigRequest& request,
callback(response); callback(response);
/// always defined, barrier slowest node function need it. /// always defined, barrier slowest node function need it.
statSet_.reset(new StatSet("ParameterServer" + std::to_string(serverId_))); statSet_.reset(new StatSet("ParameterServer" +
str::to_string(static_cast<int>(serverId_))));
} }
real bufferSum(const std::vector<ParameterServer2::Buffer>& buffers) { real bufferSum(const std::vector<ParameterServer2::Buffer>& buffers) {
......
...@@ -54,6 +54,25 @@ inline T toWithStatus(const std::string& s, bool* ok = nullptr) { ...@@ -54,6 +54,25 @@ inline T toWithStatus(const std::string& s, bool* ok = nullptr) {
return v; return v;
} }
/**
* Cast type T to string with status.
*
* @param [in] v input value of type T.
* @param [out] ok status, return true if there is no error in casting. Set
* nullptr if user don't care error at all.
* @return result of casting. If error occurred, a empty string will be
* returned.
*/
template <class T>
inline std::string toWithStatus(const T v, bool* ok = nullptr) {
std::ostringstream sout;
sout << v;
if (ok) {
*ok = !sout.fail();
}
return sout.str();
}
/// Convert string to type T. It makes sure all the characters in s are used. /// Convert string to type T. It makes sure all the characters in s are used.
/// Otherwise it will abort. /// Otherwise it will abort.
/// ///
...@@ -67,6 +86,18 @@ inline T to(const std::string& s) { ...@@ -67,6 +86,18 @@ inline T to(const std::string& s) {
return v; return v;
} }
/// Convert type T to string.
///
/// @tparam T type of input value
/// @param v input value of type T
template <class T>
std::string to_string(T v) {
bool ok;
std::string s = toWithStatus<T>(v, &ok);
CHECK(ok) << "Cannot convert v(" << v << ") to type std::string";
return s;
}
} // namespace str } // namespace str
#undef DEFINE_STRING_CONVERSION #undef DEFINE_STRING_CONVERSION
......
...@@ -19,6 +19,7 @@ limitations under the License. */ ...@@ -19,6 +19,7 @@ limitations under the License. */
#include "paddle/utils/CustomStackTrace.h" #include "paddle/utils/CustomStackTrace.h"
#include "paddle/utils/Locks.h" #include "paddle/utils/Locks.h"
#include "paddle/utils/StringUtil.h"
#include "paddle/utils/Util.h" #include "paddle/utils/Util.h"
DEFINE_int32(test_thread_num, 10, "testing thread number"); DEFINE_int32(test_thread_num, 10, "testing thread number");
...@@ -69,11 +70,11 @@ TEST(CustomStackTrace, normalTrain) { ...@@ -69,11 +70,11 @@ TEST(CustomStackTrace, normalTrain) {
while (countDown-- > 0) { while (countDown-- > 0) {
start.wait(); start.wait();
for (size_t i = 0; i < layerSize; ++i) { for (size_t i = 0; i < layerSize; ++i) {
tracer.push("layer_" + std::to_string(i)); tracer.push("layer_" + paddle::str::to_string(i));
} }
tracer.pop(""); tracer.pop("");
for (size_t i = 0; i < layerSize; ++i) { for (size_t i = 0; i < layerSize; ++i) {
tracer.pop("layer_" + std::to_string(layerSize - 1 - i)); tracer.pop("layer_" + paddle::str::to_string(layerSize - 1 - i));
} }
finish.wait(); finish.wait();
} }
...@@ -89,7 +90,7 @@ TEST(CustomStackTrace, normalTest) { ...@@ -89,7 +90,7 @@ TEST(CustomStackTrace, normalTest) {
while (countDown-- > 0) { while (countDown-- > 0) {
start.wait(); start.wait();
for (size_t i = 0; i < layerSize; ++i) { for (size_t i = 0; i < layerSize; ++i) {
tracer.push("layer_" + std::to_string(i)); tracer.push("layer_" + paddle::str::to_string(i));
} }
tracer.clear(); // in forward test, tracer will clear after forward. tracer.clear(); // in forward test, tracer will clear after forward.
finish.wait(); finish.wait();
......
...@@ -13,13 +13,14 @@ See the License for the specific language governing permissions and ...@@ -13,13 +13,14 @@ See the License for the specific language governing permissions and
limitations under the License. */ limitations under the License. */
#include "paddle/utils/CustomStackTrace.h" #include "paddle/utils/CustomStackTrace.h"
#include "paddle/utils/StringUtil.h"
#include "paddle/utils/Util.h" #include "paddle/utils/Util.h"
int main(int argc, char** argv) { int main(int argc, char** argv) {
paddle::initMain(argc, argv); paddle::initMain(argc, argv);
for (size_t i = 0; i < 1000; ++i) { for (size_t i = 0; i < 1000; ++i) {
paddle::gLayerStackTrace.push("layer_" + std::to_string(i)); paddle::gLayerStackTrace.push("layer_" + paddle::str::to_string(i));
if (i == 998) { if (i == 998) {
throw "Unhandle exception"; throw "Unhandle exception";
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册