[論文レビュー] The Influence of Malloc Placement on TSX Hardware Transactional Memory
この論文は、IntelのTSXハードウェアトランザクショナルメモリにおいて、動的メモリアロケータの配置ポリシーが、L1キャッシュインデックスの競合によりアボートレートに顕著な影響を及ぼすことを示している。インデックスに配慮したアロケータ(CIA-Malloc)を用いることで、競合ミスとアボートを低減し、トランザクショナルロックエリジョン(TLE)ワークロードにおける並行性とスループットを向上させている。特に、病理的とされるメモリアクセスパターン下で顕著な改善効果を示している。
The hardware transactional memory (HTM) implementation in Intel's i7-4770 "Haswell" processor tracks the transactional read-set in the L1 (level-1), L2 (level-2) and L3 (level-3) caches and the write-set in the L1 cache. Displacement or eviction of read-set entries from the cache hierarchy or write-set entries from the L1 results in abort. We show that the placement policies of dynamic storage allocators -- such as those found in common "malloc" implementations -- can influence the L1 conflict miss rate in the L1. Conflict misses -- sometimes called mapping misses -- arise because of less than ideal associativity and represent imbalanced distribution of active memory blocks over the set of available L1 indices. Under transactional execution conflict misses may manifest as aborts, representing wasted or futile effort instead of a simple stall as would occur in normal execution mode. Furthermore, when HTM is used for transactional lock elision (TLE), persistent aborts arising from conflict misses can force the offending thread through the so-called "slow path". The slow path is undesirable as the thread must acquire the lock and run the critical section in normal execution mode, precluding the concurrent execution of threads in the "fast path" that monitor that same lock and run their critical sections in transactional mode. For a given lock, multiple threads can concurrently use the transactional fast path, but at most one thread can use the non-transactional slow path at any given time. Threads in the slow path preclude safe concurrent fast path execution. Aborts rising from placement policies and L1 index imbalance can thus result in loss of concurrency and reduced aggregate throughput.
研究の動機と目的
- IntelのTSXにおけるハードウェアトランザクショナルメモリ(HTM)のアボートレートに、動的メモリアロケータの配置がどのように影響するかを調査すること。
- 非一様なメモリアクセスパターンによって引き起こされるL1キャッシュインデックスの競合が、キャッシュ容量を超えていなくてもTSXでアボートを引き起こすことを特定すること。
- インデックスに配慮したメモリアロケータが、HTMワークロードにおける競合ミスとアボートを低減できるかどうかを評価すること。
- このようなアロケータが、無駄なトランザクションアボートを最小限に抑えることで、トランザクショナルロックエリジョン(TLE)におけるパフォーマンスと並行性を向上させることを実証すること。
- HTMシステムにおけるキャッシュインデックスの不均衡に起因するパフォーマンス劣化を低コストで緩和する実用的で、容易に適用可能な戦略(CIA-Malloc)を提供すること。
提案手法
- i7-4770のL1キャッシュジオメトリを考慮した、修正版mallocアロケータ(CIA-Malloc)を実装した。具体的には、64セット、8ウェイセットアソシエイティブ構造、4KBページアライメントを特徴とする。
- アドレスハッシュと割り当てサイズのランダム化を用いて、メモリブロックをL1キャッシュセットに均等に分散させ、インデックス競合を低減した。
- トランザクション成功確率を測定するために、単一スレッドのリングトラバーサルとマルチスレッドのAVLツリーワークロードを用いたマイクロベンチマークを実施した。
- トランザクショナルロックエリジョン(TLE)と従来のトランザクショナル同期(TTS)の両状態で、GLIBC mallocとCIA-Mallocを比較した。
- アボートレートとスループットを、さまざまな割り当てサイズで測定し、インデックス競合がパフォーマンス劣化を引き起こす病理的ケースを特定した。
- 書き込みセットのエヴィクトを低減するため、トランザクション再順序化技術(例:書き込みをトランザクションの末尾に移動)を適用し、i7-4770の非対称な書き込みセット追跡機構における有効性を検証した。
実験結果
リサーチクエスチョン
- RQ1mallocの配置は、IntelのTSXハードウェアトランザクショナルメモリにおけるアボートレートにどの程度影響を及けるか?
- RQ2アロケータの配置に起因するL1キャッシュインデックス競合は、HTMにおいてどのようにトランザクションアボートとして現れるか?
- RQ3インデックスに配慮したアロケータは、HTMワークロードにおける競合ミスとトランザクション成功確率を改善できるか?
- RQ4病理的とされる割り当てサイズは、TLEの並行性とスループットにどのようなパフォーマンス影響を及えるか?
- RQ5トランザクション再順序化(例:書き込みをトランザクションの末尾に移動)は、書き込みセットのエヴィクトに起因するアボートをどのように緩和できるか?
主な発見
- 病理的とされる割り当てサイズ(例:約2000バイト)では、GLIBC mallocがTLE下で顕著なパフォーマンス劣化を示し、4スレッドのスループットがシリアル化されたTTSを下回るほど高いアボートレートを示した。
- CIA-Mallocアロケータは、L1キャッシュインデックス競合に起因するアボートを低減し、リングトラバーサルおよびAVLツリーベンチマークの両方でスループットを向上させた。
- 2000バイトの割り当てでは、CIA-Mallocを用いたTTSTLEが、GLIBC mallocを用いたTTSTLEを上回るパフォーマンスを示し、アロケータ選択がTLEパフォーマンスに直接的な影響を及えることを実証した。
- 本研究では、読み取り専用トランザクションが最大7.5MBのキャッシュフットプリントで成功するのを観測したが、8MB(L3キャッシュサイズ)を超える成功したトランザクションは一切観測されず、L3キャッシュサイズがハード制限であることが示された。
- キャッシュ容量を超えていなくても、インデックスの不均衡に起因する競合ミスがアボートを引き起こし、TLEではスレッドがスローパスに遷移させられ、並行性が低下した。
- インデックスに配慮したアロケータは、ハードウェア変更を要せず、低コストかつ効果的な病理的アボート緩和策を提供し、既存システムへの組み込みに最小限のオーバーヘッドで実装可能である。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。