{"id":2906,"date":"2011-02-19T14:59:46","date_gmt":"2011-02-19T14:59:46","guid":{"rendered":"http:\/\/hgpu.org\/?p=2906"},"modified":"2011-02-19T14:59:46","modified_gmt":"2011-02-19T14:59:46","slug":"decoupled-accessexecute-metaprogramming-for-gpu-accelerated-systems","status":"publish","type":"post","link":"https:\/\/hgpu.org\/?p=2906","title":{"rendered":"Decoupled Access\/Execute Metaprogramming for GPU-Accelerated Systems"},"content":{"rendered":"<p>We describe the evaluation of several implementations of a simple image processing filter on an NVIDIA GTX 280 card. Our experimental results show that performance depends significantly on low-level details such as data layout and iteration space mapping which complicate code development and maintenance. We propose extending a CUDA or OpenCL like model with decoupled Access\/Execute (&#8220;AEcute&#8221; [1]) metadata, describing its iteration space ordering and partitioning (execute metadata) and its memory access patterns (access metadata). We believe that using AEcute metadata will make software engineering for accelerated systems more disciplined and productive, by separating algorithm representation from lowlevel mapping and tuning.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We describe the evaluation of several implementations of a simple image processing filter on an NVIDIA GTX 280 card. Our experimental results show that performance depends significantly on low-level details such as data layout and iteration space mapping which complicate code development and maintenance. We propose extending a CUDA or OpenCL like model with decoupled [&hellip;]<\/p>\n","protected":false},"author":351,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[89,33,90,3],"tags":[14,841,1786,20,234,1793],"class_list":["post-2906","post","type-post","status-publish","format-standard","hentry","category-nvidia-cuda","category-image-processing","category-opencl","category-paper","tag-cuda","tag-filtering","tag-image-processing","tag-nvidia","tag-nvidia-geforce-gtx-280","tag-opencl"],"views":1945,"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts\/2906","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/users\/351"}],"replies":[{"embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2906"}],"version-history":[{"count":0,"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts\/2906\/revisions"}],"wp:attachment":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2906"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2906"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2906"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}