{"action":"created","comment":{"url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/pulls/comments/45367191","id":45367191,"diff_hunk":"@@ -0,0 +1,282 @@\n+/**\n+ * \\file\n+ * Copyright 2014-2015 Erik Zenker\n+ *\n+ * This file is part of alpaka.\n+ *\n+ * alpaka is free software: you can redistribute it and/or modify\n+ * it under the terms of the GNU Lesser General Public License as published by\n+ * the Free Software Foundation, either version 3 of the License, or\n+ * (at your option) any later version.\n+ *\n+ * alpaka is distributed in the hope that it will be useful,\n+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n+ * GNU Lesser General Public License for more details.\n+ *\n+ * You should have received a copy of the GNU Lesser General Public License\n+ * along with alpaka.\n+ * If not, see <http://www.gnu.org/licenses/>.\n+ *\n+ */\n+\n+// Alpaka\n+#include <alpaka/alpaka.hpp>\n+\n+// STL\n+#include <iostream>\n+\n+// CLIB\n+#include <assert.h>\n+\n+\n+/**\n+ * Prints all elements of the buffer.\n+ */\n+struct PrintBufferKernel {\n+    template <typename T_Acc,\n+              typename T_Data,\n+              typename T_Extent>\n+    ALPAKA_FN_ACC void operator()( T_Acc const &acc,\n+                                   T_Data const &buffer,\n+                                   T_Extent const extents) const {\n+\n+        auto globalThreadIdx    = alpaka::idx::getIdx<alpaka::Grid, alpaka::Threads>(acc);\n+        auto globalThreadExtent = alpaka::workdiv::getWorkDiv<alpaka::Grid, alpaka::Threads>(acc);\n+\n+        auto linearizedGlobalThreadIdx = alpaka::core::mapIdx<1u>(globalThreadIdx,\n+                                                                  globalThreadExtent);\n+\n+        for(size_t i = linearizedGlobalThreadIdx[0]; i < extents.prod(); i += globalThreadExtent.prod()){\n+            std::cout << buffer[i] << \" \";\n+\n+        }\n+\n+    }\n+\n+};\n+\n+\n+/**\n+ * Tests if the value of the buffer on index i is equal to i.\n+ */\n+struct TestBufferKernel {\n+    template <typename T_Acc,\n+              typename T_Data,\n+              typename T_Extent>\n+    ALPAKA_FN_ACC void operator()( T_Acc const &acc,\n+                                   T_Data const &buffer,\n+                                   T_Extent const extents) const {\n+\n+        auto globalThreadIdx    = alpaka::idx::getIdx<alpaka::Grid, alpaka::Threads>(acc);\n+        auto globalThreadExtent = alpaka::workdiv::getWorkDiv<alpaka::Grid, alpaka::Threads>(acc);\n+\n+        auto linearizedGlobalThreadIdx = alpaka::core::mapIdx<1u>(globalThreadIdx,\n+                                                                  globalThreadExtent);\n+\n+        for(size_t i = linearizedGlobalThreadIdx[0]; i < extents.prod(); i += globalThreadExtent.prod()){\n+            assert(buffer[i] == i);\n+\n+        }\n+\n+    }\n+\n+};\n+\n+/**\n+ * Inits all values of a buffer with initValue.\n+ */\n+struct InitBufferKernel {\n+    template <typename T_Acc,\n+              typename T_Data,\n+              typename T_Extent,\n+              typename T_Init>\n+    ALPAKA_FN_ACC void operator()( T_Acc const &acc,\n+                                   T_Data &buffer,\n+                                   T_Extent const extents,\n+                                   T_Init initValue) const {\n+\n+        auto globalThreadIdx    = alpaka::idx::getIdx<alpaka::Grid, alpaka::Threads>(acc);\n+        auto globalThreadExtent = alpaka::workdiv::getWorkDiv<alpaka::Grid, alpaka::Threads>(acc);\n+\n+        auto linearizedGlobalThreadIdx = alpaka::core::mapIdx<1u>(globalThreadIdx,\n+                                                                  globalThreadExtent);\n+\n+        for(size_t i = linearizedGlobalThreadIdx[0]; i < extents.prod(); i += globalThreadExtent.prod()){\n+            buffer[i] = initValue;\n+\n+        }\n+\n+    }\n+\n+};\n+\n+\n+int main() {\n+\n+    /***************************************************************************\n+     * Configure types\n+     **************************************************************************/\n+    using Dim     = alpaka::dim::DimInt<3>;\n+    using DimMem  = alpaka::dim::DimInt<3>;\n+    using Size    = std::size_t;\n+    using Extents = Size;\n+    using Host    = alpaka::acc::AccCpuSerial<Dim, Size>;\n+    using Acc     = alpaka::acc::AccCpuSerial<Dim, Size>;\n+    using DevHost = alpaka::dev::Dev<Host>;\n+    using DevAcc  = alpaka::dev::Dev<Acc>;\n+    using WorkDiv = alpaka::workdiv::WorkDivMembers<Dim, Size>;\n+    using Stream  = alpaka::stream::StreamCpuSync;\n+\n+    /***************************************************************************\n+     * Get the first device\n+     **************************************************************************/\n+    DevAcc  devAcc  (alpaka::dev::DevMan<Acc>::getDevByIdx(0));\n+    DevHost devHost (alpaka::dev::DevMan<Acc>::getDevByIdx(0));\n+\n+    /***************************************************************************\n+     * Create sync stream\n+     **************************************************************************/\n+    Stream  stream  (devAcc);\n+\n+\n+    /***************************************************************************\n+     * Init workdiv\n+     **************************************************************************/\n+    alpaka::Vec<Dim, Size> const elementsPerThread(static_cast<Size>(1),\n+                                                   static_cast<Size>(1),\n+                                                   static_cast<Size>(1));\n+\n+    alpaka::Vec<Dim, Size> const threadsPerBlock(static_cast<Size>(1),\n+                                                 static_cast<Size>(1),\n+                                                 static_cast<Size>(1));\n+\n+    alpaka::Vec<Dim, Size> const blocksPerGrid(static_cast<Size>(4),\n+                                               static_cast<Size>(8),\n+                                               static_cast<Size>(16));\n+\n+    WorkDiv const workdiv(alpaka::workdiv::WorkDivMembers<Dim, Size>(blocksPerGrid,\n+                                                                     threadsPerBlock,\n+                                                                     elementsPerThread));\n+\n+\n+    /**\n+     * Create host and device buffers\n+     *\n+     * A buffer is an n-dimensional structure with a\n+     * particular data type and size which corresponds\n+     * to memory on the desired device. Buffers can be\n+     * allocated on the device or can be obtained from\n+     * allready existing allocations e.g. std::array or\n+     * std::vector.\n+     **/\n+    using Data = unsigned;\n+    const Extents nElementsPerDim = 2;\n+\n+    const alpaka::Vec<DimMem, Size> extents(static_cast<Size>(nElementsPerDim),\n+                                            static_cast<Size>(nElementsPerDim),\n+                                            static_cast<Size>(nElementsPerDim));\n+\n+    std::array<Data, nElementsPerDim * nElementsPerDim * nElementsPerDim> plainBuffer;\n+    alpaka::mem::buf::BufPlainPtrWrapper<DevHost, Data, DimMem, Size> hostBufferPlain(plainBuffer.data(), devHost, extents);\n+    alpaka::mem::buf::Buf<DevHost, Data, DimMem, Size> hostBuffer (alpaka::mem::buf::alloc<Data, Size>(devHost, extents));\n+    alpaka::mem::buf::Buf<DevAcc, Data, DimMem, Size> deviceBuffer(alpaka::mem::buf::alloc<Data, Size>(devAcc,  extents));\n+\n+\n+    /**\n+     * Init plain host buffer\n+     *\n+     * The buffer obtained from a plain pointer\n+     * of the host is initialized here with the\n+     * value zero. It is recommended to use a\n+     * kernel for such a task, since a kernel\n+     * can speed up the initialization process.\n+     * The buffer can be provided to a kernel\n+     * by passing the native pointer of the memory\n+     * within the buffer (getPtrNative).\n+     */\n+    InitBufferKernel initBufferKernel;\n+    Data initValue = 0;\n+\n+    auto const init (alpaka::exec::create<Host> (workdiv,\n+                                                 initBufferKernel,\n+                                                 alpaka::mem::view::getPtrNative(hostBufferPlain), // 1st kernel argument\n+                                                 extents,                                          // 2nd kernel argument\n+                                                 initValue));                                      // 3rd kernel argument\n+    alpaka::stream::enqueue(stream, init);\n+\n+\n+    /**\n+     * Write some data to plain host buffer\n+     *\n+     * The buffer can not access the inner\n+     * elements by some access operator\n+     * directly, but it can return the\n+     * pointer to the memory within the\n+     * buffer (getPtrNative). This pointer\n+     * can be used to write some values into\n+     * the buffer memory. Mind, that only a host\n+     * can write on host memory. The same holds\n+     * for device memory.\n+     */\n+    for(size_t i = 0; i < extents.prod(); ++i){\n+        alpaka::mem::view::getPtrNative(hostBufferPlain)[i] = static_cast<Data>(i);\n+    }\n+\n+\n+    /**\n+     * Copy host to device Buffer\n+     *\n+     * A copy operation of one buffer into\n+     * another buffer is enqueued into a stream\n+     * like it is done for kernel execution, but\n+     * more automatically. Copy is only possible\n+     * from host to host, host to device and\n+     * device to host. Device to device copies\n+     * are not possible. In this example the\n+     * buffer with the plain pointer is first copied\n+     * into the host buffer and then is the host\n+     * buffer copied into the device buffer.\n+     */\n+    alpaka::mem::view::copy(stream, hostBuffer, hostBufferPlain, extents);","path":"example/copy/src/copy.cpp","position":241,"original_position":241,"commit_id":"e9bc7f11f94defc8612feec5df648f5ec1229d9b","original_commit_id":"e9bc7f11f94defc8612feec5df648f5ec1229d9b","user":{"login":"BenjaminW3","id":8956583,"avatar_url":"https://avatars.githubusercontent.com/u/8956583?v=3","gravatar_id":"","url":"https://api.github.com/users/BenjaminW3","html_url":"https://github.com/BenjaminW3","followers_url":"https://api.github.com/users/BenjaminW3/followers","following_url":"https://api.github.com/users/BenjaminW3/following{/other_user}","gists_url":"https://api.github.com/users/BenjaminW3/gists{/gist_id}","starred_url":"https://api.github.com/users/BenjaminW3/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BenjaminW3/subscriptions","organizations_url":"https://api.github.com/users/BenjaminW3/orgs","repos_url":"https://api.github.com/users/BenjaminW3/repos","events_url":"https://api.github.com/users/BenjaminW3/events{/privacy}","received_events_url":"https://api.github.com/users/BenjaminW3/received_events","type":"User","site_admin":false},"body":"I can see a reason why all versions (native host buffer, native device buffer and plain pointer host buffer wrapper) should be showcased.\r\nHowever, the detour to copy hostBufferPlain -> hostBuffer -> deviceBuffer instead of the direct copy hostBufferPlain -> deviceBuffer looks very artificial.","created_at":"2015-11-19T16:52:49Z","updated_at":"2015-11-19T16:52:49Z","html_url":"https://github.com/ComputationalRadiationPhysics/alpaka/pull/98#discussion_r45367191","pull_request_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/pulls/98","_links":{"self":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/pulls/comments/45367191"},"html":{"href":"https://github.com/ComputationalRadiationPhysics/alpaka/pull/98#discussion_r45367191"},"pull_request":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/pulls/98"}}},"pull_request":{"url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/pulls/98","id":50960007,"html_url":"https://github.com/ComputationalRadiationPhysics/alpaka/pull/98","diff_url":"https://github.com/ComputationalRadiationPhysics/alpaka/pull/98.diff","patch_url":"https://github.com/ComputationalRadiationPhysics/alpaka/pull/98.patch","issue_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/issues/98","number":98,"state":"open","locked":false,"title":"buffer copy example","user":{"login":"erikzenker","id":341041,"avatar_url":"https://avatars.githubusercontent.com/u/341041?v=3","gravatar_id":"","url":"https://api.github.com/users/erikzenker","html_url":"https://github.com/erikzenker","followers_url":"https://api.github.com/users/erikzenker/followers","following_url":"https://api.github.com/users/erikzenker/following{/other_user}","gists_url":"https://api.github.com/users/erikzenker/gists{/gist_id}","starred_url":"https://api.github.com/users/erikzenker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/erikzenker/subscriptions","organizations_url":"https://api.github.com/users/erikzenker/orgs","repos_url":"https://api.github.com/users/erikzenker/repos","events_url":"https://api.github.com/users/erikzenker/events{/privacy}","received_events_url":"https://api.github.com/users/erikzenker/received_events","type":"User","site_admin":false},"body":"This example creates several buffers, inits these buffers and performs\r\ncopy operations.","created_at":"2015-11-17T15:23:28Z","updated_at":"2015-11-19T16:52:49Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9dc2667b8c57218bb589157c8bb7b25721fd2ff3","assignee":{"login":"BenjaminW3","id":8956583,"avatar_url":"https://avatars.githubusercontent.com/u/8956583?v=3","gravatar_id":"","url":"https://api.github.com/users/BenjaminW3","html_url":"https://github.com/BenjaminW3","followers_url":"https://api.github.com/users/BenjaminW3/followers","following_url":"https://api.github.com/users/BenjaminW3/following{/other_user}","gists_url":"https://api.github.com/users/BenjaminW3/gists{/gist_id}","starred_url":"https://api.github.com/users/BenjaminW3/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BenjaminW3/subscriptions","organizations_url":"https://api.github.com/users/BenjaminW3/orgs","repos_url":"https://api.github.com/users/BenjaminW3/repos","events_url":"https://api.github.com/users/BenjaminW3/events{/privacy}","received_events_url":"https://api.github.com/users/BenjaminW3/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/pulls/98/commits","review_comments_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/pulls/98/comments","review_comment_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/issues/98/comments","statuses_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/statuses/e9bc7f11f94defc8612feec5df648f5ec1229d9b","head":{"label":"erikzenker:example-copy","ref":"example-copy","sha":"e9bc7f11f94defc8612feec5df648f5ec1229d9b","user":{"login":"erikzenker","id":341041,"avatar_url":"https://avatars.githubusercontent.com/u/341041?v=3","gravatar_id":"","url":"https://api.github.com/users/erikzenker","html_url":"https://github.com/erikzenker","followers_url":"https://api.github.com/users/erikzenker/followers","following_url":"https://api.github.com/users/erikzenker/following{/other_user}","gists_url":"https://api.github.com/users/erikzenker/gists{/gist_id}","starred_url":"https://api.github.com/users/erikzenker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/erikzenker/subscriptions","organizations_url":"https://api.github.com/users/erikzenker/orgs","repos_url":"https://api.github.com/users/erikzenker/repos","events_url":"https://api.github.com/users/erikzenker/events{/privacy}","received_events_url":"https://api.github.com/users/erikzenker/received_events","type":"User","site_admin":false},"repo":{"id":41791221,"name":"alpaka","full_name":"erikzenker/alpaka","owner":{"login":"erikzenker","id":341041,"avatar_url":"https://avatars.githubusercontent.com/u/341041?v=3","gravatar_id":"","url":"https://api.github.com/users/erikzenker","html_url":"https://github.com/erikzenker","followers_url":"https://api.github.com/users/erikzenker/followers","following_url":"https://api.github.com/users/erikzenker/following{/other_user}","gists_url":"https://api.github.com/users/erikzenker/gists{/gist_id}","starred_url":"https://api.github.com/users/erikzenker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/erikzenker/subscriptions","organizations_url":"https://api.github.com/users/erikzenker/orgs","repos_url":"https://api.github.com/users/erikzenker/repos","events_url":"https://api.github.com/users/erikzenker/events{/privacy}","received_events_url":"https://api.github.com/users/erikzenker/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/erikzenker/alpaka","description":"Abstraction Library for Parallel Kernel Acceleration","fork":true,"url":"https://api.github.com/repos/erikzenker/alpaka","forks_url":"https://api.github.com/repos/erikzenker/alpaka/forks","keys_url":"https://api.github.com/repos/erikzenker/alpaka/keys{/key_id}","collaborators_url":"https://api.github.com/repos/erikzenker/alpaka/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/erikzenker/alpaka/teams","hooks_url":"https://api.github.com/repos/erikzenker/alpaka/hooks","issue_events_url":"https://api.github.com/repos/erikzenker/alpaka/issues/events{/number}","events_url":"https://api.github.com/repos/erikzenker/alpaka/events","assignees_url":"https://api.github.com/repos/erikzenker/alpaka/assignees{/user}","branches_url":"https://api.github.com/repos/erikzenker/alpaka/branches{/branch}","tags_url":"https://api.github.com/repos/erikzenker/alpaka/tags","blobs_url":"https://api.github.com/repos/erikzenker/alpaka/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/erikzenker/alpaka/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/erikzenker/alpaka/git/refs{/sha}","trees_url":"https://api.github.com/repos/erikzenker/alpaka/git/trees{/sha}","statuses_url":"https://api.github.com/repos/erikzenker/alpaka/statuses/{sha}","languages_url":"https://api.github.com/repos/erikzenker/alpaka/languages","stargazers_url":"https://api.github.com/repos/erikzenker/alpaka/stargazers","contributors_url":"https://api.github.com/repos/erikzenker/alpaka/contributors","subscribers_url":"https://api.github.com/repos/erikzenker/alpaka/subscribers","subscription_url":"https://api.github.com/repos/erikzenker/alpaka/subscription","commits_url":"https://api.github.com/repos/erikzenker/alpaka/commits{/sha}","git_commits_url":"https://api.github.com/repos/erikzenker/alpaka/git/commits{/sha}","comments_url":"https://api.github.com/repos/erikzenker/alpaka/comments{/number}","issue_comment_url":"https://api.github.com/repos/erikzenker/alpaka/issues/comments{/number}","contents_url":"https://api.github.com/repos/erikzenker/alpaka/contents/{+path}","compare_url":"https://api.github.com/repos/erikzenker/alpaka/compare/{base}...{head}","merges_url":"https://api.github.com/repos/erikzenker/alpaka/merges","archive_url":"https://api.github.com/repos/erikzenker/alpaka/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/erikzenker/alpaka/downloads","issues_url":"https://api.github.com/repos/erikzenker/alpaka/issues{/number}","pulls_url":"https://api.github.com/repos/erikzenker/alpaka/pulls{/number}","milestones_url":"https://api.github.com/repos/erikzenker/alpaka/milestones{/number}","notifications_url":"https://api.github.com/repos/erikzenker/alpaka/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/erikzenker/alpaka/labels{/name}","releases_url":"https://api.github.com/repos/erikzenker/alpaka/releases{/id}","created_at":"2015-09-02T09:04:21Z","updated_at":"2015-09-02T09:04:22Z","pushed_at":"2015-11-19T13:17:33Z","git_url":"git://github.com/erikzenker/alpaka.git","ssh_url":"git@github.com:erikzenker/alpaka.git","clone_url":"https://github.com/erikzenker/alpaka.git","svn_url":"https://github.com/erikzenker/alpaka","homepage":"","size":11762,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ComputationalRadiationPhysics:develop","ref":"develop","sha":"e7b18db90cf4cf5fd6d6262adec9db176c3da8af","user":{"login":"ComputationalRadiationPhysics","id":5120388,"avatar_url":"https://avatars.githubusercontent.com/u/5120388?v=3","gravatar_id":"","url":"https://api.github.com/users/ComputationalRadiationPhysics","html_url":"https://github.com/ComputationalRadiationPhysics","followers_url":"https://api.github.com/users/ComputationalRadiationPhysics/followers","following_url":"https://api.github.com/users/ComputationalRadiationPhysics/following{/other_user}","gists_url":"https://api.github.com/users/ComputationalRadiationPhysics/gists{/gist_id}","starred_url":"https://api.github.com/users/ComputationalRadiationPhysics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ComputationalRadiationPhysics/subscriptions","organizations_url":"https://api.github.com/users/ComputationalRadiationPhysics/orgs","repos_url":"https://api.github.com/users/ComputationalRadiationPhysics/repos","events_url":"https://api.github.com/users/ComputationalRadiationPhysics/events{/privacy}","received_events_url":"https://api.github.com/users/ComputationalRadiationPhysics/received_events","type":"Organization","site_admin":false},"repo":{"id":26217535,"name":"alpaka","full_name":"ComputationalRadiationPhysics/alpaka","owner":{"login":"ComputationalRadiationPhysics","id":5120388,"avatar_url":"https://avatars.githubusercontent.com/u/5120388?v=3","gravatar_id":"","url":"https://api.github.com/users/ComputationalRadiationPhysics","html_url":"https://github.com/ComputationalRadiationPhysics","followers_url":"https://api.github.com/users/ComputationalRadiationPhysics/followers","following_url":"https://api.github.com/users/ComputationalRadiationPhysics/following{/other_user}","gists_url":"https://api.github.com/users/ComputationalRadiationPhysics/gists{/gist_id}","starred_url":"https://api.github.com/users/ComputationalRadiationPhysics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ComputationalRadiationPhysics/subscriptions","organizations_url":"https://api.github.com/users/ComputationalRadiationPhysics/orgs","repos_url":"https://api.github.com/users/ComputationalRadiationPhysics/repos","events_url":"https://api.github.com/users/ComputationalRadiationPhysics/events{/privacy}","received_events_url":"https://api.github.com/users/ComputationalRadiationPhysics/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ComputationalRadiationPhysics/alpaka","description":"Abstraction Library for Parallel Kernel Acceleration","fork":false,"url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka","forks_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/forks","keys_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/teams","hooks_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/hooks","issue_events_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/issues/events{/number}","events_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/events","assignees_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/assignees{/user}","branches_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/branches{/branch}","tags_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/tags","blobs_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/git/refs{/sha}","trees_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/statuses/{sha}","languages_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/languages","stargazers_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/stargazers","contributors_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/contributors","subscribers_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/subscribers","subscription_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/subscription","commits_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/commits{/sha}","git_commits_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/git/commits{/sha}","comments_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/comments{/number}","issue_comment_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/issues/comments{/number}","contents_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/contents/{+path}","compare_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/merges","archive_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/downloads","issues_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/issues{/number}","pulls_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/pulls{/number}","milestones_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/milestones{/number}","notifications_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/labels{/name}","releases_url":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/releases{/id}","created_at":"2014-11-05T11:58:12Z","updated_at":"2015-11-06T08:36:13Z","pushed_at":"2015-11-19T16:34:33Z","git_url":"git://github.com/ComputationalRadiationPhysics/alpaka.git","ssh_url":"git@github.com:ComputationalRadiationPhysics/alpaka.git","clone_url":"https://github.com/ComputationalRadiationPhysics/alpaka.git","svn_url":"https://github.com/ComputationalRadiationPhysics/alpaka","homepage":"","size":13374,"stargazers_count":6,"watchers_count":6,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":4,"mirror_url":null,"open_issues_count":45,"forks":4,"open_issues":45,"watchers":6,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/pulls/98"},"html":{"href":"https://github.com/ComputationalRadiationPhysics/alpaka/pull/98"},"issue":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/issues/98"},"comments":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/issues/98/comments"},"review_comments":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/pulls/98/comments"},"review_comment":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/pulls/98/commits"},"statuses":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/alpaka/statuses/e9bc7f11f94defc8612feec5df648f5ec1229d9b"}}}}