ソフトな忘却力(11) RPi4、SHA1、パディング入りのテストパターンとダイジェスト

SHA1_EC
Joseph Halfmoon

先週別件でメモリ内容のハッシュをハードウエアで計算しつづけるDMACを使ってみました。ハッシュ値を求めることにも使えますが、改竄対策?かな。とりあえずのサンプルデータで動作検証したのですが、テスト用の入力パターンの生成が手作業なのは何とも。そこでラズパイ4上でテストパターン生成プログラムを試作してみました。 “ソフトな忘却力(11) RPi4、SHA1、パディング入りのテストパターンとダイジェスト” の続きを読む

ソフトな忘却力(10) RPi4、Pthreadの実験をOpenMPで書き換えてみた

ompGraph
Joseph Halfmoon

前回は、Pthreadを用いた実験プログラムを最適化したものとしないもの、RPi3とRPi4でスレッド数を変えて走らせて比べました。今回はそのときのプログラムを「無理やり」OpenMP化してみました。スレッド数が同じなら、PthreadでもOpenMPでも似たような結果でないかい、と思いましたが、結果は微妙。こだわる人はコダワル? “ソフトな忘却力(10) RPi4、Pthreadの実験をOpenMPで書き換えてみた” の続きを読む

ソフトな忘却力(9) 最適化とthread数、RPi3とRPi4ではまた違うのだ

Graph elapsed time - thread
Joseph Halfmoon

前回は、スレッド数に反比例して処理時間が短くなるサンプルプログラムに、コンパイラの最適化オプション効かせたら、マルチスレッドが効かなくなったのを目にしました。今回は、サンプルに「手を入れて」「スレッド化の効果あり」に無理やり変更の上、実行環境をラズパイ3からラズパイ4へ変えてみます。CPUの馬力が違うとまた違う。一筋縄ではいきまへん。

“ソフトな忘却力(9) 最適化とthread数、RPi3とRPi4ではまた違うのだ” の続きを読む

ソフトな忘却力(8) CMake、最適化オプションの置き場所。thread化の蹉跌?

SpeedGraph
Joseph Halfmoon

前回はPthreadを使って、スレッド数が多くなると処理時間が短くなるようなコードを書いてみました。今回はそれに最適化オプションを加えてみます。ヤバいな、ズルズルと深みにハマって行く感じがします。まずはCMakeの使い方もよく分かってないので、まずCMakeLists.txt内での最適化オプションの置き場所から調べないと。 “ソフトな忘却力(8) CMake、最適化オプションの置き場所。thread化の蹉跌?” の続きを読む

ソフトな忘却力(7) clock()関数はCPUタイムを集計するのだ。経過時間じゃない。

RPi3_pthread
Joseph Halfmoon

時間計測のとき、プロセッサ固有の性能カウンタばかり使用しておったのです。今回はCレベルの関数で「汎用」にやろうとして失敗しました。なれないことはするもんじゃないです。とりあえず pthread の効用を測定する雛形は作成。ラズパイ3上では、それらしいグラフを描けました。他のマシンや pthread以外への展開はまた次回かな。

“ソフトな忘却力(7) clock()関数はCPUタイムを集計するのだ。経過時間じゃない。” の続きを読む

ソフトな忘却力(6) 今回はハード? Jetson Nano復活のACアダプタ

PowerSupplyEC
Joseph Halfmoon

長らく眠っていたJetson Nanoを本日復活させました。眠っていた理由は電源です。Node-REDのサーバ機として活躍しているラズパイ3の電源が不安だったのでJetson Nanoの電源を「召し上げ」ラズパイ3に流用していました。後で買って戻すからといいつつ、ズルズル本日に至ってしまいました。ごめんJetson。

“ソフトな忘却力(6) 今回はハード? Jetson Nano復活のACアダプタ” の続きを読む

ソフトな忘却力(5) CMakeLists.txtにリンク・ライブラリ指定、Boost

boost_filesystem
Joseph Halfmoon

前回は、VS Code拡張 CMake Toolsが生成してくれたCMakeLists.txtを手修正して「お好み」の階層構造でビルドできることを確かめました。今回はインストール済のライブラリを使えるようにしてみます。リンクするライブラリはBoostの中からFilesystemを選んでみました。何も難しいことはないのだけれど、結局ポカはあるのね。

“ソフトな忘却力(5) CMakeLists.txtにリンク・ライブラリ指定、Boost” の続きを読む

ソフトな忘却力(4) 自動生成のCMakeLists.txtを改造して「自分の」にする

vscode_EC
Joseph Halfmoon

前回はVS Code拡張 ”CMake Tools” のクイックスタートを使ってみました。これでとりあえず空のディレクトリを「CMakeできる」ようにしてくれた、と。ここを出発点に自分でCMakeLists.txtを書き換えて「お好み」な感じにしてみます。CMake Tools自体、設定すればいろいろやってくれそうではあるのですが、CMakeのお勉強かねて直接。

“ソフトな忘却力(4) 自動生成のCMakeLists.txtを改造して「自分の」にする” の続きを読む

ソフトな忘却力(3) リモートVS Code、CMake Toolsでcmakeするのだ

VSCodeExts
Joseph Halfmoon

CMakeには随分昔からお世話になっているような気がしますが、よくわかっていないです。何かの折に「ディレクション」のまま走らせるばかりで、自分で積極的に使ったことが無いので身につきません。しかし、最近ラズパイPicoなどやっておりますとCMake必須。この際少し勉強しておこうという気になりましたです。 “ソフトな忘却力(3) リモートVS Code、CMake Toolsでcmakeするのだ” の続きを読む

ソフトな忘却力(2) ラズパイ4でCプログラミング、libconfig

libconfigEC
Joseph Halfmoon

前回はコマンドラインオプションの取得用ライブラリ getopt でした。今回は、ファイルに書き込まれたコンフィギュレーション設定を読み取るための libconfigを使ってみます。最近私はPythonではJSON形式使っていますが、libconfigも分かり易いのではないかと。勿論、読み書き両対応。C/C++にも両対応。

“ソフトな忘却力(2) ラズパイ4でCプログラミング、libconfig” の続きを読む

ソフトな忘却力(1) リモート接続でLinux Cプログラミング getopt

getoptDebug
Joseph Halfmoon

なんだかな~。老人の忘却力とて、使わなければ忘れるし、使わないものはもともと覚えていないし(当然か。)このところマイコンの「クロス」開発ばかりで、ホスト上の「セルフ」がないです。普通にCとかPythonとかのプログラミングも忘れてしまいそうなので、忘却いや記憶の鍛錬を。今回はコマンドライン引数の処理、C言語編。

“ソフトな忘却力(1) リモート接続でLinux Cプログラミング getopt” の続きを読む