Max_Doon氏のサイトへのツッコミなんだけど(w
MediaPipeはちゃんとDualCPUに対応してるよ
っていうかMac OS Xでは計算機がDualであるかそうでないかを
プログラマが意識する必要がない
Dualマシンで効率のいい処理をさせたければ複数のスレッドを作ればいいんだけど
MediaPipeでは場合によっては20近いスレッドが並行処理される設計になってる
入れるパイプの数が多ければスレッドの数も多くなるみたい
1パイプ=1スレッドではないけどね
この辺はThread Viewerを見てるとよくわかる
最低でも2〜3のスレッドが同時に実行されてるから
このスレッド処理をカーネルが複数のCPUに自動的に分散してくれるというわけ
マルチスレッド処理は複数CPUの計算機では処理速度の向上が見込めるけど
シングルCPUの場合は逆に遅くなるし同期にコケるとさらにスピードダウンする
MediaPipeがシングルCPUマシンでスピードを稼げない理由のひとつは
こういった極端な並行処理にあるわけだね
AltiVecに対応してるかどうかはソースを精査してないからわからないけど
アプリ本体では多分対応はしていないでしょう
AltiVec対応にしてもあまり速度向上を見込めるような処理はしてないと思う
ちなみにYC ExpandのAltiVec対応版を作ってみたことがあるんだけど
処理にかかる時間は非対応版の50%増しになった(w
計算速度は確かに速いんだけどそれ以外のオーバーヘッドが大きかったみたい
AltiVec対応もケースバイケースで考えなくちゃならいという傍証だね