タグ

rdtscに関するyzxのブックマーク (9)

  • ゲームのタイミングとマルチコア プロセッサ

    XNA デベロッパー コネクション (XDC)、ソフトウェア デザイン エンジニア Chuck Walbourn 著 2005 年 12 月 はじめに 最近のコンピューターで電源管理技術の普及が進んでいることにより、高精度の CPU タイミングを取得するための一般的な方法であった RDTSC 命令が、予期したとおりに機能しない場合があります。ここでは、Windows API の QueryPerformanceCounter と QueryPerformanceFrequency を使用した、より正確で確実な解決策を示します。 背景 x86 P5 命令セットの導入以降、多くのゲーム開発者が高精度タイミングを実行するために Read Time Stamp Counter (タイム スタンプ カウンターの読み取り) つまり RDTSC 命令を使用してきました。Windows マルチメディア タ

    ゲームのタイミングとマルチコア プロセッサ
  • AMD Dual-Core Optimizer - NyaRuRuが地球にいたころ

    未だに RDTSD 使ってるゲームって,結構あるんですかね? AMDは,社が運営する英語版Webサイトで,Athlon 64 X2をはじめとする同社製デュアルコアCPU用ユーティリティ「AMD Dual-Core Optimizer」を公開した。同サイトのサポート用ページ「AMD Athlon 64/FX Processor Utilities and Updates」からダウンロード可能になっている。 AMDによると,AMD Dual-Core Optimizerは「RDTSC命令を用いるいくつかのゲームにおいて,パフォーマンスを向上させる」ものだそうだ。 そう言われても多くの読者はさっぱりだと思うので,簡単に説明しておこう。最近のCPU(正確にはx86互換CPU)には,クロックごとに数が増える独自のカウンタ「TSC」(Time Stamp Counter)が用意されている。そして,「

    AMD Dual-Core Optimizer - NyaRuRuが地球にいたころ
  • Game Timing and Multicore Processors - Win32 apps

    With power management technologies becoming more commonplace in today's computers, a commonly-used method to obtain high-resolution CPU timings, the RDTSC instruction, may no longer work as expected. This article suggests a more accurate, reliable solution to obtain high-resolution CPU timings by using the Windows APIs QueryPerformanceCounter and QueryPerformanceFrequency. Background Recommendatio

    Game Timing and Multicore Processors - Win32 apps
    yzx
    yzx 2012/03/18
    QueryPerformanceCounter and QueryPerformanceFrequency
  • Develop/Timer - SyncHack

    Windows の Timer について † 結論:正確な時間計測には QueryPerformanceCounter(), QueryPerformanceFrequency() を使いなさいってこった。 High Performance Timing under Windows (http://www.devsource.com/ ) 元ネタ。 GetTickCount()、SetTimer() + WM_TIMER † Windows はリアルタイム性を強く求めていないので、Timer としての精度は悪い。 WM_TIMER の優先順位はかなり低く、他のプロセスに CPU パワーの優先順位が高く割り当てられている等の場合、100ms 程度の制度しか期待できない。システム全体のパフォーマンスの均一化によるパフォーマンスの向上を考えると一概に悪い仕様とは言えないだろう。 逆に 100ms

  • 条件分岐とcmovとmaxps

    3. 自己紹介 光成滋生(サイボウズ・ラボ) 姑息な最適化が大好き 以前はコーデック系の趣味仕事をやっていた 最近は仕事のために機械学習を勉強中 PRMLあんちょこ公開中(https://github.com/herumi/prml/) blog : http://homepage1.nifty.com/herumi/ mail : herumi@nifty.com twitter : @herumi 3 /24 5. プロファイル プロファイラ 関数組み込みタイプ プログラム自体に組み込まれる それ自体がプログラムに影響を与える 回数は正確 gprofやDevPartner, Vtune タイミング割り込みによる集計タイプ 割り込みでその瞬間のeipを取得し集計 プログラムに影響を(殆ど)与えない 回数は不正確,時間は概ね正確 CodeAnalys

    条件分岐とcmovとmaxps
    yzx
    yzx 2012/03/05
  • CPUのクロックを測定する

    yzx
    yzx 2008/04/05
  • 【インフォシーク】Infoseek : 楽天が運営するポータルサイト

    日頃より楽天のサービスをご利用いただきましてありがとうございます。 サービスをご利用いただいておりますところ大変申し訳ございませんが、現在、緊急メンテナンスを行わせていただいております。 お客様には、緊急のメンテナンスにより、ご迷惑をおかけしており、誠に申し訳ございません。 メンテナンスが終了次第、サービスを復旧いたしますので、 今しばらくお待ちいただけますよう、お願い申し上げます。

    yzx
    yzx 2008/04/05
  • Wataru's memo(2003-10-01)

    ● [Time][Writing] RDTSC 命令 --凄いぞ、64ビットカウンター!-- さて、DJ Bernstein 氏が着目した RDTSC 命令であるが、この暗号のような名前は ReaD Time Stamp Counter に由来している。 余り知られていないが、Pentium 以降の x86 シリーズは、クロックレベルの解像度を持った64ビットカウンターを内部に有している(MSR: Model Specific Registers のひとつ)。この超高精度カウンターは、電源ONでゼロリセットされ、CPU 稼働中は1クロックサイクル毎に1ずつインクリメントされる。RDTSC 命令はカウンターの現在値を EDX/EAX レジスターペアに格納するための命令である。 これだけではあまり実感が湧かないので、実際に計算してみよう。1GHz のクロック周波数をもった CPU の1クロッ

    yzx
    yzx 2008/04/05
  • CPUクロックに基づく相対時刻の計測

    [ C++で開発 ] CPUクロックに基づく相対時刻の計測 CPUのクロックに基づき電源ONからの相対時刻を取得する方法を調査し記述します。最近のCPUは、クロックに従ってカウントアップするレジスタを保持しているので、このレジスタの値を読み出すことでCPUが起動してからのクロック数を取得することができます。例えば1GHzの動作周波数のCPUであれば、分解能は1ns(ナノ秒)となります。非常に高精度な分解能です。 2012-09-22 TSCの種類について追記 RDTSCP命令について追記 VisualC++のコンパイラ組み込み関数__rdtsc/__rdtscpについて追記 Intel x86系CPU RDTSC CPU命令を直接利用 Intel x86系のCPUAMDのAthlon等も含む)では、CPUクロックごとに加算される64bitのタイムスタンプカウンタ(IA32_TIME_ST

  • 1