[PR]血液型生年月日で運命診断:無料お試しも本格鑑定!

このサイトの目的
プロセッサの処理能力は, 数年前と比べるとかなり向上しています. しかし, 数値計算などといったプロセッサの能力を多く必要とする分野では, まだ不満は残ります. だから, できる限りプロセッサの持つポテンシャルを最大限に利用したいと誰もが考えます. またVisualC++ではC言語で書いたプログラムをSIMDに自動で変換してくれないので, 本来プロセッサが持っている能力を最大限に発揮できていないのです.
そこで, このサイトではこういった要求に少しでも応えられるよう研究をしていきたいと考えています.
開発はVisualC++のC言語, インラインアセンブリ, IA32アーキテクチャに基づいて行います. またProcessor packを導入済みとします.
私のプロフィール
ハンドルネーム yosirin-hello


ICQ# 153658528 私のICQの状態
年齢 20歳
経歴 1983年1月20日生まれる
2001年3月 工業高校を卒業する
現在 大学に通っている

メッセージ アセンブリ言語の勉強を始めたばかりなので効率的なコードになっていない所もあると思うので, アドバイスをしてもらえたら嬉しいです.
まだまだスキル不足を感じているので日々勉強をして数値計算の研究をしていきたいと考えています.
現在の研究内容 SSE2による擬似乱数生成の高速化(Mersenne TwisterのSSE2化), ルンゲクッタ法のSSE化, 常微分方程式のベクトル化, 数学関数をSSE化するプログラム(簡易コンパイラ), prefetch命令とStreaming Storeに関する研究
コンテンツ
SSEによる単精度の数値積分の高速化
 SSEで行列の計算の高速化する記事はよくありますが, SSEで数値積分を高速化させようと試みる記事がないので考えてみることにしました. 結果的に, C言語のものと比べて約4倍以上の高速化に成功しました.
重積分におけるモンテカルロ法の有効性
 重積分は次元が高くなればなるほど, 高速なコンピュータでさえ重大な計算時間が必要になります. この問題を解決する1つの方法として, モンテカルロ法というものがあります. この記事では, カマボコ形の物体の体積をモンテカルロ法で求めてみる実験をして, 結果をまとめています.

SSEによる常微分方程式の並列計算(オイラー法)
 SSEで常微分方程式が並列計算することができれば面白いだろうなと思い, 研究することにしました. この方法は, 並列計算させる対象が独立していて, 互いに影響しない単純な場合にのみ有効です. ゲームなどで, 背景のちょっとした飾りのシミュレーションに向いているかもしれません.

SSEによる常微分方程式の並列計算(ルンゲクッタ法) (未完成 : 03/21/2002(木) PM6:00 更新)
 オーラー法は実装は簡単ですが, 計算精度が低いことが問題です. そこで実用で使われているルンゲクッタ法を, オイラー法の時と同じく, 並列計算させてみようとおもいます.

SSEによる単精度の数値積分の高速化(改良版) (未完成 : 04/04/2002(木) PM5:00 更新)
 へるみさんのアドバイスで最終的に数値積分は, C言語でコンパイラの最適化をオンにして比較しても, SSEを使った方が約15倍高速に動作するようになりました. この数値積分の高速化の研究で, 並列計算のコツが少しわかったような気がします.
ちょっとした便利なこと
read-time stamp counter (RDTSC)命令の利用方法
 このRDTSC命令を利用すれば, 関数が消費したクロック数を知ることができます. VTuneなどといったプロファイラを持っていない人にとっては, プログラムのチューニングをする際に, この命令は欠かすことができないとおもいます
CPUのクロックの計測
 プログラムを実行しているマシンのCPUのクロック数を知ることができれば, そのマシンの性能がおおよそ知ることができます. だから, これを応用すればプログラムを実行している環境によって”このプログラムは1GHz以上のCPUで実行されることを推奨します”などといったメッセージを伝えることもできます.
CSVフォーマットによる計測データのファイル出力
 CSVフォーマットを使えば, 計測したデータをある程度構造的にファイル出力することができます. 大量の計測データをファイルにしておきたい場合に便利です. 実際にMicrosoft ExcelでCSVフォーマットで出力したファイルが正しく読み込めるかを試しています.
Visual C++のカスタムビルドでNetwide Assembler(NASM)を使用する方法( 03/31/2002(日) AM1:15 完成)
 Visual C++のカスタムビルドの機能を使えば, NASMとVisual C++を連携さけることができ, アセンブリ言語とC, C++における開発環境をよりよくすることができます. また, NASMは, Linuxのオブジェクトファイルのフォーマットにも対応しているので, 今後Linuxへ移植を考えている方にとってもNASMは強力な味方になってくれるに違いありません.
アラインメントを合わせてメモリーを動的に確保する(08/22/2003)
 動的に確保したメモリーブロックをSSEやSSE2 でパフォーマンスを低下させずに使うためには, ちょっとした工夫が必要です. そこで, 今回はそのテクニックを紹介します

ネットで見つけた優秀な記事・論文の紹介
Quasi-Monte Carlo Rendering with Adaptive Sampling (HTML)
 レイトレーシング法やラジオシティ法で出てくる"大局照明問題"は, 計算負荷の高い重積分を計算する必要があります. そこで, この論文は重積分の計算で威力を発揮するモンテカルロ法で, この問題を解決しようとしています.
Fast Matrix Multiplies using Graphics Hardware (PDF)
 なんとこの論文は, ビデオカードのマルチ・テクスチャリングの機能で, 行列の積を高速に計算しようというものです. この論文ではGeForce3を搭載したビデオカードで実験をしています. 
Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator (PDF)
 Mersenne Twisterは, 今までの擬似乱数ジェネレータとは比べものにならないくらい長い乱数の周期(2^19937-1)をもっていて, しかも 論理演算だけで擬似乱数を生成できるので非常に高速に動作するというのが特徴です.
掲示板です 私が図書館で借りた文献 間違い, 感想などありましたら是非メールください 最終更新日 : 08/22/2003
アラインメントを合わせてメモリーを動的に確保するを追加しました

全ページのリード数が55000hitを超えました(08/22/2003)


Copyright © 2002-2003 yosirin-hello All rights reserved.


[PR]国仲涼子さんの美肌のヒミツ:蜂蜜配合の美肌スキンケア≪ハニーラボ≫