{ "info": { "author": "Awni Hannun", "author_email": "awni@stanford.edu", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "======\ncuthon\n======\n\nCuthon is a simple Python script to avoid setting `CUDA_VISIBLE_DEVICES` when\nrunning python programs on a GPU. The script will find the first *unused*\nGPU(s) then run the program as usual. At its simplest::\n\n cuthon my_program.py\n\nThis tool is intended for a fairly niche use case: running python programs on\nan interactive node which has more than one GPU. For those that have done this\noften you may be relieved at never having to run `nvidia-smi` followed by\nsetting `CUDA_VISIBLE_DEVICES` again (when running a python program that is).\n\n-------\nInstall\n-------\nInstall with `pip`::\n\n pip install cuthon\n\n-----\nUsage\n-----\n\nIn general, use `cuthon` just like you would use `python`.\n\n- `cuthon` to launch a python repl.\n- `cuthon -V` to see the python version number.\n- `cuthon train_model.py` to run your program.\n\nFor help on available `cuthon` options type::\n\n cuthon -h --\n\nThe output will be::\n\n usage: cuthon.py [-h] [-n NUM_GPUS] [-l]\n\n Select the first unused GPU(s) and run Python. To pass the script arguments\n specify '--' between cuthon arguments and arguments to be passed through to\n your script. If '--' is not specified, then all arguments will be passed\n through.\n\n optional arguments:\n -h, --help show this help message and exit\n -n NUM_GPUS, --num_gpus NUM_GPUS\n The number of GPUs to use.\n -l, --least_used Switch from an unused to a least-used policy.\n\nFor example, to run on two available GPUs execute::\n\n cuthon -n 2 -- train_model.py\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/awni/cuthon", "keywords": "gpu development cuda", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "cuthon", "package_url": "https://pypi.org/project/cuthon/", "platform": "", "project_url": "https://pypi.org/project/cuthon/", "project_urls": { "Homepage": "https://github.com/awni/cuthon" }, "release_url": "https://pypi.org/project/cuthon/0.5/", "requires_dist": null, "requires_python": "", "summary": "A simple tool to select the first available GPU(s) and run Python", "version": "0.5" }, "last_serial": 3977923, "releases": { "0.0": [ { "comment_text": "", "digests": { "md5": "fec7c2007d4f612238ec3685bb3d4a89", "sha256": "b1cb08d12dd70432b9fff1c00194fd64ff2f4cc4b88e3782d910da1c34f736b9" }, "downloads": -1, "filename": "cuthon-0.0-py2.7.egg", "has_sig": false, "md5_digest": "fec7c2007d4f612238ec3685bb3d4a89", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 4210, "upload_time": "2017-08-25T23:43:05", "url": "https://files.pythonhosted.org/packages/44/97/61b12f971f17872e6f421f698259bbe40b4e9e28840add0e10612f47414f/cuthon-0.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "e5862f62b4c09c8caaae82598df755e3", "sha256": "c133bc75af10dc09fe3fe2f37346da0104c2ff6f27f07cd650696bc92391d85d" }, "downloads": -1, "filename": "cuthon-0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e5862f62b4c09c8caaae82598df755e3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3942, "upload_time": "2017-08-25T23:43:04", "url": "https://files.pythonhosted.org/packages/df/4b/a8d6475ddcbc75b2820b2e4e382bef079210a883a09157f5f3fefe97216a/cuthon-0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5eea29aa42b45fc21bf48e6432ccc673", "sha256": "00a6a646e70f07dc737d1f3b0d670f8061ae4f64a64d75c12b760bddc1d0de08" }, "downloads": -1, "filename": "cuthon-0.0.tar.gz", "has_sig": false, "md5_digest": "5eea29aa42b45fc21bf48e6432ccc673", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2442, "upload_time": "2017-08-25T23:43:06", "url": "https://files.pythonhosted.org/packages/09/82/4bd32f32007e8f2f2c5c1789b7f550b4bb9062788b7a63e6f6143d33b357/cuthon-0.0.tar.gz" } ], "0.1": [ { "comment_text": "", "digests": { "md5": "2262ddd871dec52a6a48fa612b50d36c", "sha256": "31e07961f0f62582c61320ce6608a1536d9fe82ac8c820e60f0b3c6da2a83a8e" }, "downloads": -1, "filename": "cuthon-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2262ddd871dec52a6a48fa612b50d36c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4159, "upload_time": "2017-09-08T21:05:20", "url": "https://files.pythonhosted.org/packages/b5/47/6535154016454462ed5b78f853446c8de11684449dabfe60bcf1f5b849c6/cuthon-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c2969ef50a9a533dac31065956e8f732", "sha256": "73b9ef5ce8a862294761978c81292b56d1497114049dde687cc20e48015f4672" }, "downloads": -1, "filename": "cuthon-0.1.tar.gz", "has_sig": false, "md5_digest": "c2969ef50a9a533dac31065956e8f732", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2599, "upload_time": "2017-09-08T21:05:22", "url": "https://files.pythonhosted.org/packages/e9/71/1d497d52d9aa5871a2048d17121ebf459d00b6fa8925ea452e1f04b59ee1/cuthon-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "f2369effc701d7197fdabe38df47ec3e", "sha256": "6c48796505c6a1e77aa7b9eac49bce6dd4f7e327ae70fd226e05946a4955e61d" }, "downloads": -1, "filename": "cuthon-0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f2369effc701d7197fdabe38df47ec3e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4053, "upload_time": "2017-09-10T19:46:40", "url": "https://files.pythonhosted.org/packages/5a/ca/3b241df78eed82cac69ad1083015fa064e837622d5fb2336c23bd5e83fd5/cuthon-0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "762b8582ae0250c420cff914ff7179e5", "sha256": "92849d23c3c74bf599ebf4e298dbbe01d2ec9824399d8364c0ecf3a07dbd1525" }, "downloads": -1, "filename": "cuthon-0.2.tar.gz", "has_sig": false, "md5_digest": "762b8582ae0250c420cff914ff7179e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2568, "upload_time": "2017-09-10T19:46:42", "url": "https://files.pythonhosted.org/packages/ac/2e/760250640f0c4cd625dd6207fdca2c66f519320f97eb92b7bfd9fb2ae886/cuthon-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "38a34bc13025d07f232be72907536715", "sha256": "012eda44e17f891305ffeaff1c234bb509930c3dd28b033c1b690ce5d5c585b0" }, "downloads": -1, "filename": "cuthon-0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "38a34bc13025d07f232be72907536715", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4907, "upload_time": "2017-09-12T22:51:25", "url": "https://files.pythonhosted.org/packages/f9/05/e72a8ba493971bab4b0450e8e0366979c39bcff4673e006de0ace10f5786/cuthon-0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b712df7dbab112a593a67bc3d23b2daf", "sha256": "e704abd1373f95c2693de230a0b04e6012407d89897642c702cd9f7848dbfe80" }, "downloads": -1, "filename": "cuthon-0.3.tar.gz", "has_sig": false, "md5_digest": "b712df7dbab112a593a67bc3d23b2daf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3038, "upload_time": "2017-09-12T22:51:26", "url": "https://files.pythonhosted.org/packages/bd/07/b774af747c34d1314223710fc069c6fff3ca89b56e4120204bf558e7de5c/cuthon-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "0e92df246d97f500190ac7b8491666b8", "sha256": "fa686a40d353261ba645f141e37133c8993b7bbe40a6e4fbc5beb04b307e14d2" }, "downloads": -1, "filename": "cuthon-0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0e92df246d97f500190ac7b8491666b8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3320, "upload_time": "2018-06-11T14:08:14", "url": "https://files.pythonhosted.org/packages/f0/60/d5636a0e6b169553de0b182d0277a8ba69c1d3d0cb716bceb780015811c2/cuthon-0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9291084841e61947e1a79ec0cf4e74af", "sha256": "60fc6ded70908fc6ede0dff550b0142d98995a53cd9415513a56e01b3c599d50" }, "downloads": -1, "filename": "cuthon-0.4.tar.gz", "has_sig": false, "md5_digest": "9291084841e61947e1a79ec0cf4e74af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3032, "upload_time": "2018-06-11T14:08:15", "url": "https://files.pythonhosted.org/packages/a0/cf/31b2b0928bfc32a56cabb9bc7d2ecbb2c0243d1df754d143df5e1dc1a68a/cuthon-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "c7089dcb8722a3bba6d9e0a2be75c4c7", "sha256": "7e5e3aa859fe52120f9f2c5ca29dd0fc6b0b3abcd838becae8023b530d8c7c7f" }, "downloads": -1, "filename": "cuthon-0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c7089dcb8722a3bba6d9e0a2be75c4c7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3325, "upload_time": "2018-06-19T15:25:54", "url": "https://files.pythonhosted.org/packages/0e/49/617d50784b9763ab07b2b7dd45fae42a8487ffc1e887d853e4aad5157e27/cuthon-0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04a02f1ebe28cfd98dc627e7979d72a8", "sha256": "a6b4cd3eec72db841b864bfaa481bccbf7b186663e0b2f760b6baca8189f1f68" }, "downloads": -1, "filename": "cuthon-0.5.tar.gz", "has_sig": false, "md5_digest": "04a02f1ebe28cfd98dc627e7979d72a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3041, "upload_time": "2018-06-19T15:25:55", "url": "https://files.pythonhosted.org/packages/0e/08/b9e4e1ea51f3b8e9b6b6eedfb0d388b4a9448e709a2648bd13cf0a6a2826/cuthon-0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c7089dcb8722a3bba6d9e0a2be75c4c7", "sha256": "7e5e3aa859fe52120f9f2c5ca29dd0fc6b0b3abcd838becae8023b530d8c7c7f" }, "downloads": -1, "filename": "cuthon-0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c7089dcb8722a3bba6d9e0a2be75c4c7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3325, "upload_time": "2018-06-19T15:25:54", "url": "https://files.pythonhosted.org/packages/0e/49/617d50784b9763ab07b2b7dd45fae42a8487ffc1e887d853e4aad5157e27/cuthon-0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04a02f1ebe28cfd98dc627e7979d72a8", "sha256": "a6b4cd3eec72db841b864bfaa481bccbf7b186663e0b2f760b6baca8189f1f68" }, "downloads": -1, "filename": "cuthon-0.5.tar.gz", "has_sig": false, "md5_digest": "04a02f1ebe28cfd98dc627e7979d72a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3041, "upload_time": "2018-06-19T15:25:55", "url": "https://files.pythonhosted.org/packages/0e/08/b9e4e1ea51f3b8e9b6b6eedfb0d388b4a9448e709a2648bd13cf0a6a2826/cuthon-0.5.tar.gz" } ] }