// Copyright 2014 BVLC and contributors.
+#include <gflags/gflags.h>
+#include <glog/logging.h>
#include <cstdio>
#include <ctime>
#include "caffe/common.hpp"
#include "caffe/util/rng.hpp"
+
namespace caffe {
shared_ptr<Caffe> Caffe::singleton_;
return seed;
}
+
+void GlobalInit(int* pargc, char*** pargv) {
+ // Google flags.
+ ::gflags::ParseCommandLineFlags(pargc, pargv, true);
+ // Google logging.
+ ::google::InitGoogleLogging(*(pargv)[0]);
+}
+
#ifdef CPU_ONLY // CPU-only Caffe.
Caffe::Caffe()
return;
}
CUDA_CHECK(cudaGetDeviceProperties(&prop, device));
- printf("Device id: %d\n", device);
- printf("Major revision number: %d\n", prop.major);
- printf("Minor revision number: %d\n", prop.minor);
- printf("Name: %s\n", prop.name);
- printf("Total global memory: %lu\n", prop.totalGlobalMem);
- printf("Total shared memory per block: %lu\n", prop.sharedMemPerBlock);
- printf("Total registers per block: %d\n", prop.regsPerBlock);
- printf("Warp size: %d\n", prop.warpSize);
- printf("Maximum memory pitch: %lu\n", prop.memPitch);
- printf("Maximum threads per block: %d\n", prop.maxThreadsPerBlock);
- printf("Maximum dimension of block: %d, %d, %d\n",
- prop.maxThreadsDim[0], prop.maxThreadsDim[1], prop.maxThreadsDim[2]);
- printf("Maximum dimension of grid: %d, %d, %d\n",
- prop.maxGridSize[0], prop.maxGridSize[1], prop.maxGridSize[2]);
- printf("Clock rate: %d\n", prop.clockRate);
- printf("Total constant memory: %lu\n", prop.totalConstMem);
- printf("Texture alignment: %lu\n", prop.textureAlignment);
- printf("Concurrent copy and execution: %s\n",
- (prop.deviceOverlap ? "Yes" : "No"));
- printf("Number of multiprocessors: %d\n", prop.multiProcessorCount);
- printf("Kernel execution timeout: %s\n",
- (prop.kernelExecTimeoutEnabled ? "Yes" : "No"));
+ LOG(INFO) << "Device id: " << device;
+ LOG(INFO) << "Major revision number: " << prop.major;
+ LOG(INFO) << "Minor revision number: " << prop.minor;
+ LOG(INFO) << "Name: " << prop.name;
+ LOG(INFO) << "Total global memory: " << prop.totalGlobalMem;
+ LOG(INFO) << "Total shared memory per block: " << prop.sharedMemPerBlock;
+ LOG(INFO) << "Total registers per block: " << prop.regsPerBlock;
+ LOG(INFO) << "Warp size: " << prop.warpSize;
+ LOG(INFO) << "Maximum memory pitch: " << prop.memPitch;
+ LOG(INFO) << "Maximum threads per block: " << prop.maxThreadsPerBlock;
+ LOG(INFO) << "Maximum dimension of block: "
+ << prop.maxThreadsDim[0] << ", " << prop.maxThreadsDim[1] << ", "
+ << prop.maxThreadsDim[2];
+ LOG(INFO) << "Maximum dimension of grid: "
+ << prop.maxGridSize[0] << ", " << prop.maxGridSize[1] << ", "
+ << prop.maxGridSize[2];
+ LOG(INFO) << "Clock rate: " << prop.clockRate;
+ LOG(INFO) << "Total constant memory: " << prop.totalConstMem;
+ LOG(INFO) << "Texture alignment: " << prop.textureAlignment;
+ LOG(INFO) << "Concurrent copy and execution: "
+ << (prop.deviceOverlap ? "Yes" : "No");
+ LOG(INFO) << "Number of multiprocessors: " << prop.multiProcessorCount;
+ LOG(INFO) << "Kernel execution timeout: "
+ << (prop.kernelExecTimeoutEnabled ? "Yes" : "No");
return;
}