{"action":"created","issue":{"url":"https://api.github.com/repos/apache/incubator-systemml/issues/196","repository_url":"https://api.github.com/repos/apache/incubator-systemml","labels_url":"https://api.github.com/repos/apache/incubator-systemml/issues/196/labels{/name}","comments_url":"https://api.github.com/repos/apache/incubator-systemml/issues/196/comments","events_url":"https://api.github.com/repos/apache/incubator-systemml/issues/196/events","html_url":"https://github.com/apache/incubator-systemml/pull/196","id":167161341,"number":196,"title":"[SYSTEMML-701][WIP]sparse matrix gpu","user":{"login":"nakul02","id":5394361,"avatar_url":"https://avatars.githubusercontent.com/u/5394361?v=3","gravatar_id":"","url":"https://api.github.com/users/nakul02","html_url":"https://github.com/nakul02","followers_url":"https://api.github.com/users/nakul02/followers","following_url":"https://api.github.com/users/nakul02/following{/other_user}","gists_url":"https://api.github.com/users/nakul02/gists{/gist_id}","starred_url":"https://api.github.com/users/nakul02/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nakul02/subscriptions","organizations_url":"https://api.github.com/users/nakul02/orgs","repos_url":"https://api.github.com/users/nakul02/repos","events_url":"https://api.github.com/users/nakul02/events{/privacy}","received_events_url":"https://api.github.com/users/nakul02/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2016-07-23T02:02:20Z","updated_at":"2016-08-04T18:30:17Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/apache/incubator-systemml/pulls/196","html_url":"https://github.com/apache/incubator-systemml/pull/196","diff_url":"https://github.com/apache/incubator-systemml/pull/196.diff","patch_url":"https://github.com/apache/incubator-systemml/pull/196.patch"},"body":"Here is a preliminary support of Sparse matrix multiplication on GPU.\r\nWith this PR, sparse * sparse matrix multiplication support on the GPU is added.\r\nsparse * dense support will be added after discussion here, if at all.\r\n\r\nHere are some performance benchmarks I ran on a very beefy node with NVIDIA Tesla K80 GPUs. \r\nThe benchmark compares a matrix multiply in CP with the same matrix multiply on GPU.\r\n``-gpu force=true`` option was used on the command line.\r\n\r\nOnly one GPU was used.\r\nThe test machine had 24 cores (E5-2620), 128GB.\r\nCUDA version - 7.5\r\nOS - RHEL6\r\n\r\nIn the graphs, the blue line is for the GPU. Please note that the graphs are in log-scale on the y-axis.\r\nThe x-axis represents the values of M,N & K where a block of size (M*K) is multiplied with a block of size (K*N). Sparsity was set to ``0.3`` for both matrices.\r\nFor missing data points, 0 was inserted.\r\nThere were crashes with higher sizes; investigation on these is pending.\r\n\r\n![matmult](https://cloud.githubusercontent.com/assets/5394361/17075054/1c75775e-503d-11e6-94b3-1921e689cc16.png)\r\n![execution](https://cloud.githubusercontent.com/assets/5394361/17075055/1c781bf8-503d-11e6-93d2-4aeb940b9a68.png)\r\n![elapse](https://cloud.githubusercontent.com/assets/5394361/17075053/1c752a9c-503d-11e6-948b-7a8ab165cfe2.png)\r\n\r\nAlso note that the wallclock/elapsed time for the GPU run had a large compilation time (about 5 seconds). This is to be investigated also.\r\n\r\n[Here](https://gist.github.com/nakul02/3a7f76c27c8581d3aa51cbeac435ab34) are SVG Versions of the same graphs. (Github won't let me insert them on this page).\r\n\r\n\r\n@mboehm7, @niketanpansare, @bertholdreinwald - Comments, suggestions?"},"comment":{"url":"https://api.github.com/repos/apache/incubator-systemml/issues/comments/237641699","html_url":"https://github.com/apache/incubator-systemml/pull/196#issuecomment-237641699","issue_url":"https://api.github.com/repos/apache/incubator-systemml/issues/196","id":237641699,"user":{"login":"nakul02","id":5394361,"avatar_url":"https://avatars.githubusercontent.com/u/5394361?v=3","gravatar_id":"","url":"https://api.github.com/users/nakul02","html_url":"https://github.com/nakul02","followers_url":"https://api.github.com/users/nakul02/followers","following_url":"https://api.github.com/users/nakul02/following{/other_user}","gists_url":"https://api.github.com/users/nakul02/gists{/gist_id}","starred_url":"https://api.github.com/users/nakul02/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nakul02/subscriptions","organizations_url":"https://api.github.com/users/nakul02/orgs","repos_url":"https://api.github.com/users/nakul02/repos","events_url":"https://api.github.com/users/nakul02/events{/privacy}","received_events_url":"https://api.github.com/users/nakul02/received_events","type":"User","site_admin":false},"created_at":"2016-08-04T18:30:17Z","updated_at":"2016-08-04T18:30:17Z","body":"# Sparse Matrix Vector Multiply\r\n\r\n![gc](https://cloud.githubusercontent.com/assets/5394361/17413563/89569b66-5a36-11e6-8f3c-7ddf0f3f0e9f.png)\r\n![gpu_overhead](https://cloud.githubusercontent.com/assets/5394361/17413562/895629d8-5a36-11e6-8c4b-043589bfad46.png)\r\n![matmult](https://cloud.githubusercontent.com/assets/5394361/17413564/89568db0-5a36-11e6-9fac-a1d096fa9325.png)\r\n\r\n[SVGs](https://gist.github.com/nakul02/64829118ac6e5b1975809df690145372)"}}
{"actor":{"display_login":"nakul02"}}