タグ

algorithmとcpuに関するkgbuのブックマーク (4)

  • 個人用電卓のプログラミング

    今年の3月頃にこのブログに投稿した, 電卓HHCのプログラミングの話題の続きである. この電卓のシミュレータには, スタックが2個あり, その間でデータが受け渡せる. このスタックを, 両方へ延びるテープ, 命令UとNをヘッドの右, 左への移動と思うと, 2スタックモデルはTuring Machineに非常によく似てくる. そこで今回は, Turing Machineをシミュレートしてみた. Turingの1936年の有名な論文の始めの方に, テープに0010110111011110...を書く例がある. つまり, 0の列の間に1を0個, 1個, 2個, 3個, ...と挟むのである. この論文のテープは, 計算結果を書くますと, 作業用の記号を書くますが, 交互に並んでいる. 従って, 上の出力も,テープ全体で見ると, bを空白のますとして, 0b0b1b0b1b1b0b1b1b1b0b

    kgbu
    kgbu 2009/10/06
    2つのスタックを持つCPUのアーキテクチャは、Turing Machineによく似ている。それで、Alan Turingが示したサンプルプログラムを移植してみた、という話。へぇぇ。
  • Hack the Cell 2009 結果発表

    kgbu
    kgbu 2009/04/03
    上位入賞者のレポートが読める。
  • 今後の開発について その1 - 最適化問題に対する超高速&安定計算

    9,10日と今後の開発計画について議論を行った(非常に中身の濃い議論だった)。高速化等の改善のためには、まず現在のプログラムについて徹底した調査が必要になる。どのような問題を入力したときに、どの部分がボトルネックになるのかについても、いろいろな方法で直接的、間接的に知ることができる。今までのアルゴリズム開発というのは、計算量(CPU 上での演算量に近い)と記憶容量に重点を置いてきていたので、CPU とメモリ間のデータの移動量については考慮されることは少なかった。また、データを参照する範囲、局所性のような概念も取り入れる必要がある。 例えば現在、開発を行いながら同時に公開も行っている最短路問題に対するダイクストラ法を実装したプログラムでは、最小ポテンシャルの点を高速に見つけるために、ヒープやバケットを利用している。ヒープは最小点を見つけるのは大変高速だが、データの更新に非常にデータ参照と書き

    今後の開発について その1 - 最適化問題に対する超高速&安定計算
  • matlab で GPGPU - potasiumchの日記

    いわゆる GPGPU (General Purpose GPU) 的なことを matlab (ひいては Python/Java/C/C++)でやるためのラッパーを作っている人たちがいて、近くでデモをやるというので見に行った。 現時点で汎用の CPU よりもビデオカードに載っている GPU の方が計算性能ははるかに高いので、行列の掛け算とか FFT ぐらいまで単純化できる計算はもう GPU にやらせた方が安いし速いんじゃないか? という話。 ラッパーのインターフェースは至ってシンプルで、任意の matlab 行列を GPU 行列にキャストしたらあとは普通に演算がオーバーロードされる。 gA = gsingle(mA); gB = gsingle(mB); C = gA*gB; d = sum(gA(:)); みたいな。これだけで演算が(行列のサイズやビデオカードにもよるけど)最大で数十倍〜百

    kgbu
    kgbu 2008/05/15
    GPUを使って数値演算するパッケージを作ってるベンチャーの話。昔のFPUを思い出すが、行列計算というところがミソなんだろうな。sparseな行列とかには対応できるんだろうか?
  • 1