{ "info": { "author": "Bohumir Zamecnik, Rossum", "author_email": "bohumir.zamecnik@rossum.ai", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3" ], "description": "``nvgpu`` - NVIDIA GPU tools\n============================\n\nIt provides information about GPUs and their availability for\ncomputation.\n\nOften we want to train a ML model on one of GPUs installed on a\nmulti-GPU machine. Since TensorFlow allocates all memory, only one such\nprocess can use the GPU at a time. Unfortunately ``nvidia-smi`` provides\nonly a text interface with information about GPUs. This packages wraps\nit with an easier to use CLI and Python interface.\n\nIt's a quick and dirty solution calling ``nvidia-smi`` and parsing its\noutput. We can take one or more GPUs availabile for computation based on\nrelative memory usage, ie. it is OK with Xorg taking a few MB.\n\nIn addition we have a fancy table of GPU with more information taken by\npython binding to NVML.\n\nFor easier monitoring of multiple machines it's possible to deploy\nagents (that provide the GPU information in JSON over a REST API) and\nshow the aggregated status in a web application.\n\nInstalling\n----------\n\nFor a user:\n\n.. code:: bash\n\n pip install -U nvgpu\n\nor to the system:\n\n.. code:: bash\n\n sudo -H pip install -U nvgpu\n\nUsage examples\n--------------\n\nCommand-line interface:\n\n.. code:: bash\n\n # grab all available GPUs\n CUDA_VISIBLE_DEVICES=$(nvgpu available)\n\n # grab at most available GPU\n CUDA_VISIBLE_DEVICES=$(nvgpu available -l 1)\n\nPrint pretty colored table of devices, availability, users, processes:\n\n::\n\n $ nvgpu list\n status type util. temp. MHz users since pids cmd\n -- -------- ------------------- ------- ------- ----- ------- --------------- ------ --------\n 0 [ ] GeForce GTX 1070 0 % 44 139 \n 1 [~] GeForce GTX 1080 Ti 0 % 44 139 alice 2 days ago 19028 jupyter\n 2 [~] GeForce GTX 1080 Ti 0 % 44 139 bob 14 hours ago 8479 jupyter\n 3 [~] GeForce GTX 1070 46 % 54 1506 bob 7 days ago 20883 train.py\n 4 [~] GeForce GTX 1070 35 % 64 1480 bob 7 days ago 26228 evaluate.py\n 5 [!] GeForce GTX 1080 Ti 0 % 44 139 ? 9305\n 6 [ ] GeForce GTX 1080 Ti 0 % 44 139\n\nOr shortcut:\n\n::\n\n $ nvl\n\nPython API:\n\n.. code:: python\n\n import nvgpu\n\n nvgpu.available_gpus()\n # ['0', '2']\n\n nvgpu.gpu_info()\n [{'index': '0',\n 'mem_total': 8119,\n 'mem_used': 7881,\n 'mem_used_percent': 97.06860450794433,\n 'type': 'GeForce GTX 1070',\n 'uuid': 'GPU-3aa99ee6-4a9f-470e-3798-70aaed942689'},\n {'index': '1',\n 'mem_total': 11178,\n 'mem_used': 10795,\n 'mem_used_percent': 96.57362676686348,\n 'type': 'GeForce GTX 1080 Ti',\n 'uuid': 'GPU-60410ded-5218-7b06-9c7a-124b77a22447'},\n {'index': '2',\n 'mem_total': 11178,\n 'mem_used': 10789,\n 'mem_used_percent': 96.51994990159241,\n 'type': 'GeForce GTX 1080 Ti',\n 'uuid': 'GPU-d0a77bd4-cc70-ca82-54d6-4e2018cfdca6'},\n ...\n ]\n\nWeb application with agents\n---------------------------\n\nThere are multiple nodes. Agents take info from GPU and provide it in\nJSON via REST API. Master gathers info from other nodes and displays it\nin a HTML page. Agents can also display their status by default.\n\nAgent\n~~~~~\n\n.. code:: bash\n\n FLASK_APP=nvgpu.webapp flask run --host 0.0.0.0 --port 1080\n\nMaster\n~~~~~~\n\nSet agents into a config file. Agent is specified either via a URL to a\nremote machine or ``'self'`` for direct access to local machine. Remove\n``'self'`` if the machine itself does not have any GPU. Default is\n``AGENTS = ['self']``, so that agents also display their own status. Set\n``AGENTS = []`` to avoid this.\n\n::\n\n # nvgpu_master.cfg\n AGENTS = [\n 'self', # node01 - master - direct access without using HTTP\n 'http://node02:1080',\n 'http://node03:1080',\n 'http://node04:1080',\n ]\n\n.. code:: bash\n\n NVGPU_CLUSTER_CFG=/path/to/nvgpu_master.cfg FLASK_APP=nvgpu.webapp flask run --host 0.0.0.0 --port 1080\n\nOpen the master in the web browser: http://node01:1080.\n\nInstalling as a service\n-----------------------\n\nOn Ubuntu with ``systemd`` we can install the agents/master as as\nservice to be ran automatically on system start.\n\n.. code:: bash\n\n # create an unprivileged system user\n sudo useradd -r nvgpu\n\nCopy `nvgpu-agent.service `__ to:\n\n.. code:: bash\n\n sudo vi /etc/systemd/system/nvgpu-agent.service\n\nSet agents to the configuration file for the master:\n\n.. code:: bash\n\n sudo vi /etc/nvgpu.conf\n\n.. code:: python\n\n AGENTS = [\n # direct access without using HTTP\n 'self',\n 'http://node01:1080',\n 'http://node02:1080',\n 'http://node03:1080',\n 'http://node04:1080',\n ]\n\nSet up and start the service:\n\n.. code:: bash\n\n # enable for automatic startup at boot\n sudo systemctl enable nvgpu-agent.service\n # start\n sudo systemctl start nvgpu-agent.service \n # check the status\n sudo systemctl status nvgpu-agent.service\n\n.. code:: bash\n\n # check the service\n open http://localhost:1080\n\nAuthor\n------\n\n- Bohum\u00edr Z\u00e1me\u010dn\u00edk, `Rossum, Ltd. `__\n- License: MIT\n\nTODO\n----\n\n- order GPUs by priority (decreasing power, decreasing free memory)\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/rossumai/nvgpu", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "nvgpu", "package_url": "https://pypi.org/project/nvgpu/", "platform": "", "project_url": "https://pypi.org/project/nvgpu/", "project_urls": { "Homepage": "https://github.com/rossumai/nvgpu" }, "release_url": "https://pypi.org/project/nvgpu/0.8.0/", "requires_dist": [ "ansi2html", "arrow", "flask", "flask-restful", "pandas", "psutil", "requests", "six", "termcolor", "tabulate", "nvidia-ml-py ; python_version < \"3\"", "nvidia-ml-py3 ; python_version >= \"3\" and python_version < \"3.6\"", "pynvml ; python_version >= \"3.6\"" ], "requires_python": "", "summary": "NVIDIA GPU tools", "version": "0.8.0" }, "last_serial": 5247257, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "1fd565d7120e39d3501f1908fdb500d9", "sha256": "e3a594eab25916100a88c12bfc0bf27de0fa36367d7a77d55f5971232e1425b5" }, "downloads": -1, "filename": "nvgpu-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1fd565d7120e39d3501f1908fdb500d9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5005, "upload_time": "2018-04-25T19:30:57", "url": "https://files.pythonhosted.org/packages/d2/c2/b28a592caa6cc09d5c68cc25d0e6a0509e110ab8dcf0234a3fa7bf629319/nvgpu-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ab9606f3b6fea41010fd82be3567dc10", "sha256": "16ad8bad1673fa9e4465b80f17d4b72de750797c6c912ba4cf8db0977717fcf1" }, "downloads": -1, "filename": "nvgpu-0.1.tar.gz", "has_sig": false, "md5_digest": "ab9606f3b6fea41010fd82be3567dc10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3038, "upload_time": "2018-04-25T19:30:58", "url": "https://files.pythonhosted.org/packages/0b/cc/f0013fa9b6c776a766b83be400347c5921d1fa8d97e9ed5c2d0168e1fcc0/nvgpu-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "82221654d9a688df477bb84783be4fd9", "sha256": "e6a5811c587af59df5f7f5b24a4438597b4fb14b829e9dd7a8c7f20aa1c6af63" }, "downloads": -1, "filename": "nvgpu-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "82221654d9a688df477bb84783be4fd9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5172, "upload_time": "2018-04-25T19:32:24", "url": "https://files.pythonhosted.org/packages/87/44/08c09c1e1cea484e429123b84acfff086786d9d2fd59ddc01ead6ae8adae/nvgpu-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c4e07bd0844277033da9a27493f743b1", "sha256": "db45cb17013e52b70a80aa7e819284f4e13b8e1c6a9fc277d11ae37242a4411c" }, "downloads": -1, "filename": "nvgpu-0.1.1.tar.gz", "has_sig": false, "md5_digest": "c4e07bd0844277033da9a27493f743b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3121, "upload_time": "2018-04-25T19:32:25", "url": "https://files.pythonhosted.org/packages/04/6d/465f77bbb26c81f5b7ebf8f1d9df48f4b37b4f320f08bd9d7a570ae3fa2d/nvgpu-0.1.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "ccb17239648496da70fb3d0d26fa785b", "sha256": "c5ffb89af899ca8e77505585b6409370b4437ebbb61e1645125fb1362b312aeb" }, "downloads": -1, "filename": "nvgpu-0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ccb17239648496da70fb3d0d26fa785b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6802, "upload_time": "2018-05-23T09:53:14", "url": "https://files.pythonhosted.org/packages/64/b5/ea820557e172b3319843140b2ead0ecf514174d986ca3a9cf9334dfa7613/nvgpu-0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b7ba96d65f68fd36db722212fe7d2f8e", "sha256": "6a47acfb4f8a2e19675f43fa272364c53591131240963526a60fea4bf9021b99" }, "downloads": -1, "filename": "nvgpu-0.2.tar.gz", "has_sig": false, "md5_digest": "b7ba96d65f68fd36db722212fe7d2f8e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4218, "upload_time": "2018-05-23T09:53:16", "url": "https://files.pythonhosted.org/packages/b0/ef/1f5bea77980c0d1250f4f6e9a7f7576be5c418ca3aa2c8c73467f4cc4697/nvgpu-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "734ffd245f7ded8830f7eb5c6c75bac3", "sha256": "bfd18d6333d5bd1f16c3b36cc8a2d1379920d0761e8e804cf16625b7fb798a9e" }, "downloads": -1, "filename": "nvgpu-0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "734ffd245f7ded8830f7eb5c6c75bac3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6903, "upload_time": "2018-05-23T10:38:03", "url": "https://files.pythonhosted.org/packages/57/ab/832a1b4feaba4200aa3cf1880b1193acf6fc2bc30b9c16db699736dd076e/nvgpu-0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "20cf657c06972443c702c25cbdb3014f", "sha256": "a3fdc8430742609b56996415e9bd481d522035ebbe8862ad81efe73e5946726c" }, "downloads": -1, "filename": "nvgpu-0.3.tar.gz", "has_sig": false, "md5_digest": "20cf657c06972443c702c25cbdb3014f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4285, "upload_time": "2018-05-23T10:38:04", "url": "https://files.pythonhosted.org/packages/a6/82/c3da3a9814acadaf8ceb38297c3671fa9d84387b1ba0ee337fb425808f99/nvgpu-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "2adb7a328fc65599b74e7112033b1b66", "sha256": "fbb2bd9efff7066fb31d720b85f0deb2685a92cc43a3729089f0bb6b6b65b7c9" }, "downloads": -1, "filename": "nvgpu-0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2adb7a328fc65599b74e7112033b1b66", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7119, "upload_time": "2018-05-24T12:03:57", "url": "https://files.pythonhosted.org/packages/4e/52/7ec82d78583bb8cb21dd00f6b27c2f93d5e2a4d82d2761985bb1e5b3763d/nvgpu-0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5990b05a625f3aaf6173ed6b6433cccc", "sha256": "1b334d0a781aafc755386bb449ff78035bab7871d3d60d007abe247b9858965f" }, "downloads": -1, "filename": "nvgpu-0.4.tar.gz", "has_sig": false, "md5_digest": "5990b05a625f3aaf6173ed6b6433cccc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4552, "upload_time": "2018-05-24T12:03:58", "url": "https://files.pythonhosted.org/packages/63/b1/1249a37036ba69e7ea281bd12bf080f749a659d9d62e58489f0a32536213/nvgpu-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "1179c12e812f13a3b9fe14cb7c30ca39", "sha256": "80e94fd5f669ba056dcbc83a262e7c4c2b9863be9bac2ac949f1b124fba2c0bf" }, "downloads": -1, "filename": "nvgpu-0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1179c12e812f13a3b9fe14cb7c30ca39", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5432, "upload_time": "2018-06-02T14:45:30", "url": "https://files.pythonhosted.org/packages/e4/2a/d182c7466697284f1b3bb77cef429a000c1ad656f359e66fd4c31987eae9/nvgpu-0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1000cc62bae414e0dd67f228287524be", "sha256": "1a61b7912c39739b3c0abdedd23ef8aec5199c74133472a063ac5d97623c89e6" }, "downloads": -1, "filename": "nvgpu-0.5.tar.gz", "has_sig": false, "md5_digest": "1000cc62bae414e0dd67f228287524be", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4967, "upload_time": "2018-06-02T14:45:31", "url": "https://files.pythonhosted.org/packages/60/a6/6e1c2b211acc974fc5c99a94ec0c6b3eff614bff9dbf76e345e450d95bfe/nvgpu-0.5.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "0222cef1fc303f641b11fdef610bb4c0", "sha256": "06b6cb8f12f51ced44a478f1aabf2d70ed38c70ecc8200002e471a1547782c05" }, "downloads": -1, "filename": "nvgpu-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0222cef1fc303f641b11fdef610bb4c0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5453, "upload_time": "2018-06-02T20:48:51", "url": "https://files.pythonhosted.org/packages/bb/fb/6a4d4988c6af702c504d96934364660a98e4eb462c5165e5a128ec91e0d5/nvgpu-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d67f226f688c85059455a017e537ab4c", "sha256": "a34d8e3ea0dd200924ab9fb27a9256b0e705937d6f867ece89e6aee6656fc8a5" }, "downloads": -1, "filename": "nvgpu-0.5.1.tar.gz", "has_sig": false, "md5_digest": "d67f226f688c85059455a017e537ab4c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4975, "upload_time": "2018-06-02T20:48:52", "url": "https://files.pythonhosted.org/packages/0d/e7/1beebc4b775701cbbbe8b75d47652425f91012b922fc5395fe246ab40209/nvgpu-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "24f0f4f0d491c1a38f173c369e5c0bb8", "sha256": "1341ab5b13728d61a3aadca8c06cef532c2694f62e40d89aaba9a551893e2faf" }, "downloads": -1, "filename": "nvgpu-0.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "24f0f4f0d491c1a38f173c369e5c0bb8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7652, "upload_time": "2018-07-02T06:56:43", "url": "https://files.pythonhosted.org/packages/64/98/5d4444b560817a125087be51527031ff2e89bffcee7782b14a5baa4b2a0a/nvgpu-0.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0249f17e4c467138e81a01c2f8de8b0b", "sha256": "2d5d34f4f5e1fa745f1ed389ae15cd729733e68e1dd17827ad2989d5796f89fc" }, "downloads": -1, "filename": "nvgpu-0.5.2.tar.gz", "has_sig": false, "md5_digest": "0249f17e4c467138e81a01c2f8de8b0b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4980, "upload_time": "2018-07-02T06:56:45", "url": "https://files.pythonhosted.org/packages/47/33/05b5fa4680f2a89c56363a1b837b6a645d0ee7bfe40d8cddd73a7be4cece/nvgpu-0.5.2.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "5db87466f616bcdb26a2630aa74743a6", "sha256": "56a802f4cc8797da8ccfd81302de93639c9b8f407932b187546ac0ddb1886b5e" }, "downloads": -1, "filename": "nvgpu-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5db87466f616bcdb26a2630aa74743a6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8058, "upload_time": "2018-10-16T15:59:28", "url": "https://files.pythonhosted.org/packages/a5/04/92ce50a767fffe6b25485e57476c8181b08977d0b00c2c44138bdc7395c5/nvgpu-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "79bba6b783822b9d9eb3c471344a8b59", "sha256": "d2cc84d3d80529e8324094c1a40ce4f9a83dfe3ef22112d0187bc0c35db0ff63" }, "downloads": -1, "filename": "nvgpu-0.6.0.tar.gz", "has_sig": false, "md5_digest": "79bba6b783822b9d9eb3c471344a8b59", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6995, "upload_time": "2018-10-16T15:59:29", "url": "https://files.pythonhosted.org/packages/a2/d0/e67b155a44c135c7f90d6c980a8038a20f075b74d0ba8c3242b4fff481ad/nvgpu-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "844d43255948106ea54215606af70ac9", "sha256": "407c0bdbd27fab14274ee8c527105490bc636f252088c65815566af6ae5100a6" }, "downloads": -1, "filename": "nvgpu-0.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "844d43255948106ea54215606af70ac9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8315, "upload_time": "2018-10-21T16:15:04", "url": "https://files.pythonhosted.org/packages/13/28/14e56b5bda2db36215c075c62efa0d6fdf23d9b55d911fe79b20f9afb555/nvgpu-0.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6cf572d40672ba06daa4d643cd6cdef6", "sha256": "eb1815f7e7d335f86ae7a345129d59c9a85f80dc73902fc191d9b8ab217faacd" }, "downloads": -1, "filename": "nvgpu-0.7.0.tar.gz", "has_sig": false, "md5_digest": "6cf572d40672ba06daa4d643cd6cdef6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7351, "upload_time": "2018-10-21T16:15:06", "url": "https://files.pythonhosted.org/packages/1b/86/6e63cb35317489d6362db4094c72292150e4e8e864cd3d758c3d186e0b4b/nvgpu-0.7.0.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "06f9588fc6345fbb35a26502f7fd0ece", "sha256": "6365d32b1f02327660f12c291b4857543d7ca510896b372eb567237365701640" }, "downloads": -1, "filename": "nvgpu-0.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "06f9588fc6345fbb35a26502f7fd0ece", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9559, "upload_time": "2019-05-09T12:38:49", "url": "https://files.pythonhosted.org/packages/95/c0/5e4a87f6ace30f2f636a5ffca197484cffb063095a96424188241d171499/nvgpu-0.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1e5f02f9bcc067ad9482f70d76d208ef", "sha256": "69c275c8e37136457abf7fd1562178e8321566dfc59d7f824447d27162ee82f9" }, "downloads": -1, "filename": "nvgpu-0.8.0.tar.gz", "has_sig": false, "md5_digest": "1e5f02f9bcc067ad9482f70d76d208ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7581, "upload_time": "2019-05-09T12:38:51", "url": "https://files.pythonhosted.org/packages/73/39/77296aecc34cbc53987bab2edfd1ae4fcc763d7691c35c53814bd2906279/nvgpu-0.8.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "06f9588fc6345fbb35a26502f7fd0ece", "sha256": "6365d32b1f02327660f12c291b4857543d7ca510896b372eb567237365701640" }, "downloads": -1, "filename": "nvgpu-0.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "06f9588fc6345fbb35a26502f7fd0ece", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9559, "upload_time": "2019-05-09T12:38:49", "url": "https://files.pythonhosted.org/packages/95/c0/5e4a87f6ace30f2f636a5ffca197484cffb063095a96424188241d171499/nvgpu-0.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1e5f02f9bcc067ad9482f70d76d208ef", "sha256": "69c275c8e37136457abf7fd1562178e8321566dfc59d7f824447d27162ee82f9" }, "downloads": -1, "filename": "nvgpu-0.8.0.tar.gz", "has_sig": false, "md5_digest": "1e5f02f9bcc067ad9482f70d76d208ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7581, "upload_time": "2019-05-09T12:38:51", "url": "https://files.pythonhosted.org/packages/73/39/77296aecc34cbc53987bab2edfd1ae4fcc763d7691c35c53814bd2906279/nvgpu-0.8.0.tar.gz" } ] }