)]}'
{".gitignore":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"2fff460b1dc9b9fa18eaa0b234c796b00acab759","unresolved":false,"context_lines":[{"line_number":1,"context_line":".testrepository"},{"line_number":2,"context_line":"*.egg*"},{"line_number":3,"context_line":"build/"},{"line_number":4,"context_line":"*.pyc"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"3f79a3b5_13b058dd","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":15},"updated":"2018-08-30 07:20:44.000000000","message":"It seems an unrelated change.\n\n.testrepository has been removed since https://review.openstack.org/#/c/581265/","commit_id":"31ecf204080b225a9421873d321e055c0dbca729"}],"doc/source/reference/index.rst":[{"author":{"_account_id":27961,"name":"Konstantinos Samaras-Tsakiris","email":"konstantinos.samaras-tsakiris@cern.ch","username":"kosamara"},"change_message_id":"865d9a78f73188ba9360793f40f64af2ba424453","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CUDA"},{"line_number":6,"context_line":"----"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Applications that need to perform certain operations in parallel or require"},{"line_number":9,"context_line":"advanced graphics processing may use the CUDA framework. The CUDA framework has"},{"line_number":10,"context_line":"two complementary pieces to it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The first part of the framework is a set of graphical processing unit (GPU)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_b5df280b","line":9,"range":{"start_line":8,"start_character":18,"end_line":9,"end_character":55},"updated":"2018-08-29 09:03:18.000000000","message":"This isn\u0027t false, but for (even advanced) graphics it would be too low-level to use the CUDA API. I would rephrase with something like:\n\n\"need to perform massively parallel operations, like processing large arrays, may use the CUDA framework to accelerate their processing on GPUs\"","commit_id":"cd8b789d8fd7533491d83098976470c08d193b86"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9877a92de9c1546d41422b2a23f29fce2ab092d4","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CUDA"},{"line_number":6,"context_line":"----"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Applications that need to perform certain operations in parallel or require"},{"line_number":9,"context_line":"advanced graphics processing may use the CUDA framework. The CUDA framework has"},{"line_number":10,"context_line":"two complementary pieces to it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The first part of the framework is a set of graphical processing unit (GPU)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_50481f2d","line":9,"range":{"start_line":8,"start_character":18,"end_line":9,"end_character":55},"in_reply_to":"3f79a3b5_b5df280b","updated":"2018-08-29 11:55:00.000000000","message":"Done","commit_id":"cd8b789d8fd7533491d83098976470c08d193b86"}],"os_traits/hw/gpu/cuda.py":[{"author":{"_account_id":27961,"name":"Konstantinos Samaras-Tsakiris","email":"konstantinos.samaras-tsakiris@cern.ch","username":"kosamara"},"change_message_id":"865d9a78f73188ba9360793f40f64af2ba424453","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    \u0027COMPUTE_CAPABILITY_V6_2\u0027,"},{"line_number":35,"context_line":"    \u0027COMPUTE_CAPABILITY_V7_0\u0027,"},{"line_number":36,"context_line":"    \u0027COMPUTE_CAPABILITY_V7_1\u0027,"},{"line_number":37,"context_line":"    \u0027COMPUTE_CAPABILITY_V7_2\u0027,"},{"line_number":38,"context_line":"    \u0027SDK_V6_5\u0027,"},{"line_number":39,"context_line":"    \u0027SDK_V7_5\u0027,"},{"line_number":40,"context_line":"    \u0027SDK_V8_0\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_80b42cd3","line":37,"updated":"2018-08-29 09:03:18.000000000","message":"There\u0027s many more old SDK versions in https://developer.nvidia.com/cuda-toolkit-archive\nHowever, I searched and couldn\u0027t find documentation for these old versions or any information on what compute capabilities each supports, and honestly I don\u0027t think there\u0027s any reason to include them, since SDK 6.5 supports the oldest hardware.","commit_id":"cd8b789d8fd7533491d83098976470c08d193b86"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"93c8f003a7fd775f4bbcaf1e60144b88d77643a0","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"_SDK_COMPUTE_CAP_SUPPORT \u003d {"},{"line_number":49,"context_line":"    \u0027HW_GPU_CUDA_SDK_V6_5\u0027: set(["},{"line_number":50,"context_line":"        \u0027HW_GPU_CUDA_COMPUTE_CAPABILITY_V1_0\u0027,"},{"line_number":51,"context_line":"        \u0027HW_GPU_CUDA_COMPUTE_CAPABILITY_V1_1\u0027,"},{"line_number":52,"context_line":"        \u0027HW_GPU_CUDA_COMPUTE_CAPABILITY_V1_2\u0027,"},{"line_number":53,"context_line":"        \u0027HW_GPU_CUDA_COMPUTE_CAPABILITY_V1_3\u0027,"},{"line_number":54,"context_line":"        \u0027HW_GPU_CUDA_COMPUTE_CAPABILITY_V2_0\u0027,"},{"line_number":55,"context_line":"        \u0027HW_GPU_CUDA_COMPUTE_CAPABILITY_V2_1\u0027,"},{"line_number":56,"context_line":"        \u0027HW_GPU_CUDA_COMPUTE_CAPABILITY_V3_0\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_d0156be7","line":53,"range":{"start_line":50,"start_character":0,"end_line":53,"end_character":46},"updated":"2018-09-19 09:14:12.000000000","message":"This is really a nit, but could we just group these together and concatenate them?\n\n    _CAPS_V1 \u003d [\n        \u0027HW_GPU_CUDA_COMPUTE_CAPABILITY_V1_0\u0027,\n        \u0027HW_GPU_CUDA_COMPUTE_CAPABILITY_V1_1\u0027,\n        \u0027HW_GPU_CUDA_COMPUTE_CAPABILITY_V1_2\u0027,\n        \u0027HW_GPU_CUDA_COMPUTE_CAPABILITY_V1_3\u0027,\n    ]\n\n[later]\n\n    _SDK_COMPUTE_CAP_SUPPORT \u003d {\n        \u0027HW_GPU_CUDA_SDK_V6_5\u0027: set(\n            _CAPS_V1 + _CAPS_V2 + _CAPS_V3 + _CAPS_V5)\n\nYou could also rework \u0027TRAITS\u0027 to use this.","commit_id":"9d5c7ea61c41e066f4262d51da6169d84d2350a7"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"fd222ff0fac35ed147713ce9b256969b90353b9a","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"_SDK_COMPUTE_CAP_SUPPORT \u003d {"},{"line_number":49,"context_line":"    \u0027HW_GPU_CUDA_SDK_V6_5\u0027: set(["},{"line_number":50,"context_line":"        \u0027HW_GPU_CUDA_COMPUTE_CAPABILITY_V1_0\u0027,"},{"line_number":51,"context_line":"        \u0027HW_GPU_CUDA_COMPUTE_CAPABILITY_V1_1\u0027,"},{"line_number":52,"context_line":"        \u0027HW_GPU_CUDA_COMPUTE_CAPABILITY_V1_2\u0027,"},{"line_number":53,"context_line":"        \u0027HW_GPU_CUDA_COMPUTE_CAPABILITY_V1_3\u0027,"},{"line_number":54,"context_line":"        \u0027HW_GPU_CUDA_COMPUTE_CAPABILITY_V2_0\u0027,"},{"line_number":55,"context_line":"        \u0027HW_GPU_CUDA_COMPUTE_CAPABILITY_V2_1\u0027,"},{"line_number":56,"context_line":"        \u0027HW_GPU_CUDA_COMPUTE_CAPABILITY_V3_0\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_ef3f6583","line":53,"range":{"start_line":50,"start_character":0,"end_line":53,"end_character":46},"in_reply_to":"3f79a3b5_d0156be7","updated":"2018-09-19 12:40:59.000000000","message":"Good idea, sure I can do that.","commit_id":"9d5c7ea61c41e066f4262d51da6169d84d2350a7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8bb27207df3279e724c0f8cfa46522d2d9e8590c","unresolved":false,"context_lines":[{"line_number":16,"context_line":"TRAITS \u003d ["},{"line_number":17,"context_line":"    # ref: https://en.wikipedia.org/wiki/CUDA"},{"line_number":18,"context_line":"    # ref: https://developer.nvidia.com/cuda-toolkit-archive"},{"line_number":19,"context_line":"    \u0027COMPUTE_CAPABILITY_V1_0\u0027,"},{"line_number":20,"context_line":"    \u0027COMPUTE_CAPABILITY_V1_1\u0027,"},{"line_number":21,"context_line":"    \u0027COMPUTE_CAPABILITY_V1_2\u0027,"},{"line_number":22,"context_line":"    \u0027COMPUTE_CAPABILITY_V1_3\u0027,"},{"line_number":23,"context_line":"    \u0027COMPUTE_CAPABILITY_V2_0\u0027,"},{"line_number":24,"context_line":"    \u0027COMPUTE_CAPABILITY_V2_1\u0027,"},{"line_number":25,"context_line":"    \u0027COMPUTE_CAPABILITY_V3_0\u0027,"},{"line_number":26,"context_line":"    \u0027COMPUTE_CAPABILITY_V3_2\u0027,"},{"line_number":27,"context_line":"    \u0027COMPUTE_CAPABILITY_V3_5\u0027,"},{"line_number":28,"context_line":"    \u0027COMPUTE_CAPABILITY_V3_7\u0027,"},{"line_number":29,"context_line":"    \u0027COMPUTE_CAPABILITY_V5_0\u0027,"},{"line_number":30,"context_line":"    \u0027COMPUTE_CAPABILITY_V5_2\u0027,"},{"line_number":31,"context_line":"    \u0027COMPUTE_CAPABILITY_V5_3\u0027,"},{"line_number":32,"context_line":"    \u0027COMPUTE_CAPABILITY_V6_0\u0027,"},{"line_number":33,"context_line":"    \u0027COMPUTE_CAPABILITY_V6_1\u0027,"},{"line_number":34,"context_line":"    \u0027COMPUTE_CAPABILITY_V6_2\u0027,"},{"line_number":35,"context_line":"    \u0027COMPUTE_CAPABILITY_V7_0\u0027,"},{"line_number":36,"context_line":"    \u0027COMPUTE_CAPABILITY_V7_1\u0027,"},{"line_number":37,"context_line":"    \u0027COMPUTE_CAPABILITY_V7_2\u0027,"},{"line_number":38,"context_line":"    \u0027SDK_V6_5\u0027,"},{"line_number":39,"context_line":"    \u0027SDK_V7_5\u0027,"},{"line_number":40,"context_line":"    \u0027SDK_V8_0\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_9bdaafe6","line":37,"range":{"start_line":19,"start_character":0,"end_line":37,"end_character":30},"updated":"2018-09-19 15:14:21.000000000","message":"nit: these could reference the below values, but this is also good enough as-is","commit_id":"189fa9f027e1cb83e381517c01051f7cd3585f6e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"a46780be463f942e1d4bfdadf96a03d0c6cbdc18","unresolved":false,"context_lines":[{"line_number":16,"context_line":"TRAITS \u003d ["},{"line_number":17,"context_line":"    # ref: https://en.wikipedia.org/wiki/CUDA"},{"line_number":18,"context_line":"    # ref: https://developer.nvidia.com/cuda-toolkit-archive"},{"line_number":19,"context_line":"    \u0027COMPUTE_CAPABILITY_V1_0\u0027,"},{"line_number":20,"context_line":"    \u0027COMPUTE_CAPABILITY_V1_1\u0027,"},{"line_number":21,"context_line":"    \u0027COMPUTE_CAPABILITY_V1_2\u0027,"},{"line_number":22,"context_line":"    \u0027COMPUTE_CAPABILITY_V1_3\u0027,"},{"line_number":23,"context_line":"    \u0027COMPUTE_CAPABILITY_V2_0\u0027,"},{"line_number":24,"context_line":"    \u0027COMPUTE_CAPABILITY_V2_1\u0027,"},{"line_number":25,"context_line":"    \u0027COMPUTE_CAPABILITY_V3_0\u0027,"},{"line_number":26,"context_line":"    \u0027COMPUTE_CAPABILITY_V3_2\u0027,"},{"line_number":27,"context_line":"    \u0027COMPUTE_CAPABILITY_V3_5\u0027,"},{"line_number":28,"context_line":"    \u0027COMPUTE_CAPABILITY_V3_7\u0027,"},{"line_number":29,"context_line":"    \u0027COMPUTE_CAPABILITY_V5_0\u0027,"},{"line_number":30,"context_line":"    \u0027COMPUTE_CAPABILITY_V5_2\u0027,"},{"line_number":31,"context_line":"    \u0027COMPUTE_CAPABILITY_V5_3\u0027,"},{"line_number":32,"context_line":"    \u0027COMPUTE_CAPABILITY_V6_0\u0027,"},{"line_number":33,"context_line":"    \u0027COMPUTE_CAPABILITY_V6_1\u0027,"},{"line_number":34,"context_line":"    \u0027COMPUTE_CAPABILITY_V6_2\u0027,"},{"line_number":35,"context_line":"    \u0027COMPUTE_CAPABILITY_V7_0\u0027,"},{"line_number":36,"context_line":"    \u0027COMPUTE_CAPABILITY_V7_1\u0027,"},{"line_number":37,"context_line":"    \u0027COMPUTE_CAPABILITY_V7_2\u0027,"},{"line_number":38,"context_line":"    \u0027SDK_V6_5\u0027,"},{"line_number":39,"context_line":"    \u0027SDK_V7_5\u0027,"},{"line_number":40,"context_line":"    \u0027SDK_V8_0\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_e6946a38","line":37,"range":{"start_line":19,"start_character":0,"end_line":37,"end_character":30},"in_reply_to":"3f79a3b5_9bdaafe6","updated":"2018-09-19 15:41:59.000000000","message":"I\u0027m not sure what you mean. These are the actual traits indicating the support for a particular compute capability. The _CAPS_Vx things are merely lists of strings that comprise each major version of compute capability. We need th TRAITS collection to be without the HW_GPU_CUDA_ prefix because of the automagic trait name creation.","commit_id":"189fa9f027e1cb83e381517c01051f7cd3585f6e"}],"os_traits/tests/test_cuda.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"610dc21cc8e87918050160f5393e039eaa90af04","unresolved":false,"context_lines":[{"line_number":38,"context_line":"            cuda.COMPUTE_CAPABILITY_V5_3,"},{"line_number":39,"context_line":"        ])"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        actual \u003d cuda.compute_capabilities_supported(cuda.SDK_V6_5)"},{"line_number":42,"context_line":"        self.assertEqual(expected, actual)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_a2c95425","line":41,"updated":"2018-09-21 09:32:32.000000000","message":"I guess we could have tested a few more of those, but granted this seems to cover the main areas of concern.","commit_id":"189fa9f027e1cb83e381517c01051f7cd3585f6e"}]}
