{
"info": {
"author": "Daniel Patrick Maljovec",
"author_email": "maljovec002@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 2 - Pre-Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Natural Language :: English",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6"
],
"description": "==========\nnglpy-cuda\n==========\n\n.. badges\n\n.. image:: https://img.shields.io/pypi/v/nglpy_cuda.svg\n :target: https://pypi.python.org/pypi/nglpy_cuda\n :alt: PyPi\n.. image:: https://travis-ci.org/maljovec/nglpy_cuda.svg?branch=master\n :target: https://travis-ci.org/maljovec/nglpy_cuda\n :alt: Travis-CI\n.. image:: https://coveralls.io/repos/github/maljovec/nglpy_cuda/badge.svg?branch=master\n :target: https://coveralls.io/github/maljovec/nglpy_cuda?branch=master\n :alt: Coveralls\n.. image:: https://readthedocs.org/projects/nglpy-cuda/badge/?version=latest\n :target: https://nglpy-cuda.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n.. image:: https://pyup.io/repos/github/maljovec/nglpy_cuda/shield.svg\n :target: https://pyup.io/repos/github/maljovec/nglpy_cuda/\n :alt: Pyup\n\n.. end_badges\n\n.. logo\n\n.. image:: docs/_static/nglpycu.svg\n :align: center\n :alt: nglpycu\n\n.. end_logo\n\n.. introduction\n\nA reimplementation of the Neighborhood Graph Library\n(NGL_) developed by Carlos Correa and Peter Lindstrom that\nsupports pruning a graph on the GPU. Developed as a\nreplacement for nglpy_ where a CUDA-compatible GPU is\navailable.\n\n.. _NGL: http://www.ngraph.org/\n\n.. _nglpy: https://github.com/maljovec/nglpy\n\n.. LONG_DESCRIPTION\n\nGiven a set of arbitrarily arranged points in any dimension, this library is\nable to construct several different types of neighborhood graphs mainly focusing\non empty region graph algorithms such as the beta skeleton family of graphs.\n\nConsider using an optimized approximate nearest neighbor library (see ann-benchmarks_\nfor an updated list of algorithms and their relative performance) to construct the\ninitial graph to be pruned, otherwise this library will rely on the exact k-nearest\nalgorithm provided by scikit-learn_.\n\n.. _ann-benchmarks: http://ann-benchmarks.com/\n\n.. _scikit-learn: http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.NearestNeighbors.html#sklearn.neighbors.NearestNeighbors\n\n.. END_LONG_DESCRIPTION\n\n.. end_introduction\n\n.. prerequisites\n\nPrerequisites\n=============\n\nNvidia CUDA Toolkit (TODO: determine minimum version number) - tested on 9.1.\n\nOtherwise, all other python requirements can be installed via pip::\n\n pip install -r requirements.txt\n\n.. end_prerequisites\n\n.. install\n\nInstallation\n============\nThere is an experimental package available on pip, however the prerequisite libraries are not specified correctly, so be sure you have numpy, scipy, sklearn, and faiss installed (subject to change).\n::\n pip install nglpy_cuda\n\n.. end-install\n\n.. build\n\nBuild\n=====\n\nBuilding the Python package\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nFor now, don't install this yet, but set it up in development mode::\n\n python setup.py develop\n\nRun the test suite to verify it is able to make the CUDA calls without erroring::\n\n python setup.py test\n\nFrom here you should be ready to use the library. Only proceed below if you\nrun into some install issues and want to try to at least build the shared\nlibrary that you can use in C/C++ applications.\n\nBuilding and Testing the CUDA Library Separately\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nUntil I get this packaged appropriately, use the following command to compile the CUDA code::\n\n nvcc src/ngl_cuda.cu -I include/ --compiler-options \"-fPIC\" --shared -o libnglcu.so\n\nThe CUDA API can then be tested with a small C++ example (TODO: provide small data file in repo for testing this next line)::\n\n g++ -L. -I include/ src/test.cpp -lnglcu -o test\n ./test -i -d <# of dimensions> -c <# of points> -n -k -b -p -s -r \n\n.. end_build\n\n.. usage\n\nUsage\n=====\n\nThe Python interface exposes the a Graph object that can be be iterated\nover its edges which produces a tuple where the first two values are the\ninteger indices and the third value is the distance between the two\npoints::\n\n import numpy as np\n import nglpy_cuda as ngl\n\n X = np.random.uniform(size=(10, 2))\n graph = ngl.Graph(X, relaxed=False)\n\n for edge in graph:\n print(edge)\n\n.. end-usage\n\n\n=======\nHistory\n=======\n\n0.2.0 (2018-10-03)\n------------------\n\n* Addition of probabilistic graphs\n* Minor changes to API structure, now you must call build after initializing an object\n\n\n0.1.0 (2018-07-15)\n------------------\n\n* First release on PyPI.",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/maljovec/nglpy_cuda",
"keywords": "nglpy_cuda",
"license": "BSD license",
"maintainer": "",
"maintainer_email": "",
"name": "nglpy-cuda",
"package_url": "https://pypi.org/project/nglpy-cuda/",
"platform": "",
"project_url": "https://pypi.org/project/nglpy-cuda/",
"project_urls": {
"Homepage": "https://github.com/maljovec/nglpy_cuda"
},
"release_url": "https://pypi.org/project/nglpy-cuda/0.2.0/",
"requires_dist": null,
"requires_python": "",
"summary": "TODO",
"version": "0.2.0"
},
"last_serial": 4335394,
"releases": {
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "7ba2da5ab9272d2a9f7f61a501553d95",
"sha256": "15b23977ac1ddb2b5059343367d527999ad8c258000ab6a304f51c5418e302f7"
},
"downloads": -1,
"filename": "nglpy_cuda-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "7ba2da5ab9272d2a9f7f61a501553d95",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 21622,
"upload_time": "2018-09-19T10:59:46",
"url": "https://files.pythonhosted.org/packages/04/cb/f813f67479af30580b5685aed629b540ec5121ca5981d3dadc05c59b646a/nglpy_cuda-0.1.0.tar.gz"
}
],
"0.1.1": [
{
"comment_text": "",
"digests": {
"md5": "39f6b5c21be1a33f3b543f964ee777bf",
"sha256": "64f24d3db61b45b5e5cd7f9a47c73aef3cbd7134aa3a7d1cd2cc7e90ca38b486"
},
"downloads": -1,
"filename": "nglpy_cuda-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "39f6b5c21be1a33f3b543f964ee777bf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 23208,
"upload_time": "2018-09-25T06:58:49",
"url": "https://files.pythonhosted.org/packages/fd/18/d8ae4ffb79aa84118944a8e8fb3eaf721181ca9187ac2ac981010f498aea/nglpy_cuda-0.1.1.tar.gz"
}
],
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "ecdd7a447881ee3164ed928d51a61fad",
"sha256": "11fa2f5634aba33b114382c940691608362e819a32b700082f51816d221abca4"
},
"downloads": -1,
"filename": "nglpy_cuda-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "ecdd7a447881ee3164ed928d51a61fad",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 25596,
"upload_time": "2018-10-03T06:51:38",
"url": "https://files.pythonhosted.org/packages/cc/d4/a1fd51918680f7bc98f2685985ffaa8c4985c3a7e6489e1eb34e5b3643e5/nglpy_cuda-0.2.0.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "ecdd7a447881ee3164ed928d51a61fad",
"sha256": "11fa2f5634aba33b114382c940691608362e819a32b700082f51816d221abca4"
},
"downloads": -1,
"filename": "nglpy_cuda-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "ecdd7a447881ee3164ed928d51a61fad",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 25596,
"upload_time": "2018-10-03T06:51:38",
"url": "https://files.pythonhosted.org/packages/cc/d4/a1fd51918680f7bc98f2685985ffaa8c4985c3a7e6489e1eb34e5b3643e5/nglpy_cuda-0.2.0.tar.gz"
}
]
}