All Projects → zhxfl → Cuda Cnn

zhxfl / Cuda Cnn

CNN accelerated by cuda. Test on mnist and finilly get 99.76%

Labels

Projects that are alternatives of or similar to Cuda Cnn

Agency
Execution primitives for C++
Stars: ✭ 127 (-14.19%)
Mutual labels:  cuda
Marian Dev
Fast Neural Machine Translation in C++ - development repository
Stars: ✭ 136 (-8.11%)
Mutual labels:  cuda
Remotery
Single C file, Realtime CPU/GPU Profiler with Remote Web Viewer
Stars: ✭ 1,908 (+1189.19%)
Mutual labels:  cuda
Libcudacxx
The C++ Standard Library for your entire system.
Stars: ✭ 1,861 (+1157.43%)
Mutual labels:  cuda
Partial Order Pruning
Partial Order Pruning: for Best Speed/Accuracy Trade-off in Neural Architecture Search
Stars: ✭ 135 (-8.78%)
Mutual labels:  cuda
Ctranslate2
Fast inference engine for OpenNMT models
Stars: ✭ 140 (-5.41%)
Mutual labels:  cuda
Py Faster Rcnn Windows
py-faster-rcnn that can compile on windows directly
Stars: ✭ 126 (-14.86%)
Mutual labels:  cuda
Optical Flow Filter
A real time optical flow algorithm implemented on GPU
Stars: ✭ 146 (-1.35%)
Mutual labels:  cuda
Spanet
Spatial Attentive Single-Image Deraining with a High Quality Real Rain Dataset (CVPR'19)
Stars: ✭ 136 (-8.11%)
Mutual labels:  cuda
Hoomd Blue
Molecular dynamics and Monte Carlo soft matter simulation on GPUs.
Stars: ✭ 143 (-3.38%)
Mutual labels:  cuda
Nnvm
No description or website provided.
Stars: ✭ 1,639 (+1007.43%)
Mutual labels:  cuda
Claymore
Stars: ✭ 135 (-8.78%)
Mutual labels:  cuda
Forward
A library for high performance deep learning inference on NVIDIA GPUs.
Stars: ✭ 136 (-8.11%)
Mutual labels:  cuda
Mixbench
A GPU benchmark tool for evaluating GPUs on mixed operational intensity kernels (CUDA, OpenCL, HIP, SYCL)
Stars: ✭ 130 (-12.16%)
Mutual labels:  cuda
Gpurir
Python library for Room Impulse Response (RIR) simulation with GPU acceleration
Stars: ✭ 145 (-2.03%)
Mutual labels:  cuda
Professional Cuda C Programming
Stars: ✭ 127 (-14.19%)
Mutual labels:  cuda
Nsimd
Agenium Scale vectorization library for CPUs and GPUs
Stars: ✭ 138 (-6.76%)
Mutual labels:  cuda
Sketchgraphs
A dataset of 15 million CAD sketches with geometric constraint graphs.
Stars: ✭ 148 (+0%)
Mutual labels:  cuda
Volumetric Path Tracer
☁️ Volumetric path tracer using cuda
Stars: ✭ 145 (-2.03%)
Mutual labels:  cuda
Libgdf
[ARCHIVED] C GPU DataFrame Library
Stars: ✭ 142 (-4.05%)
Mutual labels:  cuda

CUDA-CNN

Document

  1. The simple c version author is Eric
  2. Overlap Data Transfers in CUDA
  3. The sub-version use cudnn is tdx

Results

CNN accelerated by cuda.
The start-of-art result's of popular datasets

  1. Test on mnist and get 99.76%, after voting(99.82%) (best 99.79%)
  2. Test on cifar-10 and get 87% (best 89%)

Feature

  1. Use Dropout to train the NetWork
  2. Support checkpoint, the program will save the best test result and save the network weight in the file "Result/checkPoint.txt", If the program exit accidentally, you can continue the program form this checkpoint.
  3. Translate the data set of mnist, including scale, rotate, distortion, accordding to Best Practices for Convolutional Neural Networks Applied to Visual Document Analysis.
  4. The log will be saved in the file "Result/log.txt".
  5. In the convolutional layers, you can chose combine feature maps, according to notes on Convolutional Neural NetWorks.
  6. Support local connection layers.
  7. If you want the program run fast, you can set the "TEST_EPOCH" to be large.
  8. Support branchLayer and combineLayer, which is designed accordding to ***goolenet***, the network structure is no logger an linear structure but Directed acycline graph.

Compile

Depend on opencv and cuda
You can compile the code on windows or linux.
###SDK include path(-I)

  • linux: /usr/local/cuda/samples/common/inc/ (For include file "helper_cuda"); /usr/local/include/opencv/ (Depend on situation)
  • windows: X:/Program Files (x86) /NVIDIA Corporation/CUDA Samples/v6.5/common/inc (For include file "helper_cuda"); X:/Program Files/opencv/vs2010/install/include (Depend on situation)

###Library search path(-L)

  • linux: /usr/local/lib/
  • windows: X:/Program Files/opencv/vs2010/install/x86/cv10/lib (Depend on situation)

###libraries(-l)

  • opencv_core
  • opencv_highgui
  • opencv_imgproc
  • opencv_imgcodecs (need for opencv3.0)
  • cublas
  • curand
  • cudadevrt

###GPU compute

  • capability 2.0

###CMake for Linux

  1. sudo apt-get install cmake libopencv-dev
  2. mkdir build
  3. cd build
  4. cmake ..
  5. make -j16
  6. cd ../mnist/
  7. sh get_mnist.sh
  8. cd ../cifar-10
  9. sh get_cifar10.sh
  10. cd ../
  11. ./build/CUDA-CNN 1 1

###Windows

  1. Install vs2010.
  2. Download and install opencv-2.4 or other higher versions
  3. Download and install cuda-5.0 or other higher versions
  4. When you create a new project using VS2010, You can find NVIDIA-CUDA project template, create a cuda-project.
  5. View-> Property Pages-> Configuration Properties-> CUDA C/C++ -> Device-> Code Generation-> compute_20,sm_20
  6. View-> Property Pages-> Configuration Properties-> CUDA C/C++ -> Common-> Generate Relocatable Device Code-> Yes(-rdc=true)
  7. View-> Property Pages-> Configuration Properties-> Linker-> Input-> Additional Dependencies-> libraries(-l)
  8. View-> Property Pages-> Configuration Properties-> VC++ Directories-> General-> Library search path(-L)
  9. View-> Property Pages-> Configuration Properties-> VC++ Directories-> General-> Include Directories(-I)

###Linux

  1. Install opencv and cuda
  2. Start the nsight from cuda
  3. Create an 'empty cuda' project and import the clone code
  4. Project->Proerties for add-> Build-> Settings->CUDA->Device linker mode: separate compilation
  5. Project->Proerties for add-> Build-> Settings->CUDA->Generate PTX code 2.0
  6. Project->Proerties for add-> Build-> Settings->CUDA->Generate GPU code 2.0
  7. Project->Proerties for add-> Build-> Settings->Tool Settings->NVCC Compiler->includes: +/usr/local/cuda/samples/common/inc/; + opencv sdk include path ;
  8. Project->Proerties for add-> Build-> Settings->Tool Settings->NVCC Linkers->Libraries: libraries(-l)
  9. Project->Proerties for add-> Build-> Settings->Tool Settings->NVCC Linkers->Libraries search path(-L): /usr/local/lib/

Config

  1. CIFAR10
  2. MNIST

Informations

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].