{"action":"closed","number":14783,"pull_request":{"url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/14783","id":236588041,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM2NTg4MDQx","html_url":"https://github.com/PaddlePaddle/Paddle/pull/14783","diff_url":"https://github.com/PaddlePaddle/Paddle/pull/14783.diff","patch_url":"https://github.com/PaddlePaddle/Paddle/pull/14783.patch","issue_url":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/14783","number":14783,"state":"closed","locked":false,"title":"[WIP] Refine/jitkernel","user":{"login":"tensor-tang","id":21351065,"node_id":"MDQ6VXNlcjIxMzUxMDY1","avatar_url":"https://avatars0.githubusercontent.com/u/21351065?v=4","gravatar_id":"","url":"https://api.github.com/users/tensor-tang","html_url":"https://github.com/tensor-tang","followers_url":"https://api.github.com/users/tensor-tang/followers","following_url":"https://api.github.com/users/tensor-tang/following{/other_user}","gists_url":"https://api.github.com/users/tensor-tang/gists{/gist_id}","starred_url":"https://api.github.com/users/tensor-tang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tensor-tang/subscriptions","organizations_url":"https://api.github.com/users/tensor-tang/orgs","repos_url":"https://api.github.com/users/tensor-tang/repos","events_url":"https://api.github.com/users/tensor-tang/events{/privacy}","received_events_url":"https://api.github.com/users/tensor-tang/received_events","type":"User","site_admin":false},"body":"整理jit的cpu kernel，几个出发点：\r\n1.  调用同一套接口，需要在不同的硬件或者OS上都可以跑起来。比如在window上至少是可以跑起来，优化可以逐步做。之前的实现做不到这一点。\r\n2. 之前的code比较难维护和添加新的kernel，因为不同实现需要依赖不同的第三方库，导致一个文件多处宏定义。比如 https://github.com/PaddlePaddle/Paddle/blob/95886483180086f2d9be24f71dbd710dc6599af2/paddle/fluid/operators/math/jit_kernel_rnn.cc#L40-L71 \r\n3. 调用需要调用Compute函数，比较多余，可以直接返回函数指针即可。\r\n\r\n现在设计的大致想法可以见[文档](https://github.com/tensor-tang/Paddle/blob/refine/jitkernel/paddle/fluid/operators/jit/README.md) 。\r\n\r\n还在WIP。\r\n目前CI 编译是不会过的，因为替代的之前的jit_kernel还没替代完，所以会有很多定义找不到。","created_at":"2018-12-06T16:18:30Z","updated_at":"2018-12-21T07:53:28Z","closed_at":"2018-12-21T07:53:28Z","merged_at":null,"merge_commit_sha":"4ebe19da4fa2428caa8f3f325a5270e5d50422c7","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/14783/commits","review_comments_url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/14783/comments","review_comment_url":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/comments{/number}","comments_url":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/14783/comments","statuses_url":"https://api.github.com/repos/PaddlePaddle/Paddle/statuses/28b99abc59a3f31baa4ea95dc8ff6332da6ea218","head":{"label":"tensor-tang:refine/jitkernel","ref":"refine/jitkernel","sha":"28b99abc59a3f31baa4ea95dc8ff6332da6ea218","user":{"login":"tensor-tang","id":21351065,"node_id":"MDQ6VXNlcjIxMzUxMDY1","avatar_url":"https://avatars0.githubusercontent.com/u/21351065?v=4","gravatar_id":"","url":"https://api.github.com/users/tensor-tang","html_url":"https://github.com/tensor-tang","followers_url":"https://api.github.com/users/tensor-tang/followers","following_url":"https://api.github.com/users/tensor-tang/following{/other_user}","gists_url":"https://api.github.com/users/tensor-tang/gists{/gist_id}","starred_url":"https://api.github.com/users/tensor-tang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tensor-tang/subscriptions","organizations_url":"https://api.github.com/users/tensor-tang/orgs","repos_url":"https://api.github.com/users/tensor-tang/repos","events_url":"https://api.github.com/users/tensor-tang/events{/privacy}","received_events_url":"https://api.github.com/users/tensor-tang/received_events","type":"User","site_admin":false},"repo":{"id":72816384,"node_id":"MDEwOlJlcG9zaXRvcnk3MjgxNjM4NA==","name":"Paddle","full_name":"tensor-tang/Paddle","private":false,"owner":{"login":"tensor-tang","id":21351065,"node_id":"MDQ6VXNlcjIxMzUxMDY1","avatar_url":"https://avatars0.githubusercontent.com/u/21351065?v=4","gravatar_id":"","url":"https://api.github.com/users/tensor-tang","html_url":"https://github.com/tensor-tang","followers_url":"https://api.github.com/users/tensor-tang/followers","following_url":"https://api.github.com/users/tensor-tang/following{/other_user}","gists_url":"https://api.github.com/users/tensor-tang/gists{/gist_id}","starred_url":"https://api.github.com/users/tensor-tang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tensor-tang/subscriptions","organizations_url":"https://api.github.com/users/tensor-tang/orgs","repos_url":"https://api.github.com/users/tensor-tang/repos","events_url":"https://api.github.com/users/tensor-tang/events{/privacy}","received_events_url":"https://api.github.com/users/tensor-tang/received_events","type":"User","site_admin":false},"html_url":"https://github.com/tensor-tang/Paddle","description":"PArallel Distributed Deep LEarning","fork":true,"url":"https://api.github.com/repos/tensor-tang/Paddle","forks_url":"https://api.github.com/repos/tensor-tang/Paddle/forks","keys_url":"https://api.github.com/repos/tensor-tang/Paddle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tensor-tang/Paddle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tensor-tang/Paddle/teams","hooks_url":"https://api.github.com/repos/tensor-tang/Paddle/hooks","issue_events_url":"https://api.github.com/repos/tensor-tang/Paddle/issues/events{/number}","events_url":"https://api.github.com/repos/tensor-tang/Paddle/events","assignees_url":"https://api.github.com/repos/tensor-tang/Paddle/assignees{/user}","branches_url":"https://api.github.com/repos/tensor-tang/Paddle/branches{/branch}","tags_url":"https://api.github.com/repos/tensor-tang/Paddle/tags","blobs_url":"https://api.github.com/repos/tensor-tang/Paddle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tensor-tang/Paddle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tensor-tang/Paddle/git/refs{/sha}","trees_url":"https://api.github.com/repos/tensor-tang/Paddle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tensor-tang/Paddle/statuses/{sha}","languages_url":"https://api.github.com/repos/tensor-tang/Paddle/languages","stargazers_url":"https://api.github.com/repos/tensor-tang/Paddle/stargazers","contributors_url":"https://api.github.com/repos/tensor-tang/Paddle/contributors","subscribers_url":"https://api.github.com/repos/tensor-tang/Paddle/subscribers","subscription_url":"https://api.github.com/repos/tensor-tang/Paddle/subscription","commits_url":"https://api.github.com/repos/tensor-tang/Paddle/commits{/sha}","git_commits_url":"https://api.github.com/repos/tensor-tang/Paddle/git/commits{/sha}","comments_url":"https://api.github.com/repos/tensor-tang/Paddle/comments{/number}","issue_comment_url":"https://api.github.com/repos/tensor-tang/Paddle/issues/comments{/number}","contents_url":"https://api.github.com/repos/tensor-tang/Paddle/contents/{+path}","compare_url":"https://api.github.com/repos/tensor-tang/Paddle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tensor-tang/Paddle/merges","archive_url":"https://api.github.com/repos/tensor-tang/Paddle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tensor-tang/Paddle/downloads","issues_url":"https://api.github.com/repos/tensor-tang/Paddle/issues{/number}","pulls_url":"https://api.github.com/repos/tensor-tang/Paddle/pulls{/number}","milestones_url":"https://api.github.com/repos/tensor-tang/Paddle/milestones{/number}","notifications_url":"https://api.github.com/repos/tensor-tang/Paddle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tensor-tang/Paddle/labels{/name}","releases_url":"https://api.github.com/repos/tensor-tang/Paddle/releases{/id}","deployments_url":"https://api.github.com/repos/tensor-tang/Paddle/deployments","created_at":"2016-11-04T05:14:11Z","updated_at":"2018-12-20T16:56:43Z","pushed_at":"2018-12-21T07:52:22Z","git_url":"git://github.com/tensor-tang/Paddle.git","ssh_url":"git@github.com:tensor-tang/Paddle.git","clone_url":"https://github.com/tensor-tang/Paddle.git","svn_url":"https://github.com/tensor-tang/Paddle","homepage":"http://www.paddlepaddle.org/","size":92810,"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":1,"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":1,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"PaddlePaddle:develop","ref":"develop","sha":"95886483180086f2d9be24f71dbd710dc6599af2","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 （PaddlePaddle核心框架，高性能单机、分布式训练和跨平台部署）","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-12-21T07:52:16Z","pushed_at":"2018-12-21T07:52:16Z","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":143835,"stargazers_count":7924,"watchers_count":7924,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":2154,"mirror_url":null,"archived":false,"open_issues_count":711,"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":2154,"open_issues":711,"watchers":7924,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/14783"},"html":{"href":"https://github.com/PaddlePaddle/Paddle/pull/14783"},"issue":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/14783"},"comments":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/issues/14783/comments"},"review_comments":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/14783/comments"},"review_comment":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/pulls/14783/commits"},"statuses":{"href":"https://api.github.com/repos/PaddlePaddle/Paddle/statuses/28b99abc59a3f31baa4ea95dc8ff6332da6ea218"}},"author_association":"CONTRIBUTOR","merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":7,"review_comments":0,"maintainer_can_modify":false,"commits":8,"additions":1300,"deletions":8,"changed_files":25}}
{"actor":{"display_login":"tensor-tang"}}