Concurrent/Parallelism
多分みなさんはstd::shared_ptrを使ってるとシングルスレッドで使うんだからスレッドアンセーフでいいのにとか思うことが良くありすぎて再実装したくなると思います。ならない方はなって下さい。設計が悪いと言う人はrecursive mutexを今後使わないで下さい…
つらつらとfutureを使ってたらこういうのが欲しいというのがあったのでまとめ。 と言っても2つしか無いけど (static_)future_cast future<T>のcastが欲しいという話。std::(static|dynamic|const)_pointer_castがあるんだからfutureも欲しくないですか?ってい</t>…
もうBoost 1.55.0の時季となったわけで、リリースノートの翻訳作業も進めている。 Boost 1.55.0のリリースノート翻訳を更新 - Faith and Brave - C++で遊ぼう今回はBoost.PredefというBoost.Configみたいな感じのものが来る。 どうせ誰かが解説するし、変更…
また変わりました...Boost.Contextの怒涛の変更 - にゃははー でboost::contextsからboost::ctxに変わったことは記憶に新しいですが、boost::ctxというnamespaceは命名規則に則ってないのではという議論が巻き起こりました。 Boost mailing page: [boost] [c…
Boost.勉強会 #9 つくば - boostjp Boost9 session 並行と並列とスレッド 前半はなんか概念的なことばっかり話したと思う。しかも後半でほとんど関係なくなったし。 とりあえずユーザースレッドってものを導入したかったのだと思う。多分。カーネルスレッド…
Boost.Contextがtrunkに入ってだいぶ経ちましたが、ここのところ非常に大きな変更が入っています。 ※今後も更に変更されるかもしれないので、リリース時にはこのエントリも役に立たないかもしれないです。 これまでの流れ 内部実装とかユーザから直接関係な…
結構前から議論が上がってて見てたけどそういえば書いてなかったので今更ですけど...例えばLinux等POSIX系OSで #include <chrono> #include <thread> int main() { std::this_thread::sleep_for(std::chrono::seconds(1)); } としてもGCCは hoge.cpp: In function ‘int main(</thread></chrono>…
Boost.Contextがtrunk入り - にゃははーでBoost.Contextのビルドオプションが面倒だと言ったが、我らがSteven Watanabeがやってくれた。svnではrev.77196,ftp.tsukubaのgitでは6d06ffddf135088328525bb677c0c0e0687c917dだ。このコミットが何を意味するか端…
タイトルの通りBoost.Contextがsvn trunkに入りました.多分1.50.0でのリリースになるのではないでしょうか. 先日githubから突如としてリポジトリが消え去っていましたが,ようやくtrunkに入るまでになったようで何よりです.svnはrev.76974で,ftp.tsukubaが出…
普段VAIO Z(Intel Atom Z550 + Ubuntu 10.10)で開発してるわけなんだけど、Boost.MMMを作るにあたってBoost.ContextがAtom環境でSEGVってくれる。 具体的にはboost_fcontext_startでboost::contexts::detail::trampolineに行く時にtrampolineの第1引数の値が…
Boost.Context github現在Boost.Contextのmini reviewが実施されてます。これはコルーチンやファイバーを実装するベースとなるコンテキストスイッチを提供します。Boost.CoroutineやBoost.Fiberが頓挫してる中レビューまでこじつけたライブラリです。既存のB…
いま、VDPAUに犯されまくってるのは周知の事実として、Output Surfaceに書き込もうとすると蹴られるんですが、何か情報ないですかね。つまり int width; uchar4 *dev_ptr; kernel<<< ... >>>( dev_ptr, ... ); ... VdpOutputSurface surface; cudaGraphicsRe…
condition variableを相互に使ってとかすごく頭悪い方法やりたくないので、なんかスレッディング周りでいい文献あったら教えてください。
segfaultします。
cudaに日本のコミュニティってないよね - Flast?なにそれ、おいしいの?でGroupsは作りましたが、なんかwelcomeメッセージすら書けないとかいうプギャーな使用に変更されてるっぽいのでGoogleSitesで簡易的にサイト作りました。 CUDAjp Groupsのメンバなら…
だからつくろうと思う。 Google グループなので興味のある人は入ってみてください。初心者・上級者・未経験問いません。とりあえず未経験でもCUDAをやってみたいとかそういうのであれば歓迎です。 また、勉強会を主催したいとかそう言うのもあればいいですね…
を細々とやろうかと。例えばCUDAのサードパティー製ライブラリと言えばtrustが有名だが、これはHostレベルでSTLっぽくできるようにするライブラリである。(と思う というのも私は軽く眺めただけなのでよく知らないで、どっちかって言うとDeviceレベルのコー…
0から1000までの0の数を数える ->無駄に並列化してみる ->TBBで遊んでみたよ(12) ->並列化?ハナアルキしてやんよ! >いまここ 今のご時世CPUで並列化とか...ってことで書いたんだけどレジスタが11も使われてて悲しい・・・ あと1つ減らせたら理論値で実行効…
前は/usr/local/cuda/libをldに渡して-lcudaすればDriver API使えた気がするんだが・・・ nvccはほんと黒魔術で.aが存在しないのにRuntime APIにはリンクできる。んーwindows版だとcuda.libとかcudart.libがあるんだけどな・・・Driver APIがgccから直接リン…
んだけど、完全にアウェー状態ですごく悲しかった。 それしか言えないorz
だれかCUDAのやつを更新してあげてください。と言っていてもダメだと思うけどいつものように他人任せ。思いついたのはローカルに書き足したりしてる。気が向いた人がいたら下のやつを適当に修正して投げてあげてください。 # HG changeset patch # User Kohe…
出ました。でもCC2.1についてはリファレンスに特に書いてなかったんだけど、どうやら出力されるPTX/CUBINが若干変わるらしい。GTX460用に。残念ながらPTXの仕様は一回も読んでなので詳しいところはわからんけど、32CC/SM(CUDA Core par SM)から48CC/SMになっ…
簡単にprogramming guide 3.1を読んでみたので備忘録も兼ねて軽くまとめる。コード量とかあるので基本Runtime APIで。あと、結構落としてる箇所があると思うけど、まぁキニシナイ。
対応するディストリのバージョンが上がりました。前見たときは代わってなかった気がしたんだけどな。 ディストリ CUDA3.0 CUDA3.1 Fedora 10 12 Ubuntu 9.04 9.10 RedHad 5.3(?) 5.4 OpenSUSE 11.1(?) 11.2 RedHadとOpenSUSEはうろ覚えなので変わってなかっ…
はやいですねーCUDA3.1がリリースされました。今回はデバイスコードの中にprintf()を埋め込めたり、Fermiで__device__の関数ポインタを取れたり再帰できたりとゆがみないですねー。 まぁFermi持ってないので悲しいですが。バージョン上げるのは嬉しいんだけ…
#include <stdlib.h> #include <iostream> using namespace std; int main( void ) { float3 h_ptr[ 1024 ][ 1024 ]; float4 *d_ptr = NULL; if ( cudaMalloc( &d_ptr, sizeof( float4 ) * 1024 * 1024 ) != cudaSuccess ) { cout << cudaGetErrorString( cudaGetLastError() ) <</iostream></stdlib.h>…
cudaMalloc3Dを試しに使ってみたらcudaErrorMemoryAllocationが返ってきた。extentが小さい場合はアロケート出来るらしいんだけど、各軸がある程度以上だとどうやら失敗するらしい。 アロケートの上限サイズについてはcudaMalloc3DArrayには各軸[0,2048)(3D)…
そういえばあれだけ騒いでた(?)AviUtlのプラグインについてですが、そろそろ公開するかもしれないという脳内情報を聞いた気がするのでそれについて。 とりあえず未だDL出来るようにはなってないけどそろそろ出来るはず。いろいろめんどいんで http://www.ac-…
並列化をCPUレベルでやろうとすると必ず出てくるthreadとprocess。 明らかに動作のレベルというか粒度の違うこれらはカーネル側のコンテキストスイッチだったり使ってて大量に動かすと重くなると言われている。(記憶の限り)これらの他に最近知ったのがfiber…
昨日マンデルブロ集合に関する記事を書いたが、cuda3.0のドライバにしてからやけに描画まわりが重くなる。どうもIOが多い様で、最悪CPUの50%を持ってかれる。gridderなFlastには痛い。ということで2.3に落としてきます。 どうせ3.0の機能なんか使いこなせな…