Qtをソースコードからビルドした

OpenCVをビルドしようとしたら色々あってQtをビルドする方向になった。いろいろ大変だったのでメモを残しておく。 環境 環境はこんな感じ。 Qt 5.10.0 MinGW 7.1.0 (Pleiades All in One 4.7.0 に入ったいたやつ) MSYS 1.0.19 (Pleiades All in One 4.7.0 に…

TX2にChainerを入れてJupyterで遠隔お勉強

JetsonTX2にChainerとJupyterを入れてブラウザで少し動かしてみたので環境構築のメモ。環境はJetPack3.1をインストールした状態。ほかは何も入れていない。 (Web検索するとTK1、TX1の情報が混ざって見つかるのでTX2での状況整理もかねて) CuPy、Chainerの…

std::futureを使う側が先に死ぬ場合の処理

C++

C++11での話。もしかしたら、もっと良い方法があるかもしれないけどstd::futureの使い方について自分用にメモを残しておく。 前提 マルチスレッド動作 片方のスレッドでひたすら仕事を処理する(ワーカースレッド的な) 仕事の内容を選ばないようにstd::functi…

JetPack3.1に上げてみた

JetPack3.1が出たようなので、3.0からバージョンアップしてみた。 JetPack3.0のアンインストール 上書きインストール可能なのか不明なので、いったん旧バージョンをアンインストールしてみる。実機は焼き換えが入るので、ホスト(開発PC)側だけ消せばよさそ…

SystemProfiler使ってみた

JetsonにはSystemProfilerってのが入っていて時系列にどのスレッドがCPU使用率高めだったのか確認できるらしい、ってことで試しに使ってみた。 前提 Jetson側にはデータ採取用のドライバか何かが入っているっぽい 開発PC側から遠隔でJetson側に接続して測定…

Tegra X2のアーキテクチャについて

CUDAとかを呼び出すにあたって、アーキテクチャを知らないと性能でないよね。って話でちょっと調べてみた。ここ*1とかここ*2、後はデータシートを参考にさせてもらってGPU部分の想像図を書いてみた。 Tegra X2のGPU部分想像図 Tegra X2のGPUはGP10Bというコ…

JetPackが結構容量食う件

JetPackのインストールではまってしまった。ここ*1のリリースノートには at least 10GB of disk space is needed for the complete installation of JetPack. って書いてあるので余裕だと思っていたけど、普通にディスク容量が足りなくて焼きこみに失敗した…

気がついたこと

ファイルのダウンロードにまだ時間がかかりそうなので気がついたことをメモっておこうと思う。 電源プラグ JetsonのACアダプタだけど、3極プラグになっている。自宅で使用するためには2極への変換が必要。 USBプラグ 2つあるけど、1つは焼き込みに使うの…

Jetson買った

とある機会をもらってJetson TX1を少し触らせてもらったのだけど、そうしたら自分でも欲しくなってしまった。 そんなわけでJetson TX2を購入した。 開発PCは単なるLinuxPCになっていたZOTAC ZBOX AD-02を使おうと思う。 AMDのAPU E-350が入っているけど今ま…

clang4.0.0使ってみた

普段ビルドに使っていない方のPCにclangを入れようとしたら結構バージョンが上がっていた。 忘れないようにメモっておく。 環境 環境はこんな感じ。 Windows7 Ultimate SP1 64bit MinGW32 5.3.0 Clang 4.0.0 インストール mingwとclangは両方ともインストー…

色々使ってサーバサイドから情報を取り出す

やりたいこと サーバ(Linuxならサーバじゃなくても良いけど)でデーモン的な何かが稼動している サーバ側はC/C++で作っている サーバの状態を外部からGUIで確認したい できるだけ手間をかけずに実現したい 複雑なGUIを作らないならHTMLでできそうな感じだっ…

clangでWindows SDKを使ってみた

Windows7環境でSDKを使ったプログラムを開発しようとしてみた。 使ったバージョンは以下の通り。 Windows SDK v7.1 clang v3.2 (32bit) なお、以前に書いた「clang+boostでWinアプリ開発」とかの記事*1を前提としているので注意されたし。 最終的にはここに…

MinGW製QtDLLをclangから呼び出せなかった話

今回は単なる失敗談。 clang 3.2 Qt 5.5.1 やろうとしたこと Windows PCにQt Creatorをインストールしたので、サンプルアプリをclangでビルドして実行しようとした。QtはMinGWでビルドされていたからABIの不一致がちょっと心配だった。 色々いじって警告を出…

boost::gil+libpngでタイル画像への結合ツール作ってみた

ということで、早速boost::gilを試してみた。 手元のboost v1.55.0 には普通に含まれているようだ。 makefile ここは特筆すべきこと無し。 CC = clang LIB_TOP = C:\maminus\lib BO_TOP = $(LIB_TOP)\boost_1_55_0 INC = \ -I $(BO_TOP) \ -I . \ -I $(LIB_T…

Win環境でlibpngのビルド

ふとpng画像をいじくり倒したくなってみたのだが、いつの間にやらboost::gilというのでlibpngが使えるようになっているらしい。 ただ、libpngは別途インストールが必要ということでやってみた。 zlib libpngはzlibに依存しているらしいので、zlibをダウンロ…

Excelとかで呼び出すWINAPI系DLLをclangで作る

clangで作ったDLLをExcelから呼べなくてはまったので解決法をメモ。 Excelから外部DLLを呼ぶ場合 DLL側関数は「WINAPI」をつける必要がある*1 つまり「MS stdcall」って呼び出し規約になる模様 clangでWINAPIをつけた関数 「ExportedFunction@20」みたいに「…

関数コールグラフもどきを出してみる

前回*1まででmakefileから関数呼び出しをCSVへ抜き出す用意ができたので、関数コールグラフもどきに変換するツールを作ってみた。 利用イメージ [maminus@localhost shm]$ call_grapher.exe net-socket.csv net-core-sock.csv > call-graph.txt のような感じ…

関数呼び出しツールを既存のmakefileで使う

前回*1作ったツールは解析対象のソースファイル名を先に持ってきたりとちょっと動かすのが面倒だった。 実際にはソースっていろんなコンパイルオプションがついていたり、インクルードパス設定が複雑だったりする。 ソースを解析するときにそれらを加味して…

clangで関数呼び出しを抜き出す

今までずっと「C言語のソースコードを解析する技術」をものにしようと色々勉強していたのが、clangでようやくなんとかなりそうな予感がしてきたのでやったことをまとめようと思う。 これまで挫折した方法 今まではチャレンジしては挫折を繰り返してきた。 …

IDXGISwapChain::Present()を基準に動いている件

前々からID3D11DeviceContext::Flush()を呼んでもいまいちコマンドが即座に発射されている気がしなかったり、GPU PerfStudio 2やPIX先生がIDXGISwapChain::Present()を発射しないとログれなかったりと、いやな予感はしてたんだけど実際に計測プログラムをGUI…

3Dコントロールではまった話

C++BuilderXE3 update2での話。他のバージョンは試してない。しばらく見ないうちにBuilderがVCL以外にFireMonkeyってのを積んできていたので「アプリの見た目を簡単にリッチっぽくできるしちょっと遊んでみるか」と思っていじってたんだけど、例によってはま…

DLLの作成と外部DLLの呼び出し

やり残していたclangでのDLL作成と外部DLLの呼び出しをやってみた。 DirectX呼び出し .libは32bit版(x86ディレクトリに入っている方)をリンク時に指定したらビルドできた。 あと、bccと同様に「__in」とか「__in_bcount_opt」とかをdefineで無効化しないとコ…

clang+boostでWinアプリ開発

今までWindowsでgccとかって面倒そうなので敬遠していたけど、自分の周りが全部Win7 64bitになってしまい、TurboC++/C++Builder2006がXP-modeを入れないと使えなくなってしまった。実際にXP-modeを使ってみたらデータのやり取りが超面倒で死にそうになったの…

bcc64への移行

XE3のupdate 1が出てbcc64がついに使えるようになったということで、急いでXE3を購入したんだけど、既存のbcc32でビルドしていたDirectXアプリをbcc64でビルドしようとしたら、どハマリして色々やってようやくビルドできるようになった。ということでその過…

5870性能評価(5)

話としては、昨日*1の続き。そしてついでに性能評価にからめてみる。 すっごい遅い件 シェーダのこの部分 #ifdef GI_IS_B uint3 rgb = uint3(Gid.x, Gid.y, Gid.z*NUM_THREAD_X*NUM_THREAD_Y*NUM_THREAD_Z+GI); #else uint3 rgb = uint3(Gid.x*NUM_THREAD_X*…

float->UNORM変換丸め確認

ということで、先日*1予告していたROPのfloat->UNORM変換が単純な「切り捨て」ではなく、「近い数値へ丸め」となっているかどうかの検証をやってみた。 検証プログラムの概要 こんな感じのプログラムで検証をしたいと思う。 ComputeShaderで3DテクスチャにRG…

GPU ShaderAnalyzerで遊んでみた

ComputeShaderを叩いていたらどこにボトルネックがあるのか気になったのでGPU ShaderAnalyzer v1.59.3208を入れて試しに解析させてみた。 対象ソース 以前記事にしたHSV変換コードをかけてみた。 ここで再掲する。 // hsv.hlsl float3 rgb2hsv(float3 rgb) {…

Windowsの基本っぽいヘッダファイル

小ネタ。というか、自分用のメモ。 bccのv5.82環境(TurboC++)でwindows.hを読まずに最小限のヘッダをincludeするとどれなのか調べてみた。 (PCがしょぼいとコンパイル遅いので…orz) 各ヘッダに入ってそうな定義類 .hの中身を見て確認したらざっとこんなもの…

自作ラッパの一部をさらしてみる

次の記事が長くなりそうなのと、そろそろソースを載せるたびに細かいコード断片を出すのがアレなので共通ライブラリとして作っている自作のDirectX11のラッパコードから今後掲載する可能性がありそうなコードをさらしてみる。 基本的にペラペラの薄いラッパ…

RGBHSV変換を実装してみた

Wikipediaの変換式とかを見ながら実装してみた。*1まずRGB->HSV float3 rgb2hsv(float3 rgb) { float3 hsv; float rgb_max, rgb_min; float diff; float base; float div1; float div2; rgb_max = max(max(rgb.x, rgb.y), rgb.z); rgb_min = min(min(rgb.x, …