« フイードバックとクラスタリング | Main | さて »

2006.11.20

メニーコア

どうせメニーコアの時代は目前なんだし、ネット越えしたクラスタリングなんて面倒なことは考えずに、OpenMPでも使って、1台のコンピュータでの並列処理にしておこう。そっちのほうが費用対効果は断然高いはず

それでも並列化はやっぱり面倒なものだ。
たとえば、以下のようにエフェクタを直列に繋いでいたとしよう
【ディストーション】→【コーラス】→【EQ】

恐らく各エフェクトはバラバラの関数に実装することでしょう。(ま、関数呼び出しオーバーヘッドもバカにならないと思うならSwitch-caseかも知れませんが、、)

で、エフェクタの種類や接続順序はユーザが自由に変更できるようにしたい。
となると矢印の部分は共通のメモリ領域なんかにしておいて、各エフェクタの処理部でそのメモリ領域を読んだり、書いたりする
というのがオーソドックスな処理となるかと思います。

しかし、ここを並列化するとですな、、、
【ディストーション】、【コーラス】、【EQ】、、その他
これらがどんな順序で実行されるか分かったものではない。。。
下手をすると【EQ】、【コーラス】、【ディストーション】の順番で実行されるかも知れない。。
こうなるとそれぞれのエフェクト処理部は、まだ(されていて欲しいのに)更新されていないメモリを入力して、出力領域に書き込みという処理をしてしまう。
この場合は、予期せず2サンプル分だけディレイラインが形成されてしまうことでしょう。

それも1サンプル遅れるのか、2サンプル遅れるのか、遅れないのか、、、、分からないと、、、

この辺をどうやってちゃんと処理するかですよね。。


それはそうと今日は月島でもんじゃを食べた。
その後汐溜でぶらぶら。
雨と風が強くて大変だった。ビニール傘が折れたし。
ズームイン朝グッズを売る店を経営できるなんて、テレビ局業ってボロいよなーー、とか思ってみたり。

|

« フイードバックとクラスタリング | Main | さて »

Comments

Post a comment



(Not displayed with comment.)




« フイードバックとクラスタリング | Main | さて »