{"action":"created","comment":{"url":"https://api.github.com/repos/NervanaSystems/ngraph/pulls/comments/175583364","pull_request_review_id":105101984,"id":175583364,"diff_hunk":"@@ -26,6 +28,130 @@ namespace ngraph\n         {\n             namespace kernel\n             {\n+                void emit_prologue(codegen::CodeWriter& writer, const Node* node)\n+                {\n+                    writer << \"{   //\" << node->get_name() << \"\\n\";\n+                    writer.indent++;\n+                }\n+\n+                void emit_epilogue(codegen::CodeWriter& writer)\n+                {\n+                    writer.indent--;\n+                    writer << \"}\\n\";\n+                }\n+\n+                void emit_memset(codegen::CodeWriter& writer,\n+                                 const GPU_TensorViewWrapper& dst,\n+                                 int value,\n+                                 size_t buffer_size = 0)\n+                {\n+                    if (buffer_size == 0)\n+                    {\n+                        buffer_size = dst.get_size() * dst.get_element_type().size();\n+                    }\n+                    writer << \"runtime::gpu::cuda_memset(\" << dst.get_name() << \", \" << value\n+                           << \", \" << buffer_size << \");\\n\";\n+                }\n+\n+                void emit_memcpyDtD(codegen::CodeWriter& writer,\n+                                    const GPU_TensorViewWrapper& dst,\n+                                    const GPU_TensorViewWrapper& src)\n+                {\n+                    writer << \"runtime::gpu::cuda_memcpyDtD(\" << dst.get_name() << \", \"\n+                           << src.get_name() << \", \" << dst.get_size() << \" * \"\n+                           << dst.get_element_type().size() << \");\\n\";\n+                    return;\n+                }\n+\n+                void emit_cudnnTensor4dDescriptor(codegen::CodeWriter& writer,\n+                                                  const std::string& name,\n+                                                  const std::string& format,\n+                                                  const std::string& data_type,\n+                                                  const std::array<size_t, 4>& axes)\n+                {\n+                    writer << \"cudnnTensorDescriptor_t \" << name << \";\\n\";\n+                    writer << \"cudnnCreateTensorDescriptor(&\" << name << \");\\n\";\n+                    writer << \"cudnnSetTensor4dDescriptor(\" << name << \",\\n\";\n+                    writer << \"                 /*format=*/\" << format << \",\\n\";\n+                    writer << \"                 /*dataType=*/\" << data_type;\n+                    for (auto const& axis : axes)\n+                    {\n+                        writer << \",\\n                 /*dimension_size*/\" << axis;\n+                    }\n+                    writer << \");\\n\";\n+                }\n+\n+                void emit_cudnnTensorNdDescriptor(codegen::CodeWriter& writer,\n+                                                  const std::string& name,\n+                                                  const std::string& data_type,\n+                                                  const int& num_axes,\n+                                                  const std::vector<size_t>& axes,\n+                                                  const std::vector<size_t>& strides)\n+                {\n+                    writer << \"const int \" << name << \"_axes[] = {\";\n+                    for (auto const& axis : axes)\n+                    {\n+                        writer << axis << \",\";\n+                    }\n+                    writer << \"};\\n\";\n+\n+                    writer << \"const int \" << name << \"_strides[] = {\";\n+                    for (auto const& axis_stride : strides)\n+                    {\n+                        writer << axis_stride << \",\";\n+                    }\n+                    writer << \"};\\n\";\n+\n+                    writer << \"cudnnTensorDescriptor_t \" << name << \";\\n\";\n+                    writer << \"cudnnCreateTensorDescriptor(&\" << name << \");\\n\";\n+                    writer << \"cudnnSetTensorNdDescriptor(\" << name << \",\\n\";\n+                    writer << \"                 /*dataType=*/\" << data_type << \",\\n\";\n+                    writer << \"                 /*num_dimensions=*/\" << num_axes << \",\\n\";\n+                    writer << \"                 /*dimensions*/\" << name << \"_axes,\\n\";\n+                    writer << \"                 /*strides*/\" << name << \"_strides);\\n\";\n+                }\n+\n+                void emit_cudnnReduceTensor(codegen::CodeWriter& writer,\n+                                            const GPU_TensorViewWrapper& in,\n+                                            const GPU_TensorViewWrapper& out,\n+                                            const std::string& reduce_op,\n+                                            const std::string& data_type,\n+                                            const std::string& nan_prop,\n+                                            const std::string& input_desc,\n+                                            const std::string& output_desc,\n+                                            const float& alpha,\n+                                            const float& beta)\n+                {\n+                    writer << \"cudnnReduceTensorDescriptor_t reduceTensorDesc;\\n\";\n+                    writer << \"cudnnCreateReduceTensorDescriptor(&reduceTensorDesc);\\n\";\n+                    writer << \"cudnnSetReduceTensorDescriptor(reduceTensorDesc,\\n\";\n+                    writer << \"                               \" << reduce_op << \",\\n\";\n+                    writer << \"                               \" << data_type << \",\\n\";\n+                    writer << \"                               \" << nan_prop << \",\\n\";\n+                    writer << \"                               CUDNN_REDUCE_TENSOR_NO_INDICES,\\n\";\n+                    writer << \"                               CUDNN_32BIT_INDICES);\\n\";\n+                    writer << \"size_t workspace_size = 0;\\n\";\n+                    writer << \"cudnnGetReductionWorkspaceSize(cudnn_handle,\\n\";\n+                    writer << \"                               reduceTensorDesc,\\n\";\n+                    writer << \"                               \" << input_desc << \",\\n\";\n+                    writer << \"                               \" << output_desc << \",\\n\";\n+                    writer << \"                                &workspace_size);\\n\";\n+                    writer << \"void* workspace_ptr = \"\n+                              \"ngraph::runtime::gpu::create_gpu_buffer(workspace_size);\\n\";\n+                    writer << \"float alpha = \" << alpha << \", beta = \" << beta << \";\\n\";","path":"src/ngraph/runtime/gpu/gpu_kernel_emitters.hpp","position":123,"original_position":123,"commit_id":"947d5996e4de35905e4e14829d2e4ac5f4377cf1","original_commit_id":"6f5678456c0e6ee6f614f8d0d01bdce2a65c8832","user":{"login":"fengleitian","id":35274053,"avatar_url":"https://avatars3.githubusercontent.com/u/35274053?v=4","gravatar_id":"","url":"https://api.github.com/users/fengleitian","html_url":"https://github.com/fengleitian","followers_url":"https://api.github.com/users/fengleitian/followers","following_url":"https://api.github.com/users/fengleitian/following{/other_user}","gists_url":"https://api.github.com/users/fengleitian/gists{/gist_id}","starred_url":"https://api.github.com/users/fengleitian/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fengleitian/subscriptions","organizations_url":"https://api.github.com/users/fengleitian/orgs","repos_url":"https://api.github.com/users/fengleitian/repos","events_url":"https://api.github.com/users/fengleitian/events{/privacy}","received_events_url":"https://api.github.com/users/fengleitian/received_events","type":"User","site_admin":false},"body":"free after use?","created_at":"2018-03-19T20:58:22Z","updated_at":"2018-03-19T20:59:40Z","html_url":"https://github.com/NervanaSystems/ngraph/pull/671#discussion_r175583364","pull_request_url":"https://api.github.com/repos/NervanaSystems/ngraph/pulls/671","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/NervanaSystems/ngraph/pulls/comments/175583364"},"html":{"href":"https://github.com/NervanaSystems/ngraph/pull/671#discussion_r175583364"},"pull_request":{"href":"https://api.github.com/repos/NervanaSystems/ngraph/pulls/671"}}},"pull_request":{"url":"https://api.github.com/repos/NervanaSystems/ngraph/pulls/671","id":175674264,"html_url":"https://github.com/NervanaSystems/ngraph/pull/671","diff_url":"https://github.com/NervanaSystems/ngraph/pull/671.diff","patch_url":"https://github.com/NervanaSystems/ngraph/pull/671.patch","issue_url":"https://api.github.com/repos/NervanaSystems/ngraph/issues/671","number":671,"state":"open","locked":false,"title":"Add reduce sum to the GPU transformer (op::Sum)","user":{"login":"csullivan","id":4804563,"avatar_url":"https://avatars1.githubusercontent.com/u/4804563?v=4","gravatar_id":"","url":"https://api.github.com/users/csullivan","html_url":"https://github.com/csullivan","followers_url":"https://api.github.com/users/csullivan/followers","following_url":"https://api.github.com/users/csullivan/following{/other_user}","gists_url":"https://api.github.com/users/csullivan/gists{/gist_id}","starred_url":"https://api.github.com/users/csullivan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/csullivan/subscriptions","organizations_url":"https://api.github.com/users/csullivan/orgs","repos_url":"https://api.github.com/users/csullivan/repos","events_url":"https://api.github.com/users/csullivan/events{/privacy}","received_events_url":"https://api.github.com/users/csullivan/received_events","type":"User","site_admin":false},"body":"What this PR does:\r\n\r\n* Enables sum reduce for tensors of arbitrary tensor size.\r\n   * For tensors of <= 4-dimensions, the built in cudnn 4d tensor descriptor is used as the cudnn api suggests it is optimized for smaller tensors.\r\n   * For tensors of greater than 4 dimensions the Nd tensor descriptor is used.\r\n* Added 5d tensor to scalar unit test.\r\n\r\n\r\nLimitations:\r\n* Only supports float","created_at":"2018-03-17T00:49:19Z","updated_at":"2018-03-19T20:59:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9b5f474e4dd62c3e25cf12946735ae66287b399d","assignee":null,"assignees":[],"requested_reviewers":[{"login":"rkimballn1","id":19153694,"avatar_url":"https://avatars2.githubusercontent.com/u/19153694?v=4","gravatar_id":"","url":"https://api.github.com/users/rkimballn1","html_url":"https://github.com/rkimballn1","followers_url":"https://api.github.com/users/rkimballn1/followers","following_url":"https://api.github.com/users/rkimballn1/following{/other_user}","gists_url":"https://api.github.com/users/rkimballn1/gists{/gist_id}","starred_url":"https://api.github.com/users/rkimballn1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rkimballn1/subscriptions","organizations_url":"https://api.github.com/users/rkimballn1/orgs","repos_url":"https://api.github.com/users/rkimballn1/repos","events_url":"https://api.github.com/users/rkimballn1/events{/privacy}","received_events_url":"https://api.github.com/users/rkimballn1/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":825174556,"url":"https://api.github.com/repos/NervanaSystems/ngraph/labels/GPU","name":"GPU","color":"3956cc","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/NervanaSystems/ngraph/pulls/671/commits","review_comments_url":"https://api.github.com/repos/NervanaSystems/ngraph/pulls/671/comments","review_comment_url":"https://api.github.com/repos/NervanaSystems/ngraph/pulls/comments{/number}","comments_url":"https://api.github.com/repos/NervanaSystems/ngraph/issues/671/comments","statuses_url":"https://api.github.com/repos/NervanaSystems/ngraph/statuses/947d5996e4de35905e4e14829d2e4ac5f4377cf1","head":{"label":"NervanaSystems:cs/gpu_sum","ref":"cs/gpu_sum","sha":"947d5996e4de35905e4e14829d2e4ac5f4377cf1","user":{"login":"NervanaSystems","id":9260121,"avatar_url":"https://avatars2.githubusercontent.com/u/9260121?v=4","gravatar_id":"","url":"https://api.github.com/users/NervanaSystems","html_url":"https://github.com/NervanaSystems","followers_url":"https://api.github.com/users/NervanaSystems/followers","following_url":"https://api.github.com/users/NervanaSystems/following{/other_user}","gists_url":"https://api.github.com/users/NervanaSystems/gists{/gist_id}","starred_url":"https://api.github.com/users/NervanaSystems/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NervanaSystems/subscriptions","organizations_url":"https://api.github.com/users/NervanaSystems/orgs","repos_url":"https://api.github.com/users/NervanaSystems/repos","events_url":"https://api.github.com/users/NervanaSystems/events{/privacy}","received_events_url":"https://api.github.com/users/NervanaSystems/received_events","type":"Organization","site_admin":false},"repo":{"id":98252973,"name":"ngraph","full_name":"NervanaSystems/ngraph","owner":{"login":"NervanaSystems","id":9260121,"avatar_url":"https://avatars2.githubusercontent.com/u/9260121?v=4","gravatar_id":"","url":"https://api.github.com/users/NervanaSystems","html_url":"https://github.com/NervanaSystems","followers_url":"https://api.github.com/users/NervanaSystems/followers","following_url":"https://api.github.com/users/NervanaSystems/following{/other_user}","gists_url":"https://api.github.com/users/NervanaSystems/gists{/gist_id}","starred_url":"https://api.github.com/users/NervanaSystems/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NervanaSystems/subscriptions","organizations_url":"https://api.github.com/users/NervanaSystems/orgs","repos_url":"https://api.github.com/users/NervanaSystems/repos","events_url":"https://api.github.com/users/NervanaSystems/events{/privacy}","received_events_url":"https://api.github.com/users/NervanaSystems/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/NervanaSystems/ngraph","description":"Intel® nGraph™, an open-source C++ library and compiler for Deep Learning Frameworks","fork":false,"url":"https://api.github.com/repos/NervanaSystems/ngraph","forks_url":"https://api.github.com/repos/NervanaSystems/ngraph/forks","keys_url":"https://api.github.com/repos/NervanaSystems/ngraph/keys{/key_id}","collaborators_url":"https://api.github.com/repos/NervanaSystems/ngraph/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/NervanaSystems/ngraph/teams","hooks_url":"https://api.github.com/repos/NervanaSystems/ngraph/hooks","issue_events_url":"https://api.github.com/repos/NervanaSystems/ngraph/issues/events{/number}","events_url":"https://api.github.com/repos/NervanaSystems/ngraph/events","assignees_url":"https://api.github.com/repos/NervanaSystems/ngraph/assignees{/user}","branches_url":"https://api.github.com/repos/NervanaSystems/ngraph/branches{/branch}","tags_url":"https://api.github.com/repos/NervanaSystems/ngraph/tags","blobs_url":"https://api.github.com/repos/NervanaSystems/ngraph/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/NervanaSystems/ngraph/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/NervanaSystems/ngraph/git/refs{/sha}","trees_url":"https://api.github.com/repos/NervanaSystems/ngraph/git/trees{/sha}","statuses_url":"https://api.github.com/repos/NervanaSystems/ngraph/statuses/{sha}","languages_url":"https://api.github.com/repos/NervanaSystems/ngraph/languages","stargazers_url":"https://api.github.com/repos/NervanaSystems/ngraph/stargazers","contributors_url":"https://api.github.com/repos/NervanaSystems/ngraph/contributors","subscribers_url":"https://api.github.com/repos/NervanaSystems/ngraph/subscribers","subscription_url":"https://api.github.com/repos/NervanaSystems/ngraph/subscription","commits_url":"https://api.github.com/repos/NervanaSystems/ngraph/commits{/sha}","git_commits_url":"https://api.github.com/repos/NervanaSystems/ngraph/git/commits{/sha}","comments_url":"https://api.github.com/repos/NervanaSystems/ngraph/comments{/number}","issue_comment_url":"https://api.github.com/repos/NervanaSystems/ngraph/issues/comments{/number}","contents_url":"https://api.github.com/repos/NervanaSystems/ngraph/contents/{+path}","compare_url":"https://api.github.com/repos/NervanaSystems/ngraph/compare/{base}...{head}","merges_url":"https://api.github.com/repos/NervanaSystems/ngraph/merges","archive_url":"https://api.github.com/repos/NervanaSystems/ngraph/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/NervanaSystems/ngraph/downloads","issues_url":"https://api.github.com/repos/NervanaSystems/ngraph/issues{/number}","pulls_url":"https://api.github.com/repos/NervanaSystems/ngraph/pulls{/number}","milestones_url":"https://api.github.com/repos/NervanaSystems/ngraph/milestones{/number}","notifications_url":"https://api.github.com/repos/NervanaSystems/ngraph/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/NervanaSystems/ngraph/labels{/name}","releases_url":"https://api.github.com/repos/NervanaSystems/ngraph/releases{/id}","deployments_url":"https://api.github.com/repos/NervanaSystems/ngraph/deployments","created_at":"2017-07-25T02:02:38Z","updated_at":"2018-03-19T20:23:24Z","pushed_at":"2018-03-19T20:36:33Z","git_url":"git://github.com/NervanaSystems/ngraph.git","ssh_url":"git@github.com:NervanaSystems/ngraph.git","clone_url":"https://github.com/NervanaSystems/ngraph.git","svn_url":"https://github.com/NervanaSystems/ngraph","homepage":"http://ngraph.nervanasys.com/docs/latest","size":14240,"stargazers_count":57,"watchers_count":57,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"archived":false,"open_issues_count":27,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":2,"open_issues":27,"watchers":57,"default_branch":"master"}},"base":{"label":"NervanaSystems:master","ref":"master","sha":"324474169ae35950f304105872d06127d0f90de8","user":{"login":"NervanaSystems","id":9260121,"avatar_url":"https://avatars2.githubusercontent.com/u/9260121?v=4","gravatar_id":"","url":"https://api.github.com/users/NervanaSystems","html_url":"https://github.com/NervanaSystems","followers_url":"https://api.github.com/users/NervanaSystems/followers","following_url":"https://api.github.com/users/NervanaSystems/following{/other_user}","gists_url":"https://api.github.com/users/NervanaSystems/gists{/gist_id}","starred_url":"https://api.github.com/users/NervanaSystems/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NervanaSystems/subscriptions","organizations_url":"https://api.github.com/users/NervanaSystems/orgs","repos_url":"https://api.github.com/users/NervanaSystems/repos","events_url":"https://api.github.com/users/NervanaSystems/events{/privacy}","received_events_url":"https://api.github.com/users/NervanaSystems/received_events","type":"Organization","site_admin":false},"repo":{"id":98252973,"name":"ngraph","full_name":"NervanaSystems/ngraph","owner":{"login":"NervanaSystems","id":9260121,"avatar_url":"https://avatars2.githubusercontent.com/u/9260121?v=4","gravatar_id":"","url":"https://api.github.com/users/NervanaSystems","html_url":"https://github.com/NervanaSystems","followers_url":"https://api.github.com/users/NervanaSystems/followers","following_url":"https://api.github.com/users/NervanaSystems/following{/other_user}","gists_url":"https://api.github.com/users/NervanaSystems/gists{/gist_id}","starred_url":"https://api.github.com/users/NervanaSystems/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NervanaSystems/subscriptions","organizations_url":"https://api.github.com/users/NervanaSystems/orgs","repos_url":"https://api.github.com/users/NervanaSystems/repos","events_url":"https://api.github.com/users/NervanaSystems/events{/privacy}","received_events_url":"https://api.github.com/users/NervanaSystems/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/NervanaSystems/ngraph","description":"Intel® nGraph™, an open-source C++ library and compiler for Deep Learning Frameworks","fork":false,"url":"https://api.github.com/repos/NervanaSystems/ngraph","forks_url":"https://api.github.com/repos/NervanaSystems/ngraph/forks","keys_url":"https://api.github.com/repos/NervanaSystems/ngraph/keys{/key_id}","collaborators_url":"https://api.github.com/repos/NervanaSystems/ngraph/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/NervanaSystems/ngraph/teams","hooks_url":"https://api.github.com/repos/NervanaSystems/ngraph/hooks","issue_events_url":"https://api.github.com/repos/NervanaSystems/ngraph/issues/events{/number}","events_url":"https://api.github.com/repos/NervanaSystems/ngraph/events","assignees_url":"https://api.github.com/repos/NervanaSystems/ngraph/assignees{/user}","branches_url":"https://api.github.com/repos/NervanaSystems/ngraph/branches{/branch}","tags_url":"https://api.github.com/repos/NervanaSystems/ngraph/tags","blobs_url":"https://api.github.com/repos/NervanaSystems/ngraph/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/NervanaSystems/ngraph/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/NervanaSystems/ngraph/git/refs{/sha}","trees_url":"https://api.github.com/repos/NervanaSystems/ngraph/git/trees{/sha}","statuses_url":"https://api.github.com/repos/NervanaSystems/ngraph/statuses/{sha}","languages_url":"https://api.github.com/repos/NervanaSystems/ngraph/languages","stargazers_url":"https://api.github.com/repos/NervanaSystems/ngraph/stargazers","contributors_url":"https://api.github.com/repos/NervanaSystems/ngraph/contributors","subscribers_url":"https://api.github.com/repos/NervanaSystems/ngraph/subscribers","subscription_url":"https://api.github.com/repos/NervanaSystems/ngraph/subscription","commits_url":"https://api.github.com/repos/NervanaSystems/ngraph/commits{/sha}","git_commits_url":"https://api.github.com/repos/NervanaSystems/ngraph/git/commits{/sha}","comments_url":"https://api.github.com/repos/NervanaSystems/ngraph/comments{/number}","issue_comment_url":"https://api.github.com/repos/NervanaSystems/ngraph/issues/comments{/number}","contents_url":"https://api.github.com/repos/NervanaSystems/ngraph/contents/{+path}","compare_url":"https://api.github.com/repos/NervanaSystems/ngraph/compare/{base}...{head}","merges_url":"https://api.github.com/repos/NervanaSystems/ngraph/merges","archive_url":"https://api.github.com/repos/NervanaSystems/ngraph/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/NervanaSystems/ngraph/downloads","issues_url":"https://api.github.com/repos/NervanaSystems/ngraph/issues{/number}","pulls_url":"https://api.github.com/repos/NervanaSystems/ngraph/pulls{/number}","milestones_url":"https://api.github.com/repos/NervanaSystems/ngraph/milestones{/number}","notifications_url":"https://api.github.com/repos/NervanaSystems/ngraph/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/NervanaSystems/ngraph/labels{/name}","releases_url":"https://api.github.com/repos/NervanaSystems/ngraph/releases{/id}","deployments_url":"https://api.github.com/repos/NervanaSystems/ngraph/deployments","created_at":"2017-07-25T02:02:38Z","updated_at":"2018-03-19T20:23:24Z","pushed_at":"2018-03-19T20:36:33Z","git_url":"git://github.com/NervanaSystems/ngraph.git","ssh_url":"git@github.com:NervanaSystems/ngraph.git","clone_url":"https://github.com/NervanaSystems/ngraph.git","svn_url":"https://github.com/NervanaSystems/ngraph","homepage":"http://ngraph.nervanasys.com/docs/latest","size":14240,"stargazers_count":57,"watchers_count":57,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"archived":false,"open_issues_count":27,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":2,"open_issues":27,"watchers":57,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/NervanaSystems/ngraph/pulls/671"},"html":{"href":"https://github.com/NervanaSystems/ngraph/pull/671"},"issue":{"href":"https://api.github.com/repos/NervanaSystems/ngraph/issues/671"},"comments":{"href":"https://api.github.com/repos/NervanaSystems/ngraph/issues/671/comments"},"review_comments":{"href":"https://api.github.com/repos/NervanaSystems/ngraph/pulls/671/comments"},"review_comment":{"href":"https://api.github.com/repos/NervanaSystems/ngraph/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/NervanaSystems/ngraph/pulls/671/commits"},"statuses":{"href":"https://api.github.com/repos/NervanaSystems/ngraph/statuses/947d5996e4de35905e4e14829d2e4ac5f4377cf1"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"fengleitian"}}