gombeのブログ

マイコンの電子工作系PIC32/KiCad/C/C++/3D/

Intel CPUのスレッド並列のスケーラビリティがAMD CPUより悪い件について

なぜかIntelのCPUのスレッド並列でのスケーリングが悪いんですよね。なぜなのかわかる人いたら教えてほしいです。 OpenMPでのスレッド並列 イテレーション一回当たり160[us]程度の処理 それぞれのメモリアクセスはほぼ独立で、コンフリクトもしない。 Intel…

アルゴリズムを可視化したいときの描画エンジンの話

アルゴリズムを解く最中に何かアニメーションしたりして可視化したい時がありますね。 そんなとき、どんな方法で可視化するのがいいのか悩むことがあります。 ざっと手法をいくつか比較してみます。 printfで頑張る ログも追えていいと思います。 ただ、どの…

ゲーミングノートのバッテリーの消費がなぜか激しいときにチェックすること

ゲーミングノート買った人はだれもが経験するだろう一瞬で電池がなくなる現象、なんもしてないはずなのに発熱がやばい現象の原因がやっとわかりました。 ゲーミングノートでは、iGPUではない高性能なGPUを使うと一気に消費電力が増え、電池も消費が激しく、…

科学計算にPythonとC++どっちがいいか、いやjuliaを検討すべきかも

データサイエンス分野 データを扱ううえで、行列計算などのタスクはnumpyを使って処理することが増えてきました。 pythonの特徴である動的な型付けによる気軽なプログラミングは、他のC++などの言語よりもっと簡単にいろいろな作業ができるようになってきま…

SIMD命令を使うと早くなるのか? 重力計算でみるコンパイラ最適化の限界とかの比較

結果から言うと、コンパイラが頑張ってベクトル演算をつかって最適化しても、人力で命令を指定したときのほうが30%くらい速くなった。 以前N体問題でSIMD命令を使った衝突系の重力計算のコードを書いたことがある。その時にSIMD命令を使うと早くなるのかを…

KiCadやBlenderなどのRTX 2070とオンボのIntel UHD 630のパフォーマンス比較

レンダリング時にグラボとオンボードとの違いを見てみたいと思います。 ただ、実際にLinuxでfps計測するツールが見当たらなかったので、感覚でお伝えしたいと思います。 結論から言うと、KiCadは基本オンボードグラフィックで十分だがレイヤーが多い基板で解…

無料の動画編集ソフトの比較(blender,shotcut,ymm4α,aviutl)

最近はyoutubeとかの動画の力が増してきてて動画編集とかもホットになってきています。 動画編集ソフトにはいろいろありますが、無料にフォーカスしてみたいと思います。いろいろ使ってみて少し思ったことなどを書きます。 1. blender Blenderって3dアニメー…

【Arduino工作】ゲーミングノートクーラー作った。8℃冷えてパフォーマンスも1割向上

youtu.beyoutubeに動画上げました。 きっかけ ゲーミングPCってきちんと冷却装置作らないと性能は下がるしキーボードは熱くなるし本体もさわれないくらい熱くなるしバッテリーまで少し暖かくなるので寿命が心配でクーラー作りました。 12cmのファンを2つの…

ゲーミングノートPCでUbuntuの注意点などまとめた 【GCR2070RGF-QC】

ゲーミングノートにGALLERIA GCR2070RGF-QCにUbuntuをインストールしました。インストール自体については他にたくさんの記事があるのでここでは書きませんがUSBから普通にブートしたら起動しましたし、インストール後も問題なくGRUBをロードできました。海外…

ゲーミングノートって評判悪いけど実際どうなのか試してみた。

ゲーミングノートって結構評価悪いんですよね。悪評をまとめると (デスクトップに比べて)パフォーマンスがゴミ 熱でパフォーマンスが低下 死ぬほど熱い(ものによっては100℃まで上がるものも) 重い(2kg~って印象があった) ファンがうるさい バッテリー…

15インチのゲーミングノート買ってみた。軽量(1.87kg)で高性能なオールラウンダーだが、、(GALLERIA GCR2070RGF-QC)

www.dospara.co.jp3Dのレンダリングやプログラミング、機械学習のためにPCを買いました。デスクトップのほうがコスパいいと思うかもしれませんが、持ち運び用にもう一台ノートを買うと考えると逆にコスパ悪いと思います。 構成内容を簡単に紹介します。 i7-9…

QEMUのsoft-mmuで色々なデバイスを実装してみる

QEMUってなに? QEMUとはかんたんに言えばエミュレータです。様々なアーキテクチャに対応していて、中間コードを経由することで高速に動作するみたいです。 QEMUの中でも大きな2つの動作モードがあるので説明します soft-MMU userモード 1はMMUをソフトウェ…

RISC-Vのk210というマイコンでQuakeやDOOM, MMDを動かす

本題は後半です。 次はquake 1, やっぱ中華製マイコンは強いね #k210 #riscv pic.twitter.com/g98PZOZXNu — gombe (@elect_gombe) 2019年3月22日 k210とは AIマイコンで、画像処理特に認識動作が高速なのが特徴です。 人の顔検出がヌルヌルにかつリアルタイ…

私の495→820のTOEIC勉強法まとめ。正しい継続勉強が大事。

