Asayomu Tech
注目★★★★Lobsters

時刻変換を2回の乗算以下へ、依存を断つ高速化

30秒で把握

  • 1時刻変換の依存関係を分解し、1日の範囲で低レイテンシ化
  • 260・3600の除算を固定小数点乗算へ置換し高速化
  • 3V1は可読性、V2はスループット、V3は低レイテンシを選択

要約

この記事は、1日の秒数値を時・分・秒へ変換する処理を、計算の依存関係を断つことで大幅に短縮する手法を論じた。一般的な実装は時・分・秒を順に除算し、約16 CPUサイクルを要する。入力を0〜86399秒に限定すれば、60と3600による除算を固定小数点乗算へ置き換えられる。さらに合計分と時を並列に求め、V1は可読性、V2は高スループット、V3は低レイテンシを重視する構成に分けた。V3は2回の乗算未満のレイテンシを狙える一方、総演算数が増えてスループットでは不利になる。性能はCPUやSIMD実装に依存し、符号付き整数より符号なし整数が有利だと結論づけた。

あなたへの影響

低レベル最適化を行う日本のエンジニアは、対象CPU・SIMD幅・レイテンシかスループットかを定め、V1〜V3を実ベンチマークで比較すべきです。

推奨:固定小数点乗算は入力範囲の保証が前提になるため、境界値テストも実施してください。

詳細を読む → 元記事へ※ 本文は元記事をご確認ください (asayomu は要約のみ提供)

関連する記事

※ 外部記事の権利は原著作者に帰属します。著作権削除要請は copyright@asayomu.jp までご連絡ください(受領確認 24h・実処理 72h 以内)。