{"action":"created","issue":{"url":"https://api.github.com/repos/NVIDIA/DIGITS/issues/828","repository_url":"https://api.github.com/repos/NVIDIA/DIGITS","labels_url":"https://api.github.com/repos/NVIDIA/DIGITS/issues/828/labels{/name}","comments_url":"https://api.github.com/repos/NVIDIA/DIGITS/issues/828/comments","events_url":"https://api.github.com/repos/NVIDIA/DIGITS/issues/828/events","html_url":"https://github.com/NVIDIA/DIGITS/pull/828","id":159489309,"number":828,"title":"Rework Torch multi-GPU training","user":{"login":"gheinrich","id":3889770,"avatar_url":"https://avatars.githubusercontent.com/u/3889770?v=3","gravatar_id":"","url":"https://api.github.com/users/gheinrich","html_url":"https://github.com/gheinrich","followers_url":"https://api.github.com/users/gheinrich/followers","following_url":"https://api.github.com/users/gheinrich/following{/other_user}","gists_url":"https://api.github.com/users/gheinrich/gists{/gist_id}","starred_url":"https://api.github.com/users/gheinrich/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gheinrich/subscriptions","organizations_url":"https://api.github.com/users/gheinrich/orgs","repos_url":"https://api.github.com/users/gheinrich/repos","events_url":"https://api.github.com/users/gheinrich/events{/privacy}","received_events_url":"https://api.github.com/users/gheinrich/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/NVIDIA/DIGITS/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/NVIDIA/DIGITS/labels/torch","name":"torch","color":"006b75"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":15,"created_at":"2016-06-09T19:31:40Z","updated_at":"2016-08-22T13:05:59Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/NVIDIA/DIGITS/pulls/828","html_url":"https://github.com/NVIDIA/DIGITS/pull/828","diff_url":"https://github.com/NVIDIA/DIGITS/pull/828.diff","patch_url":"https://github.com/NVIDIA/DIGITS/pull/828.patch"},"body":"This change enables automatic encapsulation in an `nn.DataParallelTable` container for multi-GPU training. This comes from @thatguymike's realization that this would simplify the programming model. A `disableAutoDataParallelism` flag is added to the internal parameters to disable this mechanism. This flag is intended to be used by users who wish to retain control over what exactly gets parallelized. As an example, the standard Alexnet model enables this flag to parallelize only the feature part of the network.\r\n\r\nNote: this changes does not enable threading in `nn.DataParallelTable` when doing the automatic encapsulation. Some of the numbers below are showing training time with/without threading.\r\n\r\nFor the record, some training time numbers:\r\n\r\nLeNet:\r\n1 GPU => 1m3s\r\n2 GPUs, all parallel, single-thread => 1m33s;1m34s\r\n2 GPUs, all parallel, multi-thread => 3m41s\r\n\r\nAlexnet:\r\n1 GPU => 11m6s\r\n2 GPUs, feature parallel, single-thread => 10m29s\r\n2 GPUs, feature parallel, multi-thread => 9m34s;10m6s\r\n2 GPUs, all parallel, threaded => 13m47s\r\n\r\nGoogLeNet:\r\n1 GPU => 16m28s\r\n2 GPUs, all parallel, single-thread => 12m28s\r\n2 GPUs, all parallel, multi-thread => 11m6s;11m7s\r\n\r\nText classification (1D convolutions followed by FC layers):\r\n1 GPU => 32m35s;32m14s\r\n2 GPUs, all parallel, single-thread => 19m41s\r\n2 GPUs, all parallel, multi-thread => 18m46s\r\n\r\nVery Simple segmentation FCN (only 2 conv layers followed by a deconv):\r\n1 GPU => 7m12s;7m11s\r\n2 GPUs, all parallel, single-thread => 19m48s\r\n2 GPUs, all parallel, multi-thread => 21m41s\r\n\r\nGPUs are Titan X."},"comment":{"url":"https://api.github.com/repos/NVIDIA/DIGITS/issues/comments/241406379","html_url":"https://github.com/NVIDIA/DIGITS/pull/828#issuecomment-241406379","issue_url":"https://api.github.com/repos/NVIDIA/DIGITS/issues/828","id":241406379,"user":{"login":"gheinrich","id":3889770,"avatar_url":"https://avatars.githubusercontent.com/u/3889770?v=3","gravatar_id":"","url":"https://api.github.com/users/gheinrich","html_url":"https://github.com/gheinrich","followers_url":"https://api.github.com/users/gheinrich/followers","following_url":"https://api.github.com/users/gheinrich/following{/other_user}","gists_url":"https://api.github.com/users/gheinrich/gists{/gist_id}","starred_url":"https://api.github.com/users/gheinrich/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gheinrich/subscriptions","organizations_url":"https://api.github.com/users/gheinrich/orgs","repos_url":"https://api.github.com/users/gheinrich/repos","events_url":"https://api.github.com/users/gheinrich/events{/privacy}","received_events_url":"https://api.github.com/users/gheinrich/received_events","type":"User","site_admin":false},"created_at":"2016-08-22T13:05:59Z","updated_at":"2016-08-22T13:05:59Z","body":"I will merge this since it has been reviewed and tested and we're a long way from the next release."}}
{"actor":{"display_login":"gheinrich"}}