{"id":29115,"date":"2024-02-18T13:40:07","date_gmt":"2024-02-18T11:40:07","guid":{"rendered":"https:\/\/hgpu.org\/?p=29115"},"modified":"2024-02-18T13:40:07","modified_gmt":"2024-02-18T11:40:07","slug":"graphtoy-fast-software-simulation-of-applications-for-amds-ai-engines","status":"publish","type":"post","link":"https:\/\/hgpu.org\/?p=29115","title":{"rendered":"Graphtoy: Fast Software Simulation of Applications for AMD&#8217;s AI Engines"},"content":{"rendered":"<p>This work presents Graphtoy, a coroutine-based compute graph simulator built in C++20, which can be embedded into a target application for rapid step-by-step prototyping of graphs targeting AMD&#8217;s AI Engines, as used in Versal FPGAs and Ryzen 7040 CPUs. By using a molecular docking application as a case study, we demonstrate: 1) how compute graphs developed using Graphtoy can be ported to the AI Engines with no modifications to the graph structure, and 2) that C++20 coroutines are well suited for simulating many-core systems with complex inter-core communication schemes. Furthermore, our set of molecular docking graphs ported to Graphtoy achieves an order-of-magnitude increase in simulation speed compared to AMD&#8217;s AI Engine graph simulators. The corresponding code is released as open source.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This work presents Graphtoy, a coroutine-based compute graph simulator built in C++20, which can be embedded into a target application for rapid step-by-step prototyping of graphs targeting AMD&#8217;s AI Engines, as used in Versal FPGAs and Ryzen 7040 CPUs. By using a molecular docking application as a case study, we demonstrate: 1) how compute graphs [&hellip;]<\/p>\n","protected":false},"author":351,"featured_media":0,"comment_status":"open","ping_status":"closed","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":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[11,3],"tags":[7,1782,377,1588,176],"class_list":["post-29115","post","type-post","status-publish","format-standard","hentry","category-computer-science","category-paper","tag-ati","tag-computer-science","tag-fpga","tag-molecular-docking","tag-package"],"views":1179,"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts\/29115","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=29115"}],"version-history":[{"count":0,"href":"https:\/\/hgpu.org\/index.php?rest_route=\/wp\/v2\/posts\/29115\/revisions"}],"wp:attachment":[{"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=29115"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=29115"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hgpu.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=29115"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}