{"action":"opened","number":447,"pull_request":{"url":"https://api.github.com/repos/lattice/quda/pulls/447","id":63441937,"html_url":"https://github.com/lattice/quda/pull/447","diff_url":"https://github.com/lattice/quda/pull/447.diff","patch_url":"https://github.com/lattice/quda/pull/447.patch","issue_url":"https://api.github.com/repos/lattice/quda/issues/447","number":447,"state":"open","locked":false,"title":"Multigrid optimization (and more)","user":{"login":"maddyscientist","id":316771,"avatar_url":"https://avatars.githubusercontent.com/u/316771?v=3","gravatar_id":"","url":"https://api.github.com/users/maddyscientist","html_url":"https://github.com/maddyscientist","followers_url":"https://api.github.com/users/maddyscientist/followers","following_url":"https://api.github.com/users/maddyscientist/following{/other_user}","gists_url":"https://api.github.com/users/maddyscientist/gists{/gist_id}","starred_url":"https://api.github.com/users/maddyscientist/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maddyscientist/subscriptions","organizations_url":"https://api.github.com/users/maddyscientist/orgs","repos_url":"https://api.github.com/users/maddyscientist/repos","events_url":"https://api.github.com/users/maddyscientist/events{/privacy}","received_events_url":"https://api.github.com/users/maddyscientist/received_events","type":"User","site_admin":false},"body":"This pull request provides a significant update for adaptive multigrid, as well as multiple performance and bug fixes\r\n* Massively optimized adaptive multigrid algorithm\r\n   * improved strong scaling\r\n   * improved performance of the coarse dslash operator through auto-tuned fine grained parallelization\r\n   * support for even-odd preconditioned multigrid at any or all levels\r\n   * added partial support for half-precision on the top-level smoother\r\n   * added support for QOPQDP-style recursive multigrid, where each level is wrapped by a GCR solver solved to some target precision\r\n   * extended the interface to allow more variables to be set at runtime and not compile time\r\n   * memory optimizations to reduce maximum GPU memory used when running multigrid on even-odd reduced system\r\n   * by default double-precision multigrid routines are not built in order to reduce compile time\r\n   * added new test `multigrid_benchmark` used for benchmarking performance of the coarse dslash operator\r\n* Augmented the auto profiler to include cudaMemcpys (just replace `cudaMemcpy` with `qudaMemcpy` to enable this)\r\n* Enabled auto-tuning of DslashPolicy, to automatically determine whether to use separate kernels for the halo regions or a single fused kernel\r\n* Extended the auto tuner to allow for autotuning over arbitrary parameters: this is utilized when tuning for degree of parallelization in the the coarse dslash, and when tuning for dslash policy\r\n* Fixed bug in non-degenerate twisted-mass fused halo kernel\r\n* Small optimizations of fused halo kernels\r\n* Improved debugging: when `HOST_DEBUG` is enabled, all allocated fields will be filled with `Nan` to better debug initialization errors\r\n* Multiple minor bugs fixes and compiler warning removals\r\n\r\n(this pull request should not be completed until after #442 has been merged, since this branch already been merged into feature/multigrid (it was required for doing some testing in feature/multigrid)","created_at":"2016-03-18T21:58:30Z","updated_at":"2016-03-18T21:58:30Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":{"login":"mathiaswagner","id":4508207,"avatar_url":"https://avatars.githubusercontent.com/u/4508207?v=3","gravatar_id":"","url":"https://api.github.com/users/mathiaswagner","html_url":"https://github.com/mathiaswagner","followers_url":"https://api.github.com/users/mathiaswagner/followers","following_url":"https://api.github.com/users/mathiaswagner/following{/other_user}","gists_url":"https://api.github.com/users/mathiaswagner/gists{/gist_id}","starred_url":"https://api.github.com/users/mathiaswagner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mathiaswagner/subscriptions","organizations_url":"https://api.github.com/users/mathiaswagner/orgs","repos_url":"https://api.github.com/users/mathiaswagner/repos","events_url":"https://api.github.com/users/mathiaswagner/events{/privacy}","received_events_url":"https://api.github.com/users/mathiaswagner/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/lattice/quda/milestones/15","html_url":"https://github.com/lattice/quda/milestones/QUDA%200.9","labels_url":"https://api.github.com/repos/lattice/quda/milestones/15/labels","id":1382712,"number":15,"title":"QUDA 0.9","description":"Presently just a holding place for issues punted from 0.8...","creator":{"login":"maddyscientist","id":316771,"avatar_url":"https://avatars.githubusercontent.com/u/316771?v=3","gravatar_id":"","url":"https://api.github.com/users/maddyscientist","html_url":"https://github.com/maddyscientist","followers_url":"https://api.github.com/users/maddyscientist/followers","following_url":"https://api.github.com/users/maddyscientist/following{/other_user}","gists_url":"https://api.github.com/users/maddyscientist/gists{/gist_id}","starred_url":"https://api.github.com/users/maddyscientist/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maddyscientist/subscriptions","organizations_url":"https://api.github.com/users/maddyscientist/orgs","repos_url":"https://api.github.com/users/maddyscientist/repos","events_url":"https://api.github.com/users/maddyscientist/events{/privacy}","received_events_url":"https://api.github.com/users/maddyscientist/received_events","type":"User","site_admin":false},"open_issues":34,"closed_issues":7,"state":"open","created_at":"2015-10-29T05:24:23Z","updated_at":"2016-03-18T21:58:31Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/lattice/quda/pulls/447/commits","review_comments_url":"https://api.github.com/repos/lattice/quda/pulls/447/comments","review_comment_url":"https://api.github.com/repos/lattice/quda/pulls/comments{/number}","comments_url":"https://api.github.com/repos/lattice/quda/issues/447/comments","statuses_url":"https://api.github.com/repos/lattice/quda/statuses/777c329a76c5a745bd97482525636ac2e1419125","head":{"label":"lattice:feature/multigrid","ref":"feature/multigrid","sha":"777c329a76c5a745bd97482525636ac2e1419125","user":{"login":"lattice","id":573845,"avatar_url":"https://avatars.githubusercontent.com/u/573845?v=3","gravatar_id":"","url":"https://api.github.com/users/lattice","html_url":"https://github.com/lattice","followers_url":"https://api.github.com/users/lattice/followers","following_url":"https://api.github.com/users/lattice/following{/other_user}","gists_url":"https://api.github.com/users/lattice/gists{/gist_id}","starred_url":"https://api.github.com/users/lattice/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lattice/subscriptions","organizations_url":"https://api.github.com/users/lattice/orgs","repos_url":"https://api.github.com/users/lattice/repos","events_url":"https://api.github.com/users/lattice/events{/privacy}","received_events_url":"https://api.github.com/users/lattice/received_events","type":"Organization","site_admin":false},"repo":{"id":1300564,"name":"quda","full_name":"lattice/quda","owner":{"login":"lattice","id":573845,"avatar_url":"https://avatars.githubusercontent.com/u/573845?v=3","gravatar_id":"","url":"https://api.github.com/users/lattice","html_url":"https://github.com/lattice","followers_url":"https://api.github.com/users/lattice/followers","following_url":"https://api.github.com/users/lattice/following{/other_user}","gists_url":"https://api.github.com/users/lattice/gists{/gist_id}","starred_url":"https://api.github.com/users/lattice/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lattice/subscriptions","organizations_url":"https://api.github.com/users/lattice/orgs","repos_url":"https://api.github.com/users/lattice/repos","events_url":"https://api.github.com/users/lattice/events{/privacy}","received_events_url":"https://api.github.com/users/lattice/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/lattice/quda","description":"QUDA is a library for performing calculations in lattice QCD on GPUs.","fork":false,"url":"https://api.github.com/repos/lattice/quda","forks_url":"https://api.github.com/repos/lattice/quda/forks","keys_url":"https://api.github.com/repos/lattice/quda/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lattice/quda/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lattice/quda/teams","hooks_url":"https://api.github.com/repos/lattice/quda/hooks","issue_events_url":"https://api.github.com/repos/lattice/quda/issues/events{/number}","events_url":"https://api.github.com/repos/lattice/quda/events","assignees_url":"https://api.github.com/repos/lattice/quda/assignees{/user}","branches_url":"https://api.github.com/repos/lattice/quda/branches{/branch}","tags_url":"https://api.github.com/repos/lattice/quda/tags","blobs_url":"https://api.github.com/repos/lattice/quda/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lattice/quda/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lattice/quda/git/refs{/sha}","trees_url":"https://api.github.com/repos/lattice/quda/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lattice/quda/statuses/{sha}","languages_url":"https://api.github.com/repos/lattice/quda/languages","stargazers_url":"https://api.github.com/repos/lattice/quda/stargazers","contributors_url":"https://api.github.com/repos/lattice/quda/contributors","subscribers_url":"https://api.github.com/repos/lattice/quda/subscribers","subscription_url":"https://api.github.com/repos/lattice/quda/subscription","commits_url":"https://api.github.com/repos/lattice/quda/commits{/sha}","git_commits_url":"https://api.github.com/repos/lattice/quda/git/commits{/sha}","comments_url":"https://api.github.com/repos/lattice/quda/comments{/number}","issue_comment_url":"https://api.github.com/repos/lattice/quda/issues/comments{/number}","contents_url":"https://api.github.com/repos/lattice/quda/contents/{+path}","compare_url":"https://api.github.com/repos/lattice/quda/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lattice/quda/merges","archive_url":"https://api.github.com/repos/lattice/quda/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lattice/quda/downloads","issues_url":"https://api.github.com/repos/lattice/quda/issues{/number}","pulls_url":"https://api.github.com/repos/lattice/quda/pulls{/number}","milestones_url":"https://api.github.com/repos/lattice/quda/milestones{/number}","notifications_url":"https://api.github.com/repos/lattice/quda/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lattice/quda/labels{/name}","releases_url":"https://api.github.com/repos/lattice/quda/releases{/id}","deployments_url":"https://api.github.com/repos/lattice/quda/deployments","created_at":"2011-01-27T21:11:16Z","updated_at":"2016-02-17T19:59:11Z","pushed_at":"2016-03-18T21:57:44Z","git_url":"git://github.com/lattice/quda.git","ssh_url":"git@github.com:lattice/quda.git","clone_url":"https://github.com/lattice/quda.git","svn_url":"https://github.com/lattice/quda","homepage":"http://lattice.github.com/quda","size":16550,"stargazers_count":42,"watchers_count":42,"language":"C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":27,"mirror_url":null,"open_issues_count":107,"forks":27,"open_issues":107,"watchers":42,"default_branch":"develop"}},"base":{"label":"lattice:develop","ref":"develop","sha":"3dcd023d601e5cd4d31d9d62141d017d32799097","user":{"login":"lattice","id":573845,"avatar_url":"https://avatars.githubusercontent.com/u/573845?v=3","gravatar_id":"","url":"https://api.github.com/users/lattice","html_url":"https://github.com/lattice","followers_url":"https://api.github.com/users/lattice/followers","following_url":"https://api.github.com/users/lattice/following{/other_user}","gists_url":"https://api.github.com/users/lattice/gists{/gist_id}","starred_url":"https://api.github.com/users/lattice/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lattice/subscriptions","organizations_url":"https://api.github.com/users/lattice/orgs","repos_url":"https://api.github.com/users/lattice/repos","events_url":"https://api.github.com/users/lattice/events{/privacy}","received_events_url":"https://api.github.com/users/lattice/received_events","type":"Organization","site_admin":false},"repo":{"id":1300564,"name":"quda","full_name":"lattice/quda","owner":{"login":"lattice","id":573845,"avatar_url":"https://avatars.githubusercontent.com/u/573845?v=3","gravatar_id":"","url":"https://api.github.com/users/lattice","html_url":"https://github.com/lattice","followers_url":"https://api.github.com/users/lattice/followers","following_url":"https://api.github.com/users/lattice/following{/other_user}","gists_url":"https://api.github.com/users/lattice/gists{/gist_id}","starred_url":"https://api.github.com/users/lattice/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lattice/subscriptions","organizations_url":"https://api.github.com/users/lattice/orgs","repos_url":"https://api.github.com/users/lattice/repos","events_url":"https://api.github.com/users/lattice/events{/privacy}","received_events_url":"https://api.github.com/users/lattice/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/lattice/quda","description":"QUDA is a library for performing calculations in lattice QCD on GPUs.","fork":false,"url":"https://api.github.com/repos/lattice/quda","forks_url":"https://api.github.com/repos/lattice/quda/forks","keys_url":"https://api.github.com/repos/lattice/quda/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lattice/quda/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lattice/quda/teams","hooks_url":"https://api.github.com/repos/lattice/quda/hooks","issue_events_url":"https://api.github.com/repos/lattice/quda/issues/events{/number}","events_url":"https://api.github.com/repos/lattice/quda/events","assignees_url":"https://api.github.com/repos/lattice/quda/assignees{/user}","branches_url":"https://api.github.com/repos/lattice/quda/branches{/branch}","tags_url":"https://api.github.com/repos/lattice/quda/tags","blobs_url":"https://api.github.com/repos/lattice/quda/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lattice/quda/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lattice/quda/git/refs{/sha}","trees_url":"https://api.github.com/repos/lattice/quda/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lattice/quda/statuses/{sha}","languages_url":"https://api.github.com/repos/lattice/quda/languages","stargazers_url":"https://api.github.com/repos/lattice/quda/stargazers","contributors_url":"https://api.github.com/repos/lattice/quda/contributors","subscribers_url":"https://api.github.com/repos/lattice/quda/subscribers","subscription_url":"https://api.github.com/repos/lattice/quda/subscription","commits_url":"https://api.github.com/repos/lattice/quda/commits{/sha}","git_commits_url":"https://api.github.com/repos/lattice/quda/git/commits{/sha}","comments_url":"https://api.github.com/repos/lattice/quda/comments{/number}","issue_comment_url":"https://api.github.com/repos/lattice/quda/issues/comments{/number}","contents_url":"https://api.github.com/repos/lattice/quda/contents/{+path}","compare_url":"https://api.github.com/repos/lattice/quda/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lattice/quda/merges","archive_url":"https://api.github.com/repos/lattice/quda/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lattice/quda/downloads","issues_url":"https://api.github.com/repos/lattice/quda/issues{/number}","pulls_url":"https://api.github.com/repos/lattice/quda/pulls{/number}","milestones_url":"https://api.github.com/repos/lattice/quda/milestones{/number}","notifications_url":"https://api.github.com/repos/lattice/quda/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lattice/quda/labels{/name}","releases_url":"https://api.github.com/repos/lattice/quda/releases{/id}","deployments_url":"https://api.github.com/repos/lattice/quda/deployments","created_at":"2011-01-27T21:11:16Z","updated_at":"2016-02-17T19:59:11Z","pushed_at":"2016-03-18T21:57:44Z","git_url":"git://github.com/lattice/quda.git","ssh_url":"git@github.com:lattice/quda.git","clone_url":"https://github.com/lattice/quda.git","svn_url":"https://github.com/lattice/quda","homepage":"http://lattice.github.com/quda","size":16550,"stargazers_count":42,"watchers_count":42,"language":"C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":27,"mirror_url":null,"open_issues_count":107,"forks":27,"open_issues":107,"watchers":42,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/lattice/quda/pulls/447"},"html":{"href":"https://github.com/lattice/quda/pull/447"},"issue":{"href":"https://api.github.com/repos/lattice/quda/issues/447"},"comments":{"href":"https://api.github.com/repos/lattice/quda/issues/447/comments"},"review_comments":{"href":"https://api.github.com/repos/lattice/quda/pulls/447/comments"},"review_comment":{"href":"https://api.github.com/repos/lattice/quda/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/lattice/quda/pulls/447/commits"},"statuses":{"href":"https://api.github.com/repos/lattice/quda/statuses/777c329a76c5a745bd97482525636ac2e1419125"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"commits":184,"additions":6037,"deletions":3047,"changed_files":156}}