{"created":"2024-04-10T00:50:40.540238+00:00","id":2000661,"links":{},"metadata":{"_buckets":{"deposit":"e2139564-4a9b-47d7-bafe-fbcb907b6a39"},"_deposit":{"created_by":15,"id":"2000661","owner":"15","owners":[15],"pid":{"revision_id":0,"type":"depid","value":"2000661"},"status":"published"},"_oai":{"id":"oai:mie-u.repo.nii.ac.jp:02000661","sets":["366:640:641:1706490217911"]},"author_link":[],"item_7_biblio_info_6":{"attribute_name":"書誌情報","attribute_value_mlt":[{"bibliographicIssueDates":{"bibliographicIssueDate":"2024-03","bibliographicIssueDateType":"Issued"}}]},"item_7_contributor_61":{"attribute_name":"修士論文指導教員","attribute_value_mlt":[{"contributorNames":[{"contributorName":"大野, 和彦","lang":"ja"}]}]},"item_7_description_14":{"attribute_name":"フォーマット","attribute_value_mlt":[{"subitem_description":"application/pdf","subitem_description_type":"Other"}]},"item_7_description_4":{"attribute_name":"抄録","attribute_value_mlt":[{"subitem_description":"グラフィック処理に開発されたプロセッサであるGPU は, 多数のコアが内蔵されているため高並列処理に適しており, 粒子シミュレーションやAI など多くの分野で需要が高い. しかし, メモリアクセスがボトルネックになる場合が多いため, メモリアクセスの最適化がプログラムの性能改善に有効である.\n一般に実プログラムでは, 単なる配列や構造体だけでなく, これらを組み合わせた複雑なデータ構造が使用される. このとき, 同一の内容であってもデータ構造が異なる場合, メモリアクセス効率が変化し, 実行速度にも影響する. 比較的単純なデータ構造である構造体の配列(SoA) や配列の構造体(AoS) については, 相互変換を行ったり, 静的解析により実行効率の高い方を判断したりする研究が行われてきた. しかし, 構造体のメンバに構造体を含むなど複数段にネストした多段ネスト構造に対応できていない.\n本研究では, 従来手法を一般化して多段ネスト構造を含むプログラムの実行効率化を目指している. 多段ネスト構造では,SoA とAoS のように内容は等価だがメモリ上のレイアウトが異なるデータ構造が多数存在するため, 手動ですべて導出するのは困難である. また, データ構造を変更したとき, その構造にアクセスするコードもすべて変更する必要があり, これも手動で行うのは煩雑である. 本稿では多段ネスト構造を含むプログラムを対象として, 等価なプログラム群を自動で生成する手法を提案する. 具体的には, 等価なデータ構造をすべて生成し, さらに各データ構造に対応するようアクセスコードの変更も自動で行う.  \n本手法を実装し, 多段ネスト構造を含むプログラムを対象にして評価を行ったところ, 等価なデータ構造をすべてを生成し, それぞれのアクセスコードも正しく変更できた. また, 生成されたプログラム群をすべて実行しオリジナル版に対する速度向上率を求めたところ, オリジナル版のコードに対して最大で1.42 倍のコードが発見でき, 本手法による等価なプログラムの生成がプログラムの高速化に有効であることが示された.","subitem_description_language":"ja","subitem_description_type":"Abstract"},{"subitem_description":"GPUs, processors developed for graphics processing, are suitable for highly parallel processing due to their many built-in cores and are in high demand in many fields, such as particle simulation and AI. However, since memory access is often a bottleneck, optimization of memory access is effective in improving program performance.\nIn general, real programs use not only simple arrays and structures but also complex data structures that combine them. At this time, even if the content is the same, if the data structure differs, the memory access efficiency changes, which also affects the execution speed. For relatively simple data structures, such as arrays of structures (SoA) and structures of arrays (AoS), research has been conducted to perform mutual conversion or to determine the one with higher execution efficiency through static analysis. However, they have not been able to deal with multi-stage nested structures that nest multiple levels, such as including structures as members of a structure. This study aims to generalize conventional methods to improve the execution efficiency of programs containing multistage nested structures. In a multistage nested structure, there are many data structures such as SoA and AoS that are equivalent in content but have different layouts in memory, and it is difficult to manually derive all of them. When a data structure is changed, the code that accesses the structure must also be changed, which is also complicated to do manually. In this paper, we propose a method for automatically generating equivalent programs for programs containing multi-stage nested structures. Specifically, all equivalent data structures are generated, and the access codes are automatically changed to correspond to each data structure.\nWe implemented the proposed method and evaluated it on a program containing a multi-stage nested structure, and found that it generated all equivalent data structures and correctly changed the access codes foreach of them. The speedup ratio of the generated programs compared to the original version was calculated, and it was found to be at most 1.42 times faster than the original version, indicating that the generation of equivalent programs by this method is effective in speeding up the programs.","subitem_description_language":"en","subitem_description_type":"Abstract"}]},"item_7_description_5":{"attribute_name":"内容記述","attribute_value_mlt":[{"subitem_description":"三重大学大学院工学研究科情報工学専攻 コンピュータアーキテクチャ研究室","subitem_description_type":"Other"},{"subitem_description":"46p","subitem_description_type":"Other"}]},"item_7_publisher_30":{"attribute_name":"出版者","attribute_value_mlt":[{"subitem_publisher":"三重大学"}]},"item_7_text_31":{"attribute_name":"出版者(ヨミ)","attribute_value_mlt":[{"subitem_text_value":"ミエダイガク"}]},"item_7_text_65":{"attribute_name":"資源タイプ(三重大)","attribute_value_mlt":[{"subitem_text_value":"Master's Thesis / 修士論文"}]},"item_7_version_type_15":{"attribute_name":"著者版フラグ","attribute_value_mlt":[{"subitem_version_resource":"http://purl.org/coar/version/c_970fb48d4fbd8a85","subitem_version_type":"VoR"}]},"item_creator":{"attribute_name":"著者","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"伊藤, 亘輝","creatorNameLang":"ja"}]}]},"item_files":{"attribute_name":"ファイル情報","attribute_type":"file","attribute_value_mlt":[{"accessrole":"open_access","date":[{"dateType":"Available","dateValue":"2024-04-10"}],"filename":"2023ME0190.pdf","filesize":[{"value":"955 KB"}],"format":"application/pdf","url":{"url":"https://mie-u.repo.nii.ac.jp/record/2000661/files/2023ME0190.pdf"},"version_id":"8eac98f8-0ba9-4db9-bd3f-00cdede51e62"}]},"item_language":{"attribute_name":"言語","attribute_value_mlt":[{"subitem_language":"jpn"}]},"item_resource_type":{"attribute_name":"資源タイプ","attribute_value_mlt":[{"resourcetype":"thesis","resourceuri":"http://purl.org/coar/resource_type/c_46ec"}]},"item_title":"ネスト構造を含むGPUプログラムのデータ構造最適化","item_titles":{"attribute_name":"タイトル","attribute_value_mlt":[{"subitem_title":"ネスト構造を含むGPUプログラムのデータ構造最適化","subitem_title_language":"ja"}]},"item_type_id":"7","owner":"15","path":["1706490217911"],"pubdate":{"attribute_name":"PubDate","attribute_value":"2024-04-10"},"publish_date":"2024-04-10","publish_status":"0","recid":"2000661","relation_version_is_last":true,"title":["ネスト構造を含むGPUプログラムのデータ構造最適化"],"weko_creator_id":"15","weko_shared_id":-1},"updated":"2024-04-10T00:55:16.763493+00:00"}