#ifndef CPU_ONLY #include #include #include "glog/logging.h" #include "gtest/gtest.h" #include "caffe/test/test_caffe_main.hpp" namespace caffe { extern cudaDeviceProp CAFFE_TEST_CUDA_PROP; class PlatformTest : public ::testing::Test {}; TEST_F(PlatformTest, TestInitialization) { printf("Major revision number: %d\n", CAFFE_TEST_CUDA_PROP.major); printf("Minor revision number: %d\n", CAFFE_TEST_CUDA_PROP.minor); printf("Name: %s\n", CAFFE_TEST_CUDA_PROP.name); printf("Total global memory: %lu\n", CAFFE_TEST_CUDA_PROP.totalGlobalMem); printf("Total shared memory per block: %lu\n", CAFFE_TEST_CUDA_PROP.sharedMemPerBlock); printf("Total registers per block: %d\n", CAFFE_TEST_CUDA_PROP.regsPerBlock); printf("Warp size: %d\n", CAFFE_TEST_CUDA_PROP.warpSize); printf("Maximum memory pitch: %lu\n", CAFFE_TEST_CUDA_PROP.memPitch); printf("Maximum threads per block: %d\n", CAFFE_TEST_CUDA_PROP.maxThreadsPerBlock); for (int i = 0; i < 3; ++i) printf("Maximum dimension %d of block: %d\n", i, CAFFE_TEST_CUDA_PROP.maxThreadsDim[i]); for (int i = 0; i < 3; ++i) printf("Maximum dimension %d of grid: %d\n", i, CAFFE_TEST_CUDA_PROP.maxGridSize[i]); printf("Clock rate: %d\n", CAFFE_TEST_CUDA_PROP.clockRate); printf("Total constant memory: %lu\n", CAFFE_TEST_CUDA_PROP.totalConstMem); printf("Texture alignment: %lu\n", CAFFE_TEST_CUDA_PROP.textureAlignment); printf("Concurrent copy and execution: %s\n", (CAFFE_TEST_CUDA_PROP.deviceOverlap ? "Yes" : "No")); printf("Number of multiprocessors: %d\n", CAFFE_TEST_CUDA_PROP.multiProcessorCount); printf("Kernel execution timeout: %s\n", (CAFFE_TEST_CUDA_PROP.kernelExecTimeoutEnabled ? "Yes" : "No")); printf("Unified virtual addressing: %s\n", (CAFFE_TEST_CUDA_PROP.unifiedAddressing ? "Yes" : "No")); EXPECT_TRUE(true); } } // namespace caffe #endif // CPU_ONLY