{"action":"created","issue":{"url":"https://api.github.com/repos/facebookresearch/TensorComprehensions/issues/489","repository_url":"https://api.github.com/repos/facebookresearch/TensorComprehensions","labels_url":"https://api.github.com/repos/facebookresearch/TensorComprehensions/issues/489/labels{/name}","comments_url":"https://api.github.com/repos/facebookresearch/TensorComprehensions/issues/489/comments","events_url":"https://api.github.com/repos/facebookresearch/TensorComprehensions/issues/489/events","html_url":"https://github.com/facebookresearch/TensorComprehensions/pull/489","id":330250665,"node_id":"MDExOlB1bGxSZXF1ZXN0MTkzMzA0MzQ4","number":489,"title":"register promotion: promote below any node in the tree","user":{"login":"ftynse","id":1512299,"node_id":"MDQ6VXNlcjE1MTIyOTk=","avatar_url":"https://avatars1.githubusercontent.com/u/1512299?v=4","gravatar_id":"","url":"https://api.github.com/users/ftynse","html_url":"https://github.com/ftynse","followers_url":"https://api.github.com/users/ftynse/followers","following_url":"https://api.github.com/users/ftynse/following{/other_user}","gists_url":"https://api.github.com/users/ftynse/gists{/gist_id}","starred_url":"https://api.github.com/users/ftynse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ftynse/subscriptions","organizations_url":"https://api.github.com/users/ftynse/orgs","repos_url":"https://api.github.com/users/ftynse/repos","events_url":"https://api.github.com/users/ftynse/events{/privacy}","received_events_url":"https://api.github.com/users/ftynse/received_events","type":"User","site_admin":false},"labels":[{"id":829008246,"node_id":"MDU6TGFiZWw4MjkwMDgyNDY=","url":"https://api.github.com/repos/facebookresearch/TensorComprehensions/labels/CLA%20Signed","name":"CLA Signed","color":"c2f4fc","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-06-07T12:29:56Z","updated_at":"2018-06-08T08:41:30Z","closed_at":null,"author_association":"COLLABORATOR","pull_request":{"url":"https://api.github.com/repos/facebookresearch/TensorComprehensions/pulls/489","html_url":"https://github.com/facebookresearch/TensorComprehensions/pull/489","diff_url":"https://github.com/facebookresearch/TensorComprehensions/pull/489.diff","patch_url":"https://github.com/facebookresearch/TensorComprehensions/pull/489.patch"},"body":"Introduce promoteToRegistersBelow that takes a schedule tree node as a\r\nscoping point and attempts register promotion below that node.  Rewrite\r\npromoteToRegistersBelowThreads to keep the existing behavior.\r\n\r\nIndependently of the promotion scope, tensor reference groups must be\r\ncomputed per-thread (and per-block).  Include the thread (and block)\r\nmapping in the domain of the outer schedule when computing the groups.\r\n\r\nSince registers are private to a thread, different threads should not \r\naccess the same value within the given scope.  Inside the promotion\r\nscope, there may be multiple subtrees with different thread mappings.\r\nFurthermore, these mappings are not included in the prefix (scope)\r\nschedule.  Always include thread schedule when checking if accesses are \r\nperformed from one thread only.  This schedule takes into account\r\npotentially different mappings.\r\n\r\nRelax the restriction for a promoted group to contain only one element.\r\nInstead, check that all only the dimensions that either correspond to\r\nunrolled loops or are mapped to blocks or threads appear in the access\r\nsubscripts.  During code generation, the corresponding loop iterators\r\nare either replaced by constants due to unrolling or become implicit in\r\nblock/thread-specific groups (i.e., each thread in each block accesses\r\ndifferent elements so it can use the same \"address\" for them).\r\n\r\nCompute reuse within threads by appending thread schedule to the prefix\r\nschedule before checking for reuse."},"comment":{"url":"https://api.github.com/repos/facebookresearch/TensorComprehensions/issues/comments/395692570","html_url":"https://github.com/facebookresearch/TensorComprehensions/pull/489#issuecomment-395692570","issue_url":"https://api.github.com/repos/facebookresearch/TensorComprehensions/issues/489","id":395692570,"node_id":"MDEyOklzc3VlQ29tbWVudDM5NTY5MjU3MA==","user":{"login":"ftynse","id":1512299,"node_id":"MDQ6VXNlcjE1MTIyOTk=","avatar_url":"https://avatars1.githubusercontent.com/u/1512299?v=4","gravatar_id":"","url":"https://api.github.com/users/ftynse","html_url":"https://github.com/ftynse","followers_url":"https://api.github.com/users/ftynse/followers","following_url":"https://api.github.com/users/ftynse/following{/other_user}","gists_url":"https://api.github.com/users/ftynse/gists{/gist_id}","starred_url":"https://api.github.com/users/ftynse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ftynse/subscriptions","organizations_url":"https://api.github.com/users/ftynse/orgs","repos_url":"https://api.github.com/users/ftynse/repos","events_url":"https://api.github.com/users/ftynse/events{/privacy}","received_events_url":"https://api.github.com/users/ftynse/received_events","type":"User","site_admin":false},"created_at":"2018-06-08T08:41:30Z","updated_at":"2018-06-08T08:41:30Z","author_association":"COLLABORATOR","body":"@caffe2bot retest this, please"}}
{"actor":{"display_login":"ftynse"}}