自己満足日記。
飽きっぽいので期待しないでください。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
RO チャット窓類伏せフィルタ&RO HP/SP/Zeny伏せフィルタ(zip)
面積平均法リサイズ"ジョーク"フィルタ(zip)
上の方は普通に使えると思います。
なんで名前とか伏せられないのとかの質問は禁止です。
あと今ROをプレイしてないので現状に合わないやも。
撤去。上のあればいらないですよね。
下はジョークです。
バカ正直にやると負荷が高いらしいというのを良い事に並列処理の実験場になってます。
大抵の場合他のフィルタを使えば足りてしまうでしょう。
撤去。メモリリーク起こしてましたワロタ。
旧版はDLできないようにしました。
もし旧版を利用してる奇特な方がいたら更新しておいてください。
面積平均法リサイズ"ジョーク"フィルタ(zip)
上の方は普通に使えると思います。
なんで名前とか伏せられないのとかの質問は禁止です。
あと今ROをプレイしてないので現状に合わないやも。
撤去。上のあればいらないですよね。
下はジョークです。
バカ正直にやると負荷が高いらしいというのを良い事に並列処理の実験場になってます。
大抵の場合他のフィルタを使えば足りてしまうでしょう。
撤去。メモリリーク起こしてましたワロタ。
旧版はDLできないようにしました。
もし旧版を利用してる奇特な方がいたら更新しておいてください。
というわけで並列処理の機構をいろいろ試してきました。
一番最初はOpenMP。
これが相当簡単ですよね。
pragmaで挟むだけなので、並列処理したい部分をいちいち関数で書く必要がない、というのがものすごく最初は楽で、並列処理の概念をとっかかりとしてとてもよかったです。
今回問題になったのは、VCでは最新のOpenMPを利用できなくて「とりあえず最新版を使いたい病」に抵触してしまったことと、VCでBuildした場合Redistributable Packageが必要になってしまうということ。
個人的には、簡単に使ってもらうには単一のaufで完結するか、せめてdllの同梱だけで済ませたいので、何かWizardを起動してインストールするという手間が発生するのは避けたいなぁという感じで利用には至りませんでした。
あとVCEE2010じゃ利用しづらいというのも。
次に手を出したのが、Aviutl SDKが用意していた並列処理用の機構。
これもまた簡素で、おそらくOS ThreadをWrapしたものなんだと思いますが、指定したスレッド数分だけ処理を分散させるためのIDと総数を追加で渡されるだけです。
そして、これを利用すると、単一のaufで完結するようBuildすることが可能です。
以前書いたようにOpenMPから書き換えが効くので、今回の公開版はこれを利用しました。
次に利用したのがBoostのthread。
OSスレッドのWrapperだったので、非常に根幹の機能が提供され手はいるものの、forの並列分散処理だとかは自分でこれを利用して書き上げねばならず、結局Aviutl謹製の物にはかないませんでした。
次に「目を付けた」のがMPI。
というのも、ガチ過ぎてとても一プログラムのプラグインに利用するものではないなぁということで見送られました。
最後はIntelのThread Building Blocks。
OpenMPの対抗馬的な。並列処理にぶっこんでもそこまで頭を使わなくて済むコンテナだとかメモリ確保だとか、並列Taskだとかwhileだとかforだとかsortだとか。裏で色々試行錯誤してスマートに進めてくれる系でした。例によって使ったのはParallel_forだけなんですが。
2~3個の個別の処理を並列化したいとかいう場合に使うものではないです。
そういう時はBoostのthread使った方が良いでしょう。
本当はこれの方が早かったんですがtbb.dllが必要になってしまって、それ自体は良いんですが、利用しているのがoss版で、公開に関してGPLのライセンスがどうのという英文をまだ解釈し切れておらず不安なので見送りました。
なんとなくアルファベット使いたい症候群にかかってしまった。
一番最初はOpenMP。
これが相当簡単ですよね。
pragmaで挟むだけなので、並列処理したい部分をいちいち関数で書く必要がない、というのがものすごく最初は楽で、並列処理の概念をとっかかりとしてとてもよかったです。
今回問題になったのは、VCでは最新のOpenMPを利用できなくて「とりあえず最新版を使いたい病」に抵触してしまったことと、VCでBuildした場合Redistributable Packageが必要になってしまうということ。
個人的には、簡単に使ってもらうには単一のaufで完結するか、せめてdllの同梱だけで済ませたいので、何かWizardを起動してインストールするという手間が発生するのは避けたいなぁという感じで利用には至りませんでした。
あとVCEE2010じゃ利用しづらいというのも。
次に手を出したのが、Aviutl SDKが用意していた並列処理用の機構。
これもまた簡素で、おそらくOS ThreadをWrapしたものなんだと思いますが、指定したスレッド数分だけ処理を分散させるためのIDと総数を追加で渡されるだけです。
そして、これを利用すると、単一のaufで完結するようBuildすることが可能です。
以前書いたようにOpenMPから書き換えが効くので、今回の公開版はこれを利用しました。
次に利用したのがBoostのthread。
OSスレッドのWrapperだったので、非常に根幹の機能が提供され手はいるものの、forの並列分散処理だとかは自分でこれを利用して書き上げねばならず、結局Aviutl謹製の物にはかないませんでした。
次に「目を付けた」のがMPI。
というのも、ガチ過ぎてとても一プログラムのプラグインに利用するものではないなぁということで見送られました。
最後はIntelのThread Building Blocks。
OpenMPの対抗馬的な。並列処理にぶっこんでもそこまで頭を使わなくて済むコンテナだとかメモリ確保だとか、並列Taskだとかwhileだとかforだとかsortだとか。裏で色々試行錯誤してスマートに進めてくれる系でした。例によって使ったのはParallel_forだけなんですが。
2~3個の個別の処理を並列化したいとかいう場合に使うものではないです。
そういう時はBoostのthread使った方が良いでしょう。
本当はこれの方が早かったんですがtbb.dllが必要になってしまって、それ自体は良いんですが、利用しているのがoss版で、公開に関してGPLのライセンスがどうのという英文をまだ解釈し切れておらず不安なので見送りました。
なんとなくアルファベット使いたい症候群にかかってしまった。
PR
Comment Form