All Projects → msbrogli → sdm-framework

msbrogli / sdm-framework

Licence: GPL-2.0 license
A Sparse Distributed Memory Framework.

Programming Languages

c
50402 projects - #5 most used programming language
python
139335 projects - #7 most used programming language
C++
36643 projects - #6 most used programming language
Makefile
30231 projects
TeX
3793 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to sdm-framework

xSDM
Open-source unpacker for Microsoft Imagine/Dreamspark/MSDNAA SDC format
Stars: ✭ 76 (+105.41%)
Mutual labels:  sdm
enmSdm
Faster, better, smarter ecological niche modeling and species distribution modeling
Stars: ✭ 39 (+5.41%)
Mutual labels:  sdm
HyperLandmark-iOS
A 68-point Facial landmark at 28-30 FPS on iPhone 6S+. HyperLandmark is get from https://github.com/zeusees/HyperLandmark.
Stars: ✭ 69 (+86.49%)
Mutual labels:  sdm
spaudiopy
Spatial Audio Python Package
Stars: ✭ 91 (+145.95%)
Mutual labels:  sdm

Sparse Distributed Memory Framework

This project intends to be a framework which can be adapted to any usage of a Sparse Distributed Memory (Kanerva, 1988).

We have been working on Pentii Kanerva's Sparse Distributed Memory:

We would really like to ask users for feedback, and, should they find it useful, a link or citation:

Brogliato, M.S.; Linhares, A. (2017) Sparse Distributed Memory: a reference implementation. Working Paper, FGV, Vialink.

How to build & test

To generate the library and run some tests:

cd src/
make
make tests
./test1

To run Python tests:

python tests.py

In dev mode, there should be a symbolic link from src/libsdm.so to sdm/_libsdm.so. If it does not exist, create one running:

cd sdm/
ln -s ../src/libsdm.so _libsdm.so

How to install

This framework has the following dependencies: libbsd and libOpenCL.

pip install sdm

If you would like to install the most recent code:

pip install git+https://github.com/msbrogli/sdm-framework.git

FloydHub

To install in a FloyHub GPU instance, you just have to run:

apt-get update && apt-get install libbsd-dev nvidia-opencl-icd-304 opencl-headers
sudo ln -s /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /usr/lib/libOpenCL.so

AWS GPU instances

To install in an AWS instance, you just have to run:

apt-get update && apt-get install libbsd-dev nvidia-opencl-icd-304 opencl-headers build-essential

For p2 instances:

wget http://us.download.nvidia.com/XFree86/Linux-x86_64/367.106/NVIDIA-Linux-x86_64-367.106.run
sudo /bin/bash ./NVIDIA-Linux-x86_64-367.106.run

For p3 instances:

wget http://us.download.nvidia.com/titan/linux/387.34/nvidia-driver-local-repo-ubuntu1404-387.34_1.0-1_amd64.deb
dpkg -i nvidia-driver-local-repo-ubuntu1404-387.34_1.0-1_amd64.deb
sudo apt-key add /var/nvidia-driver-local-repo-387.34/7fa2af80.pub
dpkg -i nvidia-driver-local-repo-ubuntu1404-387.34_1.0-1_amd64.deb
apt-get update & apt-get install cuda-drivers
reboot

To confirm the driver is functional, run nvidia-smi. For further information, see [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-nvidia-driver.html].

To optimize and achieve better performance, run:

sudo nvidia-persistenced
sudo nvidia-smi --auto-boost-default=0
sudo nvidia-smi -ac 2505,875

For further information about optimization, see [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/optimize_gpu.html].

Documentation

The documentation is available at [http://sdm-framework.readthedocs.io/]

How do I contribute?

Just fork it and do the usual pull request dance. :)

Docker

The docker images are published at [https://hub.docker.com/r/msbrogli/sdm-framework/].

They already include the OpenCL ICD for FloydHub GPU instances.

Build

docker build -t sdm-test ./

Run

docker run -it -p 8888:8888 sdm-test

Useful links

TODO

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].