{"action":"created","comment":{"url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/comments/220829392","pull_request_review_id":159327252,"id":220829392,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyMDgyOTM5Mg==","diff_hunk":"@@ -132,6 +132,11 @@ void Conv2DOpMaker::Make() {\n             \"(Tensor) The output tensor of convolution operator. \"\n             \"The format of output tensor is also NCHW.\")\n       .Reuse(\"Input\");\n+  AddInput(\"ResidualData\",\n+           \"(Tensor) Tensor with residual data \"\n+           \"to which convolution output will be added.\"\n+           \"Used on with fuse_eltwise fusion.\")","path":"paddle/fluid/operators/conv_op.cc","position":7,"original_position":7,"commit_id":"02c0aca561b3b364a797b37392d5fb7c65b67dd8","original_commit_id":"02c0aca561b3b364a797b37392d5fb7c65b67dd8","user":{"login":"tpatejko","id":22833753,"node_id":"MDQ6VXNlcjIyODMzNzUz","avatar_url":"https://avatars1.githubusercontent.com/u/22833753?v=4","gravatar_id":"","url":"https://api.github.com/users/tpatejko","html_url":"https://github.com/tpatejko","followers_url":"https://api.github.com/users/tpatejko/followers","following_url":"https://api.github.com/users/tpatejko/following{/other_user}","gists_url":"https://api.github.com/users/tpatejko/gists{/gist_id}","starred_url":"https://api.github.com/users/tpatejko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tpatejko/subscriptions","organizations_url":"https://api.github.com/users/tpatejko/orgs","repos_url":"https://api.github.com/users/tpatejko/repos","events_url":"https://api.github.com/users/tpatejko/events{/privacy}","received_events_url":"https://api.github.com/users/tpatejko/received_events","type":"User","site_admin":false},"body":"What is your suggestion?","created_at":"2018-09-27T08:08:42Z","updated_at":"2018-09-27T08:08:42Z","html_url":"https://github.com/PaddlePaddle/Paddle/pull/13485#discussion_r220829392","pull_request_url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13485","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/comments/220829392"},"html":{"href":"https://github.com/PaddlePaddle/Paddle/pull/13485#discussion_r220829392"},"pull_request":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13485"}},"in_reply_to_id":220827024},"pull_request":{"url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13485","id":216556316,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE2NTU2MzE2","html_url":"https://github.com/PaddlePaddle/Paddle/pull/13485","diff_url":"https://github.com/PaddlePaddle/Paddle/pull/13485.diff","patch_url":"https://github.com/PaddlePaddle/Paddle/pull/13485.patch","issue_url":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/13485","number":13485,"state":"open","locked":false,"title":"MKLDNN conv+elementwise_add fusion for residual connections in Resnet","user":{"login":"tpatejko","id":22833753,"node_id":"MDQ6VXNlcjIyODMzNzUz","avatar_url":"https://avatars1.githubusercontent.com/u/22833753?v=4","gravatar_id":"","url":"https://api.github.com/users/tpatejko","html_url":"https://github.com/tpatejko","followers_url":"https://api.github.com/users/tpatejko/followers","following_url":"https://api.github.com/users/tpatejko/following{/other_user}","gists_url":"https://api.github.com/users/tpatejko/gists{/gist_id}","starred_url":"https://api.github.com/users/tpatejko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tpatejko/subscriptions","organizations_url":"https://api.github.com/users/tpatejko/orgs","repos_url":"https://api.github.com/users/tpatejko/repos","events_url":"https://api.github.com/users/tpatejko/events{/privacy}","received_events_url":"https://api.github.com/users/tpatejko/received_events","type":"User","site_admin":false},"body":"This PR implements fusion of MKLDNN convolution and elementwise add operator. \r\n\r\nMKLDNN supports the conv-sum fusion for residual connections in Resnet networks. These two operators are fused into a single MKLDNN convolution primitive where output buffer is initialized with data to which convolution output will be added.\r\n\r\nElementwise add takes as inputs X and Y outputs from two branches of residual connections in Resnet. The IR pass tries to find the pattern conv -> elementwise add, where Y parameter in elementwise add op is a convolution output, and fuse it into a single MKLDNN convolution. After fusion, X parameter is passed to the new convolution op as `ResidualData` argument.\r\n","created_at":"2018-09-19T08:35:23Z","updated_at":"2018-09-27T08:08:42Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8b3898aa05af29f0f76105a33b7b4b20362e6792","assignee":null,"assignees":[],"requested_reviewers":[{"login":"Sand3r-","id":4967505,"node_id":"MDQ6VXNlcjQ5Njc1MDU=","avatar_url":"https://avatars3.githubusercontent.com/u/4967505?v=4","gravatar_id":"","url":"https://api.github.com/users/Sand3r-","html_url":"https://github.com/Sand3r-","followers_url":"https://api.github.com/users/Sand3r-/followers","following_url":"https://api.github.com/users/Sand3r-/following{/other_user}","gists_url":"https://api.github.com/users/Sand3r-/gists{/gist_id}","starred_url":"https://api.github.com/users/Sand3r-/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sand3r-/subscriptions","organizations_url":"https://api.github.com/users/Sand3r-/orgs","repos_url":"https://api.github.com/users/Sand3r-/repos","events_url":"https://api.github.com/users/Sand3r-/events{/privacy}","received_events_url":"https://api.github.com/users/Sand3r-/received_events","type":"User","site_admin":false},{"login":"jczaja","id":15085062,"node_id":"MDQ6VXNlcjE1MDg1MDYy","avatar_url":"https://avatars0.githubusercontent.com/u/15085062?v=4","gravatar_id":"","url":"https://api.github.com/users/jczaja","html_url":"https://github.com/jczaja","followers_url":"https://api.github.com/users/jczaja/followers","following_url":"https://api.github.com/users/jczaja/following{/other_user}","gists_url":"https://api.github.com/users/jczaja/gists{/gist_id}","starred_url":"https://api.github.com/users/jczaja/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jczaja/subscriptions","organizations_url":"https://api.github.com/users/jczaja/orgs","repos_url":"https://api.github.com/users/jczaja/repos","events_url":"https://api.github.com/users/jczaja/events{/privacy}","received_events_url":"https://api.github.com/users/jczaja/received_events","type":"User","site_admin":false},{"login":"mozga-intel","id":36698412,"node_id":"MDQ6VXNlcjM2Njk4NDEy","avatar_url":"https://avatars0.githubusercontent.com/u/36698412?v=4","gravatar_id":"","url":"https://api.github.com/users/mozga-intel","html_url":"https://github.com/mozga-intel","followers_url":"https://api.github.com/users/mozga-intel/followers","following_url":"https://api.github.com/users/mozga-intel/following{/other_user}","gists_url":"https://api.github.com/users/mozga-intel/gists{/gist_id}","starred_url":"https://api.github.com/users/mozga-intel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mozga-intel/subscriptions","organizations_url":"https://api.github.com/users/mozga-intel/orgs","repos_url":"https://api.github.com/users/mozga-intel/repos","events_url":"https://api.github.com/users/mozga-intel/events{/privacy}","received_events_url":"https://api.github.com/users/mozga-intel/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":831909412,"node_id":"MDU6TGFiZWw4MzE5MDk0MTI=","url":"https://api.github.com/repos/PaddlePaddle/Paddle/labels/Intel","name":"Intel","color":"53a9d1","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13485/commits","review_comments_url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13485/comments","review_comment_url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/comments{/number}","comments_url":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/13485/comments","statuses_url":"https://api.github.com/repos/PaddlePaddle/Paddle/statuses/02c0aca561b3b364a797b37392d5fb7c65b67dd8","head":{"label":"tpatejko:tpatejko/capi-resnet-conv-elementwise-fusion","ref":"tpatejko/capi-resnet-conv-elementwise-fusion","sha":"02c0aca561b3b364a797b37392d5fb7c65b67dd8","user":{"login":"tpatejko","id":22833753,"node_id":"MDQ6VXNlcjIyODMzNzUz","avatar_url":"https://avatars1.githubusercontent.com/u/22833753?v=4","gravatar_id":"","url":"https://api.github.com/users/tpatejko","html_url":"https://github.com/tpatejko","followers_url":"https://api.github.com/users/tpatejko/followers","following_url":"https://api.github.com/users/tpatejko/following{/other_user}","gists_url":"https://api.github.com/users/tpatejko/gists{/gist_id}","starred_url":"https://api.github.com/users/tpatejko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tpatejko/subscriptions","organizations_url":"https://api.github.com/users/tpatejko/orgs","repos_url":"https://api.github.com/users/tpatejko/repos","events_url":"https://api.github.com/users/tpatejko/events{/privacy}","received_events_url":"https://api.github.com/users/tpatejko/received_events","type":"User","site_admin":false},"repo":{"id":124542799,"node_id":"MDEwOlJlcG9zaXRvcnkxMjQ1NDI3OTk=","name":"Paddle","full_name":"tpatejko/Paddle","private":false,"owner":{"login":"tpatejko","id":22833753,"node_id":"MDQ6VXNlcjIyODMzNzUz","avatar_url":"https://avatars1.githubusercontent.com/u/22833753?v=4","gravatar_id":"","url":"https://api.github.com/users/tpatejko","html_url":"https://github.com/tpatejko","followers_url":"https://api.github.com/users/tpatejko/followers","following_url":"https://api.github.com/users/tpatejko/following{/other_user}","gists_url":"https://api.github.com/users/tpatejko/gists{/gist_id}","starred_url":"https://api.github.com/users/tpatejko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tpatejko/subscriptions","organizations_url":"https://api.github.com/users/tpatejko/orgs","repos_url":"https://api.github.com/users/tpatejko/repos","events_url":"https://api.github.com/users/tpatejko/events{/privacy}","received_events_url":"https://api.github.com/users/tpatejko/received_events","type":"User","site_admin":false},"html_url":"https://github.com/tpatejko/Paddle","description":"PArallel Distributed Deep LEarning","fork":true,"url":"https://api.github.com/repos/tpatejko/Paddle","forks_url":"https://api.github.com/repos/tpatejko/Paddle/forks","keys_url":"https://api.github.com/repos/tpatejko/Paddle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tpatejko/Paddle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tpatejko/Paddle/teams","hooks_url":"https://api.github.com/repos/tpatejko/Paddle/hooks","issue_events_url":"https://api.github.com/repos/tpatejko/Paddle/issues/events{/number}","events_url":"https://api.github.com/repos/tpatejko/Paddle/events","assignees_url":"https://api.github.com/repos/tpatejko/Paddle/assignees{/user}","branches_url":"https://api.github.com/repos/tpatejko/Paddle/branches{/branch}","tags_url":"https://api.github.com/repos/tpatejko/Paddle/tags","blobs_url":"https://api.github.com/repos/tpatejko/Paddle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tpatejko/Paddle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tpatejko/Paddle/git/refs{/sha}","trees_url":"https://api.github.com/repos/tpatejko/Paddle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tpatejko/Paddle/statuses/{sha}","languages_url":"https://api.github.com/repos/tpatejko/Paddle/languages","stargazers_url":"https://api.github.com/repos/tpatejko/Paddle/stargazers","contributors_url":"https://api.github.com/repos/tpatejko/Paddle/contributors","subscribers_url":"https://api.github.com/repos/tpatejko/Paddle/subscribers","subscription_url":"https://api.github.com/repos/tpatejko/Paddle/subscription","commits_url":"https://api.github.com/repos/tpatejko/Paddle/commits{/sha}","git_commits_url":"https://api.github.com/repos/tpatejko/Paddle/git/commits{/sha}","comments_url":"https://api.github.com/repos/tpatejko/Paddle/comments{/number}","issue_comment_url":"https://api.github.com/repos/tpatejko/Paddle/issues/comments{/number}","contents_url":"https://api.github.com/repos/tpatejko/Paddle/contents/{+path}","compare_url":"https://api.github.com/repos/tpatejko/Paddle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tpatejko/Paddle/merges","archive_url":"https://api.github.com/repos/tpatejko/Paddle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tpatejko/Paddle/downloads","issues_url":"https://api.github.com/repos/tpatejko/Paddle/issues{/number}","pulls_url":"https://api.github.com/repos/tpatejko/Paddle/pulls{/number}","milestones_url":"https://api.github.com/repos/tpatejko/Paddle/milestones{/number}","notifications_url":"https://api.github.com/repos/tpatejko/Paddle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tpatejko/Paddle/labels{/name}","releases_url":"https://api.github.com/repos/tpatejko/Paddle/releases{/id}","deployments_url":"https://api.github.com/repos/tpatejko/Paddle/deployments","created_at":"2018-03-09T13:16:36Z","updated_at":"2018-03-29T06:45:38Z","pushed_at":"2018-09-26T16:33:46Z","git_url":"git://github.com/tpatejko/Paddle.git","ssh_url":"git@github.com:tpatejko/Paddle.git","clone_url":"https://github.com/tpatejko/Paddle.git","svn_url":"https://github.com/tpatejko/Paddle","homepage":"http://www.paddlepaddle.org/","size":134998,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"PaddlePaddle:develop","ref":"develop","sha":"16e73e0d2806f5375cc7741d16e0b3cd0b0b6fbc","user":{"login":"PaddlePaddle","id":23534030,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIzNTM0MDMw","avatar_url":"https://avatars3.githubusercontent.com/u/23534030?v=4","gravatar_id":"","url":"https://api.github.com/users/PaddlePaddle","html_url":"https://github.com/PaddlePaddle","followers_url":"https://api.github.com/users/PaddlePaddle/followers","following_url":"https://api.github.com/users/PaddlePaddle/following{/other_user}","gists_url":"https://api.github.com/users/PaddlePaddle/gists{/gist_id}","starred_url":"https://api.github.com/users/PaddlePaddle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PaddlePaddle/subscriptions","organizations_url":"https://api.github.com/users/PaddlePaddle/orgs","repos_url":"https://api.github.com/users/PaddlePaddle/repos","events_url":"https://api.github.com/users/PaddlePaddle/events{/privacy}","received_events_url":"https://api.github.com/users/PaddlePaddle/received_events","type":"Organization","site_admin":false},"repo":{"id":65711522,"node_id":"MDEwOlJlcG9zaXRvcnk2NTcxMTUyMg==","name":"Paddle","full_name":"PaddlePaddle/Paddle","private":false,"owner":{"login":"PaddlePaddle","id":23534030,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIzNTM0MDMw","avatar_url":"https://avatars3.githubusercontent.com/u/23534030?v=4","gravatar_id":"","url":"https://api.github.com/users/PaddlePaddle","html_url":"https://github.com/PaddlePaddle","followers_url":"https://api.github.com/users/PaddlePaddle/followers","following_url":"https://api.github.com/users/PaddlePaddle/following{/other_user}","gists_url":"https://api.github.com/users/PaddlePaddle/gists{/gist_id}","starred_url":"https://api.github.com/users/PaddlePaddle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PaddlePaddle/subscriptions","organizations_url":"https://api.github.com/users/PaddlePaddle/orgs","repos_url":"https://api.github.com/users/PaddlePaddle/repos","events_url":"https://api.github.com/users/PaddlePaddle/events{/privacy}","received_events_url":"https://api.github.com/users/PaddlePaddle/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PaddlePaddle/Paddle","description":"PArallel Distributed Deep LEarning","fork":false,"url":"https://api.github.com/repos/PaddlePaddle/Paddle","forks_url":"https://api.github.com/repos/PaddlePaddle/Paddle/forks","keys_url":"https://api.github.com/repos/PaddlePaddle/Paddle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PaddlePaddle/Paddle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PaddlePaddle/Paddle/teams","hooks_url":"https://api.github.com/repos/PaddlePaddle/Paddle/hooks","issue_events_url":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/events{/number}","events_url":"https://api.github.com/repos/PaddlePaddle/Paddle/events","assignees_url":"https://api.github.com/repos/PaddlePaddle/Paddle/assignees{/user}","branches_url":"https://api.github.com/repos/PaddlePaddle/Paddle/branches{/branch}","tags_url":"https://api.github.com/repos/PaddlePaddle/Paddle/tags","blobs_url":"https://api.github.com/repos/PaddlePaddle/Paddle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PaddlePaddle/Paddle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PaddlePaddle/Paddle/git/refs{/sha}","trees_url":"https://api.github.com/repos/PaddlePaddle/Paddle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PaddlePaddle/Paddle/statuses/{sha}","languages_url":"https://api.github.com/repos/PaddlePaddle/Paddle/languages","stargazers_url":"https://api.github.com/repos/PaddlePaddle/Paddle/stargazers","contributors_url":"https://api.github.com/repos/PaddlePaddle/Paddle/contributors","subscribers_url":"https://api.github.com/repos/PaddlePaddle/Paddle/subscribers","subscription_url":"https://api.github.com/repos/PaddlePaddle/Paddle/subscription","commits_url":"https://api.github.com/repos/PaddlePaddle/Paddle/commits{/sha}","git_commits_url":"https://api.github.com/repos/PaddlePaddle/Paddle/git/commits{/sha}","comments_url":"https://api.github.com/repos/PaddlePaddle/Paddle/comments{/number}","issue_comment_url":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/comments{/number}","contents_url":"https://api.github.com/repos/PaddlePaddle/Paddle/contents/{+path}","compare_url":"https://api.github.com/repos/PaddlePaddle/Paddle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PaddlePaddle/Paddle/merges","archive_url":"https://api.github.com/repos/PaddlePaddle/Paddle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PaddlePaddle/Paddle/downloads","issues_url":"https://api.github.com/repos/PaddlePaddle/Paddle/issues{/number}","pulls_url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls{/number}","milestones_url":"https://api.github.com/repos/PaddlePaddle/Paddle/milestones{/number}","notifications_url":"https://api.github.com/repos/PaddlePaddle/Paddle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PaddlePaddle/Paddle/labels{/name}","releases_url":"https://api.github.com/repos/PaddlePaddle/Paddle/releases{/id}","deployments_url":"https://api.github.com/repos/PaddlePaddle/Paddle/deployments","created_at":"2016-08-15T06:59:08Z","updated_at":"2018-09-27T08:01:39Z","pushed_at":"2018-09-27T08:04:45Z","git_url":"git://github.com/PaddlePaddle/Paddle.git","ssh_url":"git@github.com:PaddlePaddle/Paddle.git","clone_url":"https://github.com/PaddlePaddle/Paddle.git","svn_url":"https://github.com/PaddlePaddle/Paddle","homepage":"http://www.paddlepaddle.org/","size":135691,"stargazers_count":7557,"watchers_count":7557,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":2060,"mirror_url":null,"archived":false,"open_issues_count":676,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":2060,"open_issues":676,"watchers":7557,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13485"},"html":{"href":"https://github.com/PaddlePaddle/Paddle/pull/13485"},"issue":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/13485"},"comments":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/13485/comments"},"review_comments":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13485/comments"},"review_comment":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/13485/commits"},"statuses":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/statuses/02c0aca561b3b364a797b37392d5fb7c65b67dd8"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"tpatejko"}}