{ "info": { "author": "Bohumir Zamecnik", "author_email": "bohumir.zamecnik@gmail.com", "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 :: 3" ], "description": "nvprof-tools - Python tools for NVIDIA Profiler\n===============================================\n\nTools to help working with nvprof SQLite files, specifically for\nprofiling scripts to train deep learning models. The files can be big\nand thus slow to scp and work with in NVVP. This tool is aimed in\nextracting the small bits of important information and make profiling in\nNVVP faster.\n\nYou can remove a big number of unimportant events and take a small time\nslice, so that you can shrink the sqlite database a few MBs.\n\n- Author: Bohum\u00edr Z\u00e1me\u010dn\u00edk bohumir.zamecnik@gmail.com,\n `Rossum `__\n- License: MIT\n\n.. figure:: https://cdn.pbrd.co/images/GTsUg7h.png\n :alt: sliced nvprof in NVVP\n\n sliced nvprof in NVVP\n\nInstalling\n----------\n\nInstall package ``nvprof`` - for just using it:\n\n::\n\n $ pip install nvprof\n\n\u2026or for development:\n\n::\n\n $ pip install -e .\n\nFeatures\n--------\n\n::\n\n $ nvprof_tools --help\n usage: nvprof_tools [-h] {info,truncate,slice} ...\n\n NVIDIA Profiler tools\n\n positional arguments:\n {info,truncate,slice}\n\n optional arguments:\n -h, --help show this help message and exit\n\n::\n\n $ nvprof_tools slice --help\n usage: nvprof_tools slice [-h] [-s START] [-e END] db_file\n\n positional arguments:\n db_file\n\n optional arguments:\n -h, --help show this help message and exit\n -s START, --start START\n start time (sec)\n -e END, --end END end time (sec)\n\nSummary about the file\n~~~~~~~~~~~~~~~~~~~~~~\n\nIt can show:\n\n- total time (can be used to decide which time slice to take in nvvp)\n- number of events in the tables sorted from highest\n- compute utilization percentage\n- number of GPUs\n\n::\n\n $ nvprof_tools info foo.sqlite\n Number of GPUs: 1\n Compute utilization: 10.07 %\n Total time: 6.659 sec\n Total number of events: 516874\n Events by table:\n CUPTI_ACTIVITY_KIND_RUNTIME : 348080\n CUPTI_ACTIVITY_KIND_CONCURRENT_KERNEL : 63792\n CUPTI_ACTIVITY_KIND_DRIVER : 48279\n CUPTI_ACTIVITY_KIND_SYNCHRONIZATION : 19741\n CUPTI_ACTIVITY_KIND_CUDA_EVENT : 17860\n CUPTI_ACTIVITY_KIND_MEMCPY : 15974\n CUPTI_ACTIVITY_KIND_MEMSET : 2816\n CUPTI_ACTIVITY_KIND_OVERHEAD : 309\n CUPTI_ACTIVITY_KIND_STREAM : 12\n CUPTI_ACTIVITY_KIND_DEVICE_ATTRIBUTE : 8\n CUPTI_ACTIVITY_KIND_NAME : 1\n CUPTI_ACTIVITY_KIND_CONTEXT : 1\n CUPTI_ACTIVITY_KIND_DEVICE : 1\n\nIn case of multiple GPUs compute utilization is calculated for each\ndevice:\n\n::\n\n Number of GPUs: 4\n Compute utilization (mean): 43.04 %\n GPU 0: 42.86 %\n GPU 1: 42.34 %\n GPU 2: 43.42 %\n GPU 3: 43.55 %\n Total time: 35.041 sec\n Total number of events: 5670557\n\nRemove unnecessary events\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\nTypically 80% of the events are runtime/driver CUDA calls, which are not\nessential for profiling deep learning scripts. Let\u2019s remove them.\n\nNOTE: It will overwrite the input file.\n\n::\n\n $ nvprof_tools truncate foo.sqlite\n\nEg. we shrinked a database from 29 MB to 8 MB.\n\nSlice only a small time range\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n::\n\n # keep only events between 5 and 6 seconds\n $ nvprof_tools slice foo.sqlite -s 5.0 -e 6.0\n\nMore information\n~~~~~~~~~~~~~~~~\n\n`More information `__\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/rossumai/nvprof-tools", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "nvprof", "package_url": "https://pypi.org/project/nvprof/", "platform": "", "project_url": "https://pypi.org/project/nvprof/", "project_urls": { "Homepage": "https://github.com/rossumai/nvprof-tools" }, "release_url": "https://pypi.org/project/nvprof/0.2/", "requires_dist": null, "requires_python": "", "summary": "NVIDIA Profier tools", "version": "0.2" }, "last_serial": 5186792, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "e5be7a1acfc974c38055bb320e83f0c8", "sha256": "10c159d7b4b0c9b1a3d0563e6298b4efd764b864cbae23e097a249bf49ffc9c5" }, "downloads": -1, "filename": "nvprof-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e5be7a1acfc974c38055bb320e83f0c8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7206, "upload_time": "2017-11-13T18:47:22", "url": "https://files.pythonhosted.org/packages/c2/36/20ca2f55316fe59591534027a62fc6ab5a107d98195d73a91eb2f1829423/nvprof-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c2f30e2c0688e22fde37f3659df8a549", "sha256": "667502543e83495475b8e8f5c6591ace12b35d75aa79440e4b7462655d8e7243" }, "downloads": -1, "filename": "nvprof-0.1.tar.gz", "has_sig": false, "md5_digest": "c2f30e2c0688e22fde37f3659df8a549", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4732, "upload_time": "2017-11-13T18:47:23", "url": "https://files.pythonhosted.org/packages/e4/f9/fb8e1aa3c5ede59e3fbb5f3beb9e93b1e43bd70691aea40b6f5e7b55b334/nvprof-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "bba745e4d6a58433732aa0372a3bd2c0", "sha256": "7636d883287359c1a390cb4d3d99e504c98369f3560c782dda31ef9af8f70023" }, "downloads": -1, "filename": "nvprof-0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bba745e4d6a58433732aa0372a3bd2c0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7325, "upload_time": "2017-11-19T22:36:35", "url": "https://files.pythonhosted.org/packages/fe/93/6e82240f973ab93fa17c1d2de1a70f22d63dee29ae0fda557d8611d2daf1/nvprof-0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2f546a8e3fc79e8bc39864826e8692d2", "sha256": "6db38cbe1a5ce6d7a0926f1b5c2092b1bf30bb4053446e99fba4d308ff4adbf9" }, "downloads": -1, "filename": "nvprof-0.2.tar.gz", "has_sig": false, "md5_digest": "2f546a8e3fc79e8bc39864826e8692d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4873, "upload_time": "2017-11-19T22:36:37", "url": "https://files.pythonhosted.org/packages/83/63/5b6abfe4db6ce3f0eef5f9fb7f36acb7a7796be0b7662a5232ef00b74a54/nvprof-0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bba745e4d6a58433732aa0372a3bd2c0", "sha256": "7636d883287359c1a390cb4d3d99e504c98369f3560c782dda31ef9af8f70023" }, "downloads": -1, "filename": "nvprof-0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bba745e4d6a58433732aa0372a3bd2c0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7325, "upload_time": "2017-11-19T22:36:35", "url": "https://files.pythonhosted.org/packages/fe/93/6e82240f973ab93fa17c1d2de1a70f22d63dee29ae0fda557d8611d2daf1/nvprof-0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2f546a8e3fc79e8bc39864826e8692d2", "sha256": "6db38cbe1a5ce6d7a0926f1b5c2092b1bf30bb4053446e99fba4d308ff4adbf9" }, "downloads": -1, "filename": "nvprof-0.2.tar.gz", "has_sig": false, "md5_digest": "2f546a8e3fc79e8bc39864826e8692d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4873, "upload_time": "2017-11-19T22:36:37", "url": "https://files.pythonhosted.org/packages/83/63/5b6abfe4db6ce3f0eef5f9fb7f36acb7a7796be0b7662a5232ef00b74a54/nvprof-0.2.tar.gz" } ] }