Giter Site home page Giter Site logo

frnn's Introduction

fastRNN

Overview

frnn is a fast recurrent neural network library written in c++, and uses CUDA and OpenMP for paralelization. It supports all possible configurations of RNN's.

Support will be provided for both CPU-GPU and CPU-only systems, and will determine which device to use for each function based on its complexity.

Documentation

The code is well documented, with descripitons being provided for all classes, structs, functions and variables.

Additionally more thourough documentation will be provided on the frnn website, however, this will be slow as the primary focus is to first provide functionality with documentation in the code, and then for thorough documentation.

Compiling and Running

Pre-requisits

CUDA (currently required for GPU and CPU)

You will need to have the CUDA SDK installed as a large component of the code uses CUDA. Currently, there are not separate components in the makefiles for GPU and CPU versions, if there is no GPU the compiler will select the CPU implementations of the functions, thus the CUDA SDK is required for both versions (I realize this is a problem, and will work on rectifying it).

Additionally, the Makefiles assume that CUDA is installed as /usr/local/cuda-7.0, if this is not the case you will need to change this in the makefiles.

g++

The makefiles use g++, thus it is required to build the code (again this will be changed to support any compiler).

Note: The intention is to have a config file in the future to allow for a custom install.

Individual Components

Tests are written for each of the component of the library and the makefile for the component can be found in its directory. For example, to test the functionality for the Tensor class, navigate to the Tensor directory (/src/tensor) and then (if the pre-requisits are installed) run make to make the component tests.

The tests can then be run with ./<conponent_name>_tests

All Components

All tests for all components can also be run at once. Navigate to the /src directory and then run ```make`` which will make all tests.

All the test can then be run by ./all_tests

Cleaning

To clean components or all the tests, run make clean from the same directory from which the make command was issued, which will clean the executable and the object files.

frnn's People

Contributors

robclu avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

zuiwufenghua

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.