自分用のメモなんでアフィリエイトとか一切なく私には一円も入らないので安心して。 1年で495から820まで315スコアアップできました。いや、ここまで上がるとは思ってなかった。みんなの勉強に参考になればとおもいまして。 事情あってTOEICを別垢で受けてた…

esp32でMMDで躍らせる

esp32でMMD? どうやって? esp32はおなじみの方が多いと思いますが、wifi, bluetoothモジュールの中にdual coreのプロセッサが入っています。これをうまく使って、ソフトウェアレンダリングで3Dモデルを躍らせようというプロジェクトです。 www.youtube.com …

IoTに適したMMUに対応したOS、LiteBSD

IoTが広まってきている中、esp32やraspberry piなど様々なプラットフォームでIoTが加速しています。今回はその第3の選択としてLiteBSDを紹介します。 まずは比較から。 LiteBSDはUnix系のOSで、4.4BSDとモダンなシステムです。RaspberryPiではLinuxが載って…

Native-C やること(やるとは言っていない)

またこのネタですが、以前から気がついてたのですが、システム関数をコールするときにブロッキングな関数(例えばgetchar)だと動作を割り込ませることが難しいことが分かっています。 回避としてはノンブロッキングな関数のみとし、その他を静的ライブラリと…

Native-C 開発状況と今後について

Native Cとは 以前少し紹介したCのオンボード開発環境です。KM-BASICのCバージョンですね。最近も開発はしています。時間の確保が難しいのですが、がんばります。 システム関数群の実装 ファイルアクセス等も割り込みを用いたシステムコールを用いることが多…

あけおめことよろ 新規プロジェクトの紹介

あけましておめでとう⛩ 今年もよろしくお願いします。 最近新しいプロジェクトを始めました。MachiKaniaのハードでCコンパイラやテキストエディタなどを乗せたネイティブコンパイラの開発をしています。 このシステムは編集、コンパイルや実行に必要な一通り…

SPIx3でNTSC

PIC32でNTSCシグナルの生成に成功(?)したのでメモ。 こちらがけんけんさんがやってくださったものです。よく書けてるのでこっち見てください。 PIC32MK でNTSCシグナルを生成するとき、普通だったらタイミングに沿ってCPUで出力します。ただ、リソースの問…

マイコンで3D表示(図解)

3D表示に関してここにまとめておきます。 1、座標変換 3DのCGの世界ではカメラを回すのではなく、世界を回します。また、世界を歪めます(透視投影)。しかし線形変換では透視は与えられないので別の方法を使います。 透視はzで割ることで与えられます。しかし…

マイコンで3Dグラフィクス(2)

前の記事 ラインスキャン法による三角ポリゴン描画 うむ。こんにちは。ポリゴン描画にいよいよかかります。こいつがいちばんの難所で速度が出る出ないの境目がここにあります。今回はラインスキャンというCPUで描画するのに適した高速かつ穴のないレンダリン…

マイコンで3Dグラフィクス(1)

マイコンで3D計算というと重すぎるのかと思いましたが以外といけるようなのでそのメモメモ 昔のDSとかPS1とかはFPUが付いていないので固定小数点演算でグラフィクスの処理を行いました。現在ではFPUもあるしハードウェアアクセラレータがありますしこんなこ…

I2Cの使い方 回路編

0、なぜI2C? I2Cは2本の信号線によるシリアル通信の一種です。低速ではあるものの、多数のスレーブに接続できるためセンサーの接続やコントロールICの制御など様々なところで使われます。 I2Cは通信方式がシリアル通信の中でも特殊なため使用する前にその仕…

まだ制限付きのXC32コンパイラ使ってたのか?

XC32コンパイラはMIPS32アーキテクチャのコンパイルツールです。実はこれ、ソースコードがmicrochip社によって公開されてます。これはつまり、「自分でリビルドして制限解除してね」と言っていることになります。 簡単に説明するともともとXC32コンパイラで…

組み込みでのC++の勧め

PICならxc32++,armならarm-g++,など、さまざまなマイコンでc++を利用可能です。例えば32bitCPUならアドレスがリニアに取れることが多いため、オーバーヘッドが少なくてすみます。 そこでc++をつかったプログラミングのススメを書きます。ではなぜC++なのでし…

machiKaniaでマインスイーパー

再帰の展開をしてマインスイーパーを作りました。後の方に載せます。ソースコードはGithubにあげています。うまくカラー表示できてないけど。 以前C言語で作ったものの移植です。マインスイーパー自体は非常に簡潔なコードでかけますが、掘る作業で再帰を用…

MachiKaniatypeZのビデオ再生(完結

あけましておめでとう。(遅い MachiKaniatypeZでカラー動画再生をやったので技術的メモ カラー動画再生をするのですが、出せる色数は16色です。カラーパレットを高速に切り替えないといけません。しかもFPS30だとすると、表示タイミングは1/2となりますが、…

MachiKaniaで日本語表示

[caption id="attachment_4051" align="alignnone" width="800"] 日本語表示テスト[/caption] 日本語表示テストをしました。上の写真のソースコードはこちらから https://github.com/elect-gombe/fontx2machikania FONTX2の説明を書いたことがなかったので載…

MachiKaniaのSDカード読み出しの高速化

WAVの読み出しするときに気がついたんですがSDカードの読み出し遅すぎまあなんというかmicrochip のライブラリを使っているのでしょうがないのかな?とは一瞬思ったのですがオーバーヘッドが大きいのとコードサイズが大きいですね。FatFSだとコードサイズは…