◆ マルチ・スレッドとマルチ・プロセス 作成 2024.01.03 更新 2025.03.09
 
  《 Multi Thread & Multi Process、OpenMP, MPI, GPU cuda 》

◆ 他のホームページは Google で検索して下さい、弊社のページはそれぞれのボタン、又はリンク先をクリックして下さい。

 http://www.google.co.jp


 リンクページ

弊社の製品一覧
弊社のソフト関係
弊社のハードとファームウェア関係
マルチ・プロセッサ自動制御装置
自動制御システム開発
生産&治具システム開発
計測自動制御装置
PID 自動御制ボード
腕時計サイズ制御ボード
ZigBee無線計測制御ボード
測画像処理制御ボード
ロボット制御ボード & ソフト
コイン・サイズのマイコンボード
マルチCPU高精度データロガー装置
タッチスクリーン計測ボード
高機能・高性能データロガー
高性能・高機能自動制御ボード
人工知能 AI 自動制御計測ボード
高機能な診断・分析解析計測システム
高機能な診断・分析自動制御システム
スマートフォン無線計測ソフト
WiFi自動制御計測Web遠隔監視System

 他リンクページ

リスクファィブ(RISC-V)関係
量子コンピュータと自動制御
Linux上で組込関係ソフト開発利用
Python組込み関係利用の問題点
人工知能・組み込み制御と自動制御
デジタル制御やDCS制御のページ
Linux&FreeBSDでのSCADA,HMI
SoftPLC & LinuxPLC
制御関係コンピュータのページ
実践的な制御の基礎
自動制御装置用SH-2 ボード
PowerPC関係のページ
MacOS Xのソフト開発環境関係ページ
MacOS X でのH8&SHソフト開発環境
H8S/2238組込み計測装置開発
MacOS XでのVerilogHDL & VHDL開発
制御システムエンジニア・マイコン集い
自動制御システム・自動制御装置
OS関係& Trusted OSのページ
PC & PDA用CPU 関係
PDA (Palm)関係
組み込みMPU 関係のページ
組み込みマルチ・コア関係のページ
おもちゃマイコンのページ
クラスター 関係のページ
CPU Board & マルチCPUボード関係
Linux関係のページ
MacOS X & X serve 関係
OS関係& Trusted OSのページ
マイクロカーネルMach &RT-Mach
BeOS関係のページ
トップページ

 自動制御システム構築や制御ネットワーク構築などで困っておられましたら是非とも弊社にご連絡下さればご相談は無料で受け付けております。

 

E-Mail :こちらをクリックして下さい。

 弊社では、自動制御システムのハードとソフト関係で約32年の経験があります。

 このページについて皆様からのご意見、或いはご要望などがありましたら、是非下記へメールでご連絡下さい。

 

   トップページへ戻り

 近年、進化した多機能・高性能で低価格なマルチ・コアMPUやMCUの種類も年々増えており、計測と制御関係で応用できる低消費電力で低価格なマルチ・コア・ボード( MPU Board & MPU Board ) や疎結合マルチCPUボード、密結合マルチCPUボードを利用でき、マルチ・スレッドやマルチ・プロセス関係を取りあげていきたいと考えております。2024.01.03

 計測制御関係で利用するマルチ・コアMPUやMCUは低価格で低消費電力なコンパクトなサイズのMCU Boardであることが重要な要素であり、某OA-OS用PCと同等なコンパクトなミニサイズの高性能GPU内蔵ボードでは、CPUに冷却ファンを必要とし、その消費電力が500W〜1kWにも達するようなボードは敬遠され、熱暴走によるシステム・ダウンやフリーズが発生すると制御システム誤動作による重大な人身事故や設備損傷等の損害が発生します。2024.01.03

 最近の消費電力効率が悪いCPU-GPUに限らず、低価格な小型ボードでも大きなヒートシンクと冷却ファンが必要な物が増えており、夏期の気温35℃以上(室温30℃)の厳しい環境で動作テストを実施した結果、高性能なタイプがフリーズしました。x86系のディスクトップやノートPCは室温30℃以上の厳しい環境ではフリーズならましでありPCが壊れ廃棄物となった。制御装置を空調設備がある場所で使用する訳ではなく気温50〜60℃の厳しい環境で使用することもあります。2024.01.30


◆ 手軽に利用できるマルチ・コアとマルチ・スレッド 2024.01.03

 アンドロイド(Android/Linux)やリナックス(Linux-OS), MacOS , Windows-OS, FreeBSD, OpenBSD等でのマルチ・スレッドのプログラミングは難易度が高く、シングル・スレッドのソース・コードをC/C++やgcc/g++, Clang/Clang++でコンパイルしてもMulti-Threadの実行コードとなりません。2024.01.03
 単純な計算ループではThread-POSIXに準拠したソース・コードであればMulti-Threadの実行コードとなりますが、全ての複雑な計算ソース・コードが簡単にMulti-Threadの実行コードとすることが困難です。2024.01.03

 近年、低価格なマルチコアMCUボードの種類が多くなり、入手が簡単であり小学生や中学生でもそのプログミングが可能な時代となりました。
 但し、小学生や中学生がMulti-Threadプログラミングを実践している方は極少数でしょう。生成AIが話題となっておりますが、プロクラマーが不要な時代となると言っている大学の教授がおりましたが、オープンAIのチャットGTP(ChatGPT)等の生成AIが優れたソフトなのでしょうか。
 ネット上の信憑性のない情報や作為のある間違った情報を集めて生成する情報の危険性があり疑問と言わざるを得ません。既に生成AIが犯罪の利用されており、当然、法的な規制が必要であるが、その議論と検討が不充分と思われます。2024.01.03


 低価格なマルチ・コアボードとマルチ・コアPCでのMulti-Thread 2024.01.03

 低価格なマルチコアMCUボードの種類が多くなり、入手が簡単であり誰にでもそのスレッド・プログミングが可能ですが、素人に簡単にMulti-Threadコーディングすることが大変であり試行錯誤することになることでしょう。その点、マルチ・プロセスはプロセス数が4以上であれば、4個のコアが全て動作する。マルチ・プロセスはマルチ・タスクと同様な機能であり、1個のコアに複数のタスクをコンテキストで切替えて優先順位で割り付ける古いタスク切替え技術です。リアルタイムRTOS等でマルチ・タスク機能が取り入れられています。 2024.01.03

 単純な計算ループではThread-POSIXに準拠したソース・コードであれば、x86-64 Core, ARMv8-a Core, RISC-V Core等でコンパイルが可能です。そのCソース関数は pthread_create(), pthread_mutex_...(), pthread_join()等を追加すればよいが、残念ながら、全ての計算ループがMulti-Threadの実行コードをコンパイラーが生成しない。生成したとしてもコアが1個でしか動作しない。
 インテルのコアは2コア/4スレッドのSoCもあるが性能上で全く無意味であり性能向上となっていない。つまり、性能的には2コア/4スレッドが4コアと同等です。 2024.01.03


 レイトレーシング、ベンチマーク( MultiThread 最適化) 作成 2024.12.25 更新 2025.03.09

 最適化したMulti-Thread Raytracingのベッチマーク結果を纏めました。スレッド処理のループ計算部分を細密に分割し、マルチコアに振り分けて処理するようにした。下記のようにコアが多いほうがその効果がCortex-A55 1.8GHz オクタ・コアで約7.2倍となった。ARM系でも16コアであれば約 14倍の性能向上(約25GHz/コア相当)となる。
 現状では、最先端のプロセス製造 3nmでコア動作周波数を技術的に10GHz以上に上げることが不可能であり、限界に達している。最先端のプロセス製造 2nm EUV露光装置(1台200〜400億円)を設置し、巨額の5兆円程度公費を投じて半導体工場を建設中であり疑問を感じる。5兆円程度の公費は他の研究開発費に当てるべきと思います。政府与党の議員たちが考えていることを理解できない。 2024.12.25

 計算後の画像 Data-1  計算後の画像Data-2 

   実行時間 : Single -> Multi-Thread スレッド数 32, 1回の処理時間、計算後の画像 Data-1

 CPU & MPU SoC デバイス  解 像 度  シングル
 スレッド
 マルチ
 スレッド
 性能向上  備 考
 iMac i5 2.5~3.3GHz Quad 4thread  320 x 240  31 ms  15 ms  x 2.1  g++ -O3
   Ubuntu 22.04  800 x 600  187ms  80 ms  x 2.3  gcc v11.4
   4000 x 4000  5.51s  1.78s  x 3.1  
 MacBookPro i7 2.7~3.4GHz 4thread  320 x 240  33 ms  16 ms  x 2.0  g++ -O3
   Ubuntu 22.04  800 x 600  191ms  98 ms  x 1.9  gcc v11.4
   4000 x 4000  5.84s  3.1s  x 1.8  
 MacBook Core 2 Duo 2.4GHz  320 x 240  76 ms  56 ms  x 1.3  g++ -O3
   Ubuntu 22.04  800 x 600  492ms  329ms  x 1.4  gcc v11.4
   4000 x 4000  14.6s  7.0s  x 1.8  
 MacBookAir Core 2 Duo 1.6GHz  320 x 240  102ms  60 ms  x 1.7  g++ -O3
   Puppy Linux  800 x 600  620ms  322ms  x 1.9  gcc v9.3
   4000 x 4000  19.4s  10.3s  x 1.8  
 Celeron N3050 1.6~2.1GHz Dual  320 x 240  160ms  96ms  x 1.6  g++ -O3
   Ubunru 22.04  800 x 600  860ms  474ms  x 1.8  gcc v11.4
   4000 x 4000  27.7s  14.7s  x 1.9  
 ChromeBook A72+A53Hexa 2.0GHz  320 x 240  81ms  43ms  x 1.8  g++ -O3
   ChromeOS/Linux  800 x 600  363ms  137ms  x 2.6  gcc v10.2
   4000 x 4000  10.5s  2.95s  x 3.5  
 ChromeBook A72+A53Quad 1.7GHz  320 x 240  69ms  44ms  x 1.6  g++ -O3
   ChromeOS/Linux  800 x 600  341ms  139ms  x 2.4  gcc v12.2
   4000 x 4000  9.93s  3.36s  x 2.9  
 Andoid-10 スマホ 2.6GHz  320 x 240  95ms  30ms  x 3.1  NDK
  A76 + A55 Octa  800 x 600  420ms  98ms  x 4.2  gcc4.9
   4000 x 4000  11.7s  2.3s  x 5.1  -O2
 Andoid-12 タブレット  320 x 240  174ms  36ms  x 4.8  NDK
  1.8GHz A55 Octa  800 x 600  1.0s  165ms  x 6.1  gcc-4.9
    4000 x 4000  30.9s  4.3s  x 7.2 ※-1  -O2
 Andoid-13 スマホ 2.2GHz  320 x 240  53ms  30ms  x 1.8  NDK
  A78 + A55 Octa  800 x 600  285ms  100ms  x 2.8  gcc-4.9
   4000 x 4000  8.9s  2.3s  x 3.8  -O2
 Andoid-7.0 タブレット 2.0GHz  320 x 240  184ms  56ms  x 3.3  NDK
  A53 Quad  800 x 600  1.12s  315ms  x 3.5  gcc-4.9
    4000 x 4000  32.3s  8.6s  x 3.7  -O2
 Andoid-5.0 タブレット 1.3GHz  320 x 240  275ms  160ms  x 1.7  NDK
  A53 Quad  800 x 600  1.68s  610ms  x 2.7  gcc-4.9
    4000 x 4000  50s  12.9s  x 3.9  -O2
 Jestson TK1 A15 1.4GHz  320 x 240  106ms  48ms  x 2.2  gcc-4.8.2
  Cortex-A15 Quad  800 x 600  657ms  179ms  x 3.6  g++
    4000 x 4000  20.6s  5.2s  x 3.9  -O3
 ラズベリーパイ -5 2.4GHz  320 x 240  29 ms  8 ms  x 3.6  gcc-11
  Cortex-A76 Quad ※-2  800 x 600  161 ms  43 ms  x 3.7  g++
    4000 x 4000  5.0s  1.28s  x 3.9  -O3

 ※-1 : コアが多いほうがCortex-A55 1.8GHz オクタ・コアでその性能アップ約7.2倍となった。オクタ・コアのARM系ボードは1万円弱、RISC-V系 Octa Core Board 1万円弱、16コアボードと64コアボードも購入が可能。 2024.12.25
 残念なことにARM系ボードでは低価格な 16コアボードと32コア, 64コアボードが少ない。 2024.12.25

 ※-2 : 価格が1万円弱のRasPi-5は低価格ノートPCの性能よりも格段によい。BCM2712・SoC はプロセス製造で16nmであり、7nmプロセス製造で製造すればもっと高性能となることでしょう。 2025.01.07

 最適化 Thread-1  画像Data-2  320 x 240

 CPU & MPU SoC デバイス  スレッド数  
 解像度
 
 計測 (s)
 性能向上  備 考
 MacBookPro i7 2.7~3.4GHz Ubuntu
 1
 320x240  9.9s    100回
  最適化Thread-1 ループ 100回
 8
 320x240  6.1s  x 1.6  gcc v11.4
  最適化Thread-1 ループ 100回
 16
 320x240  5.4s  x 1.8  g++ -O3
 Celeron N3050 1.6~2.1GHz Dual
 1
 320x240  24.1s    100回
  最適化Thread-1 ループ 100回
 8
 320x240  14.3s  x 1.6  gcc v11.4
           
 MacBookPro i7 2.7GHz Ubuntu
 
       
  画像Data-2 ループ 1回
 1
 320x240  0.61s    g++ -O3
  画像Data-2 ループ 1回
 1
 800x600  59s    g++ -O3
  
 
       
 MacBookPro Core2 2.4GHz Ubuntu
 
       
  画像Data-2 ループ 1回
 1
 320x240  1.35s    g++ -O3

 注釈 : 画像Data-2のスレッド最適化が困難、難易度が高い。 作成 2024.12.25 更新 2025.01.03


◆ SIMD並列処理プログラミング 作成 2025.03.09

 SIMD(NEON & SSE, AVX)並列処理を最適化し大幅な性能アップとなった。SIMD関係のC/C++ライブラリーは独特なコーディングが必要であり、アセンブラ風のようで馴染みにくい。C/C++のアプリ・ソースコードを単純に移植しても動作せず、難易度が高い。 作成 2025.01.17

 フラクタルFractal(Mandelbrot)の計算式は簡単であり、移植し易い。計算処理は32,768色とし出力画像データをモノクロ画像とした。SIMD処理によるカラー画像データ32,768色から 8ビットに変換する処理が簡単でないため次回実施予定。 作成 2025.01.17 更新 2025.03.09

 画像Data-1  画像Data-2  

 CPU & MPU SoC デバイス  スレッド数  
 解像度
 
 計測 (s)
 性能向上  備 考
 iMac i5 2.5~3.3GHz Quad 4thread
 1
4000x4000  25.3s  1回  Ubuntu
  画像Data-2 ループ 1回 SSE2 
 4
4000x4000  1.99s  x 12  gcc v11.4
 MacBookPro i7 2.7~3.4GHz 4thread
 1
4000x4000  27s  1回  Ubuntu
  画像Data-2 ループ 1回 AVX ※-4
 4
4000x4000  2.7s  x 9.9  gcc v11.4
  画像Data-2 ループ 1回 FPU
 1
 320x240  0.99s  1回  g++ -O3
  画像Data-2 ループ 1回 AVX
 4
 320x240  0.25s  x 3.9  g++ -O3
 Celeron N3050 1.6~2.1GHz Dual
 1
4000x4000  56.4s  1回  Ubuntu
  画像Data-2 ループ 1回 SSE
 4
4000x4000  9.8s  x 5.7  gcc v11.4
 MacBookPro Core2 2.4GHz Dual
 1
4000x4000  55.7s  1回  Ubuntu
  画像Data-2 ループ 1回 SSE
 4
4000x4000  7.9s  x 6.9  gcc v11.4
 ChromeBook A72 2.0GHz Hexa
 1
4000x4000  35.2s  1回  ChromeOS
  画像Data-2 ループ 1回 NEON
 6
4000x4000  5.2s  x 6.7  gcc v10.2
 ChromeBook A72 1.7GHz Quad
 1
4000x4000  33.2s  1回  ChromeOS
  画像Data-2 ループ 1回 NEON
 4
4000x4000  4.1s  x 8  gcc v12.2
  A76 + A55 Octa 2.6GHz Android-10
 
      NDK gcc4.9
  画像Data-2 ループ 1回 VFP
 1
4000x4000  21.5s    g++ -O3
  画像Data-2 ループ 1回 NEON
 4
4000x4000  1.91s  x 11  g++ -O3
  画像Data-2 ループ 1回 NEON
 8
4000x4000  1.63s  x 13  g++ -O3
  A78 + A55 Octa 2.2GHz Android-13
 
      NDK gcc4.9
  画像Data-2 ループ 1回 VFP
 1
4000x4000  23.7s    g++ -O3
  画像Data-2 ループ 1回 NEON
 4
4000x4000  2.52s  x 9  g++ -O3
  画像Data-2 ループ 1回 NEON
 8
4000x4000  1.43s  x 16  g++ -O3
  画像Data-2 ループ 1回 FPV
 1
 320x240  0.91s  1回  g++ -O3
  画像Data-2 ループ 1回 NEON
 4
 320x240  0.27s  x 3.3  g++ -O3
  A55 Octa 1.8GHz Android-12
 
      NDK gcc4.9
  画像Data-2 ループ 1回 VFP
 1
4000x4000  64.4s    g++ -O3
  画像Data-2 ループ 1回 NEON
 4
4000x4000  3.4s  x 18  g++ -O3
  画像Data-2 ループ 1回 NEON
 8
4000x4000  1.62s x 39 ※-1  g++ -O3
  画像Data-2 ループ 1回 NEON
 16
4000x4000  0.88s  ※-3  g++ -O3
  A53 Quad 2.0GHz Android-5.0
 
      NDK gcc4.9
  画像Data-2 ループ 1回 VFP
 1
4000x4000  74.3s    g++ -O3
  画像Data-2 ループ 1回 NEON
 4
4000x4000  5.3s  x 14  g++ -O3
  A75 + A55 Quad 2.0GHz Android-11
 
      NDK gcc4.9
  画像Data-2 ループ 1回 VFP
 1
4000x4000  29.2s    g++ -O3
  画像Data-2 ループ 1回 NEON
 4
4000x4000  4.9s  x 5.9  g++ -O3
  画像Data-2 ループ 1回 NEON
 8
4000x4000  2.5s  x 11  g++ -O3
  RasPi-4 A72 Quad 1.5GHz Debian
 
       gcc-8.3
  画像Data-2 ループ 1回 VFP
 1
4000x4000  66s    g++ -O3
  画像Data-2 ループ 1回 NEON
 4
4000x4000  4.8s  x 14  g++ -O3
  RasPi-5 A76 Quad 2.4GHz Ubuntu
 
       gcc-11
  画像Data-2 ループ 1回 VFP
 1
4000x4000  19.5s    g++ -O3
  画像Data-2 ループ 1回 NEON
 4
4000x4000  1.34s x 14※-2  g++ -O3

 注釈 : 計算処理がスレッドにより画像データに異常がないか全て確認済み、16スレッド以上では画像データが崩れる。
     画像データ処理ビット幅は0〜32767としており、0〜255とすれば処理時間が大幅に小さくなる。
 ※-3 : スレッド 16 ではJpeg画像保存データが崩れる。8コアでは無理でした。
 ※-4 : 最新のx86_64系 Core i7ノートPCの性能は旧タイプの Core i7ノートPCよりも 2〜3倍程度。
  ※-1 : A55オクタ・コアのタブレットはA55コア8個であり、クラスターDynamIQ機能とL3キャシュ共有(コア8個)機能による性能向上となっている。高価なNVIDIAのCUDAコアGPUボードの必要性がないとも言える。RISC-V系 Octa Core Board 1万円弱や低価格な16コアボードがあるが、ARM系の低価格な16コアか32コアボードがないので大変残念。10コア以上のx86_64系 Core i5ノートPCは 10 万円以上であり、Core i7やCore i9ノートPCは 20 万円以上購入する気にならない。その消費電力がCPU SoCだけで125W以上のSoCもある。ARM系の32コア・クラスターでは24W程度です。 作成 2025.01.17

 ARM系の4コア 1.6GHz 64bitsボードは2,500円程度であり、この激安ARM系ボード4個をClusterとすれば16コアで約1万円、ボード 8 個約2万円で32コアのクラスターが可能です。
 RasPi-4の 6 Node クラスターもありRasPi-4モジュール(価格8,000円程度)6個の24コア構成ですので6万円弱程度で購入可能です。 作成 2025.01.17
 ARM系のベクトル演算SVE & SVE2(2048bites)を実装した SoC が少ない、大変残念です。激安ARM系 SoC にはSVE & SVE2を実装することはないのでしょう。 作成 2025.01.17

  ※-2 : ラズパイ-5の性能がよい、Quad コアであるがスマホ Octa A76コア2個 + A55コア6個よりもA76コアが4個であるのでよい性能となっている。
 ラピダス社はブロードコム社と提携した。ラズベリーパイのARM系 SoC をBrodcom社が設計しており、2nmプロセス製造のサーバー用ARM系AI-NPU SoCを製造するのでしょう。2nmプロセス製造のラズベリーパイ用低価格なARM系NPU SoCを製品化することはあり得ないでしょう。
 ルネサス社が2027年度頃発売予定のR-Car X5HはCortex-A720AE(SVE2-SIMD) x 32, Cortex-R52 x6の構成で38コアであり、高価な10〜12コアのx86_64系 Core i7 or i9ノートPC等よりも高性能となることでしょう。 作成 2025.01.17


◆ GPU並列処理プログラミング 作成 2025.01.03 更新 2025.01.18

 GPUのCUDA並列処理コーディングに挑戦中であり、NVIDIA Jestson-TK1・GPU・CUDAコア 192個のKitボードを1万円弱で入手できたので、CUDAプグラミングに挑戦したがハマっており、KitボードのeMMC・16MBに Ubuntu-14.04が焼き付けてあったがSDK関係のNVCCコンパイラーがない、Jestson-TK1のSDK関係がサポートを終了していた。 2025.01.03
 aptコマンドでSDK関係のソフトをダウンロードできず、試行錯誤し、gcc/g++関係とNVCCコンパイラーとライブラリー、ヘッダーファィルをインストールできた。しかし、ARMコアが動作したがGPU-CUDAコアが動作せず、ハマっている。NVCCコンパイラーが使えない、他のWebを見てもNVCCコンパイラーでソフトを制作した方が少なく、OpenCV等に対応しており物体認識処理以外には利用価値がないようである。 2024.12.25
 以前、NVIDIA社はスマホやタブレット用の Tegra K1等のコアを生産していたが低価格なCPU-GPUコアの生産を止めて高価なデータセンター・サーバー用のGPUコアに特化しているようです。 2025.01.03

 NVIDIAの互換性のないGPU・CUDA系はやる気にならないので、低価格のノート PC・GPU で並列処理ソフト制作に挑戦中であり、その開発ソフトを調べたが OpenCLやOpenMP, OpenMPI, OpenACC, Elizer, HCC(C++AMP), HIP(CUDA互換 ?), CUDA , Halide, Llama-CPP・・・等があり、C/C++(gcc/g++, clang)からの移行はOpenCLやOpenMP, OpenMPI(低価格なARM系クラスターCluster)が無難なようです。 2025.01.03
 ノート PC・GPU (旧ATI系の Graphics-HD系)で Ubnutu 22.04 上で並列処理ソフトが動作するようになった AMD系のSDKソフトであり、Intel系のSDKソフトの技術情報が少ないので大変である。その点、AMD系のSDKソフトがわかり易い。また、ARMコア Mali系GPUの技術情報が少ないのでOpenCL対応Androidアプリ・ソフトの制作が大変であり難易度が高い、最適化する為にはNEON-SIMDとGPUの計算処理コードをアセンブラで記述する必要もありそうです。 2025.01.03

 残念なことにOpenCLは全てのGPUコアに対応していない、OpenCLに対応したGPUは数年以内の新しいタイプでありOpenCLアプリ・ソフトで制作しても対応していないGPU-SoCではGPUコアで動作せず、OpenMPによりCPUコアで並列処理計算処理するので劇的な性能向上とならない。GPUコアは画像処理用プロセッサであり画像処理中は他のOpenCL計算処理をする余裕がないので、他のWeb情報のような数百倍の性能向上とならない。OpenCLはオープン・ソースではあるが開発段階のようであり、特定の企業のみが利用しており一般の人たちがOpenCLアプリ・ソフトを制作することが困難なようです。 2025.01.07
 GPUコア・チップは万能ではない。その根拠にNVIDIA社はAI用GPU-SoCにTensorコアを追加しており、GPUコアだけではAI計算処理の最適化が困難なのです。AI計算処理以外の利用では、ARM系ボードにはARM + DSP コア・ボードがあるのでこれらのボードを活用したほうが確実に性能向上となります。10万円以上の高価なNVIDIA社GPUコア・ボードの必要性がない。 2025.01.07

 RISC-V系の拡張ベクターRVVコアも興味深い、他のWeb情報によると単一コアよりもOcta-Coreベクトル計算処理RVVが50〜110倍の性能向上となるようであり、既に64コアRISC-V・ボードが製品化されている。その価格は高価であり、低価格な16コアか32コアRISC-V版の発売に期待したい。中国の技術者は優秀であり国内では中国製のようなRISC-V系 SoC やSiP を設計・製造ができない、大変残念なことです。今頃の若い人たちはゲームで遊んでいる、そのようなことだから中国の技術者に追い越されてしまった。また、国の補助金制度にも問題があり大企業優先で中小企業向けの補助金が微々たる金額です。 2025.01.18


 タブレットとスマホ、マルチ・コアボード、PCでのベンチマーク 更新 2024.12.24

 下記に実行したMulti-Threadのベッチマークを纏めました。 作成 2024.01.03 更新 2024.12.24
    実行時間 : Multi-Thread/Single 加算のみ実行時間 for Loop 回数 1000 x 100万回 x 8
    ( )内は100万間当りに換算  掛算割算・加算引き算の実行時間 for Loop 回数 100 x 100万回 x 8

 CPU & MPUデバイス  加算のみ実行時間  掛算割算実行時間  動作周波数  備 考
 iMac i5  1.03s/3.62s  1.47s/4.83s 2.8~3.3GHz  clang -O2
   i5 Quad  (13ms/45ms  (184ms/604ms) <-Multi/Single <-100万回当り
 MacBookAir i7  1.67s/5.15s  3.07s/5.65s 1.8~2.9GHz  gcc -O2
  i7 Dual/4 thread  (21ms/64ms  (384ms/706ms) <-Multi/Single <- 100万回当り
 Andoid-11 スマートフォン  1.27s/4.43s  3.6s/7.33s A76 2.2GHz NDK gcc-4.9 -O2
  A76+A55 Octa  (16ms/55ms  (450ms/916ms) <-Multi/Single <- 100万回当り
 Andoid-8 スマホ  1.28s/5.87s  3.69s/5.81s A76 2.6GHz NDK gcc-4.9 -O2
  A76+A55 Octa  (16ms/73ms  (461ms/726ms) <-Multi/Single <- 100万回当り
 Andoid-13 タブレット  2.12s/7.59s  5.0s/13.37s A55 1.8GHz NDK gcc-4.9 -O2
  A55 Octa  (26ms/95ms  (625ms/1.67s) <-Multi/Single <- 100万回当り
 Andoid-9 タブレット  3.03s/12.1s  5.3s/20.1s A53 2.0GHz NDK gcc-4.9 -O2
  A53 Quad  (38ms/151ms  (663ms/2.51s) <-Multi/Single <- 100万回当り
 Orange Pi Zero 2    ------  3.98s/15.9s A53 1.5GHz gcc-7.5 -O2
  A53 Quad    ------  (497ms/1.98s) <-Multi/Single <- 100万回当り
 Raspberry Pi 5  0.99s/4.01s  1.71s/6.69s A76 2.4GHz clang-16 -O2
  A76 Quad  (12ms/50ms)  (213ms/836ms) <-Multi/Single <- 100万回当り

 注釈 : マルチスレッド処理ではOSの時間処理の誤差が発生し、その誤差が10%程度となる、その原因はThread処理によりOSのTime処理の誤差が発生するようであり、1秒以下の計測では誤差が大きくなるので数分間で計測することがベターである。ARM系はDVFS低消費電力機能により動作周波数が切り替るため、OSの時間処理の誤差発生を小さくすることが困難と思われる。 2024.01.03
 上記の表に誤記あり、訂正。 2024.12.24


◆ Multi-Threadの最適化と効果 作成 2024.01.06

 レイトレーシング(Raytracing)やマンデル・ブロート(Mandel Brot), Fractalの計算処理をマルチ・スレッド処理に挑戦しましたが、人口知能・ニューラルネットワーク処理がマルチ・スレッドによる性能向上とならず、単純な単ループでないため複雑な計算処理をマルチ・スレッドに対応することが困難でした。今後も試す予定です。Raytracer処理とMandel Brotはマルチ・スレッドによる性能向上が可能でした。 2024.01.03

 ループ計算処理のベンチマーク 2024.01.06

 デバイス   ループ処理  単純な計算ループ   複雑な計算ループ  性能向上
 iMac 2.8GHz  for Loop 加算  100x100万回 RUN
 100x100万回 NG
 x 3.3 倍
 iMac 2.8GHz   for Loop
 加算減算・掛算割算
 100x100万回 RUN
 100x100万回 NG
 x 3.6 倍
 iMac 2.8GHz  Whetstone
 4 Thread
  Thread
 Multi /Single -->
 5,208 ->15,625MWIPs
 x 3.0 倍
 MacBookAir i7
 1.8 -> 2.9GHz
 Whetstone
 4 Thread
  Thread
 Multi /Single -->
 5,556 ->15,625MWIPs
 x 2.8 倍
 Android 2.2GHz  for Loop 加算  100x100万回 RUN
 100x100万回 NG
 x 2.0 倍
 Android 2.2GHz   for Loop
 加算減算・掛算割算
 100x100万回 RUN
 100x100万回 NG
 x 3.5 倍
 iMac 2.8GHz  MandelBrot    -----------
 ピクセル 2048x2048
 x 3.5 倍
 iMac 2.8GHz  Raytrace    -----------
 計算処理のみ動作
 x 3.2 倍
 iMac 2.8GHz  AI-NN & DNN, BNN    -----------
 性能アップ NG、挑戦中
 N G
 A53 Quad 1.5GHz  MandelBrot    -----------
 ピクセル 2048x2048
 x 3.8 倍
 i5-1035 boost 3.5GHz  単精度floating Point  110 -> 410GFLOPs
   -----------
 x 3.7 倍
 A76 Octa 2.2GHz  単精度floating Point  35 -> 214 GFLOPs
   -----------
 x 6.1 倍
 A55 Octa 1.8GHz  単精度floating Point  15 -> 111 GFLOPs
   -----------
 x 7.4 倍
 A53 Quad 1.3GHz  単精度floating Point  11 -> 40 GFLOPs
   -----------
 x 3.6 倍
 Atom Z3745 Quad  単精度floating Point  9 -> 35 GFLOPs
   -----------
 x 3.8 倍
 Atom Z8700 Quad  単精度floating Point  15 -> 56 GFLOPs
   -----------
 x 3.7 倍
 Celeron J2900 Quad
 boost 2.4GHz
 単精度floating Point  15 -> 58 GFLOPs
   -----------
 x 3.8 倍

 注釈 : x86-64系の単精度floating Pointデータは参考値、他サイトより引用。
 単精度フローティング・ポイント(FPV)ループ計算処理ではコア数にほぼ比例した性能向上となっている。倍精度フローティング・ポイントもほぼ同等な性能向上であった。コア数が多い方が大幅に性能がアップする。
 人口知能処理(NN & DNN, BNN)、Cifar, MobileNet, TensorFlow, SSE, NEON等に関してはMulti-Thread プログラミングの難易度が高く、性能がアップせす、挑戦中。 2024.01.03
 制御関係では、画像・物体検出を除けば人口知能処理のNN や DNN, BNN, CNN等が必要なく独自のシンプルな学習機能でよく、制御関係の学習機能は約45年前(1977年頃に)に実現されており多くの製品を実用化したメーカーがあります。 2024.01.13


◆ レイトレーシングのマルチスレッド・ベンチマーク 作成 2024.01.06 更新 2024.03.17

  Raytracing の計算処理のみをMulti-Threadでスピード・アップに挑戦し成功した。但し、計算処理中に画面表示をさせるとフリーズしたり、1個のみコア動作となり性能アップに至らなかった。やはり、難易度が高い。
  実行時間 : Multi-Thread/Single ループ 回数 Quad -> 400回、Octa ->800回、ピクセル320x240

 CPU & MPUデバイス  Raytrace 実行時間  1回当りに換算  動作周波数  備 考
 iMac i5 2.8GHz Quad  3.29s/10.39s  8.2ms/26ms 2.8~3.3GHz  clang -O2
  Quad / 4 thread  400 ループ  1回の処理時間 性能 x 3.2 倍  Loop 400回
 MacBookAir i7  4.62s/14.13s  12ms/35ms 1.8~2.9GHz  clang -O2
  i7 Dual / 4 thread  400 ループ  1回の処理時間 性能 x 3.1 倍  Loop 400回
 Andoid-8 スマートフォン  5.2s/17.2s  6.5ms/21ms A76 2.6GHz NDK gcc-4.9 -O2
  A76+A55 Octa  800 ループ  1回の処理時間 性能 x 3.3 倍  Loop 800回
 Andoid-13 スマートフォン  6.4s/19.2s  8ms/24ms A76 2.2GHz NDK gcc-4.9 -O2
  A76+A55 Octa  800 ループ  1回の処理時間 性能 x 3.0 倍  Loop 800回
 Andoid-13 タブレット  12.2s/48.7s  15ms/60ms A55 1.8GHz NDK gcc-4.9 -O2
  A55 Octa  800 ループ  1回の処理時間 性能 x 4.0 倍  Loop 800回
 Andoid-11 タブレット  5.29s/23.7s  6.6ms/29ms A75 2.0GHz NDK gcc-4.9 -O2
  A75 x 1 + A55 x 3  800 ループ  1回の処理時間 性能 x 4.0 倍  Loop 800回
 Raspberry Pi 5 ※-1  2.18s/6.7s  5.5ms/17ms A76 2.4GHz Clang-16 -O2
  A76 x 4  400 ループ  1回の処理時間 性能 x 3.1 倍  Loop 400回

 ※-1 : ラズパイの計算処理性能が以外に良い結果であった。Cortex-A76の計算処理性能がPCのx86-64コアと同等な性能であった。 2024.03.17

 ARM系はコアが8個であるが、期待したスピード・アップとならなかった。コンパイラーバージョンが古く最新のClangであれば最適化されており、もっと良い結果となるのでしょう。 2024.01.06


◆ 互換性のないGPUマルチコアの性能向上と人口知能処理に疑問  作成 2024.01.06

 近年、CPUコアよりも互換性のないGPUコア系が人工知能処理に向いており大幅な性能向上となると言われておりますが、本当に、そうなのでしょうか。疑問と言わざるを得ません。事実、1万個に近いGPUコアであるから、理論上、数千倍の性能向上となるはずであるが、ベンチマーク・テスト結果でもCPUコアよりもGPUコア性能が数倍から十数倍程度である。
 グラフックスの性能はCPUコアよりもGPUコア・性能が数百倍〜数千倍にならず数倍程度の体感速度であり、数千個のGPUコアの性能が理論値であり、消費電力が極端に大きく数十万円〜数百万円の高価なGPUコアボードを利用している。 2024.01.06

 一般的なC/C++コンパイラー等では劇的なGPUコア性能向上とならないため、互換性のないプログラミングの難易度が高い特殊な開発言語を提供したりしており、GPUコア自体がメーカー独自のノウハウであるため、その独自仕様にC/C++コンパイラーの最適化が困難なのでしょう。つまり、限界に達していると思われる。
 現状のGPUコア系はAI用NPUやAPU,TPU等コアを追加しており、GPUコアが人工知能処理に向いていないと認めているようなことです。 2024.01.06

 自動車の自動運転では、技術的に疑問なディープ・ラーニング(機械学習)の膨大な学習データの処理の為に数キロワットの電気ヒータのように電力食いのGPUボードを利用しており、自動運転・自動車の事故も多く、そのような危険な自動運転・自動車が町を走り始めており行政の規制には疑問を感じる。中小企業に対しては厳しい規制であり大手企業に対しては甘い規制と思われます。
 現状のCPUコアやGPUコア・技術が限界に達しており、膨大なデータの計算処理ではない人間の脳のような効率的な人工知能処理の技術が必要なのです。 2024.01.06
 


◆ ニューラル・ネットワーク(NN)人口知能処理に疑問  作成 2024.01.20 更新 2024.01.22

 ニューラル・ネットワーク(ニューロン)と呼ばれる、脳の海馬内・シナプスを模擬したような単純なNN処理が多数公開されており、その単純なNN処理で人口知能処理が可能とされている。
 しかし、海馬の記憶と学習、推論等はNN処理のような単純ではなく、海馬の記憶と学習は神経細胞のシナプス同士結合であると言われており、その神経細胞のシナプス・電気信号伝達はシナプスから放出された伝達物質(カルシウム・イオン)を別のシナプス・受容体で受け取る低速な科学反応です。 2024.01.20 訂正 2024.03.17

 海馬の記憶と学習推論等は、神経細胞・シナプス同士結合が遺伝子によるとされており、肝心な、この部分が解明されていない。脳科学は劇的な進化したとされていますが肝心な遺伝子によるシナプス同士結合メカニズムが解明されていないのが大変残念です。数万個程度のシナプス同士結合機能は遺伝子により複雑な制御となっているよであり単純な模擬的なNN処理で実現することができないのでしょう。 2024.01.22

 シナプス同士の伝達速度は、微弱なアナログ電位差・マイナス〜プラス数十ミリボルト(mV)の複数・パルス電気信号が数十HZ〜数百HZであり、その低速な伝達速度と反応速度が数百ミリ秒(mS)であっても学習と創造、推論、記憶等を実現できまます。しかし、高性能なCPUやGPU等では脳・海馬の学習と創造、推論等を実現できません。ニューロン数1,500億個程度(シナプス数1,000兆個程度)の脳・細胞と海馬シナプス・ネットワークが遥かに優れています。 2024.01.20 訂正 2024.01.22

 約40年前に書店で販売されていたパターン・マッチング処理による手書き文字認識の書籍がありましたが、当時の低速な10MHz〜100MHz程度のPCで(1983年頃に)は実現できませんでした。最近の人口知能も同様な手法であり、高性能なCPUや互換性のないGPU等で複雑な処理が可能となりました。しかし、原理的にはパターン・マッチング処理であり、膨大なデータから膨大な学習データから結果をパターン・マッチング処理結果で導きだすと言う古典的な技術です。高度な海馬の記憶と推論、創造、学習は現状の単純なNN処理では不可能です。 2024.01.20

 国内では、なぜ、限界に達しいるような欧米のコンピュー技術や生成AI技術等に振り回されているのでしょう。残念なことに国産・独自技術が殆どないのです。古い技術のノイマン型コンピュー技術では、米国や台湾、中国、韓国等にも経済競争で勝てない時代となってしまいました。だが、国の会計検査が不要で不透明な基金(闇税金?)から大企業等への巨額な補助金の提供を進めている。こんなことでよいのでしょうか。古い技術の非ノイマン型コンピュー技術でないアナログ方式(ニューロン・チップAnalog Newron Chip)の新コンピュータ・アーキテクチャー技術を開発できないのでしょう。 2024.01.20


◆ 新人口知能処理アーキテクチャー ? 人口ニューロン素子  作成 2024.01.22

 某大学では動物の脳実験で薬物の投与にり歩けなかったマウスが歩けるように回復したとの成果が発表されております。薬物の投与により人間の記憶が格段に良くなれば夢のような世界となることでしょう。しかし、遺伝子によるシナプス同士結合機能との関連が不明であり人間での実験が可能なのか疑問があります。 2024.01.22

 某大学では人口ニューロン素子や人口シナプス素子、新技術素子等の研究が進められており、その成果があまり進展しているとは言えません。古典的な技法のパターン・マッチング処理が正しい方向性かも疑問であり、そのパターン・マッチング処理を半導体素子で人口知能アナログ・コンピュータを実現しても劇的な進化とは言えないと思います。 2024.01.22
 2027年度、2nm以下のプロセス製造で製造した純国産・半導体が単なる大手企業の下請け(買いたたき)となっては、巨額の補助金の費用対効果に疑問があります。 2024.01.22


◆ ARMコア等のTinyML-RunとTimeFor-Loopのベンチマーク 作成 2024.01.03

  ARM系のクロス・コンパイラーgcc/g++はコアの種類が多く、コンパイラーオプション設定やライブラリー関係でハマることが多いのが、RXコアやRISC-Vコアのクロス・コンパイラーgcc/g++は悩むことも少なくプログラミングが楽であり、激安のRISC-Vコアボードが魅力的です。
  Windows環境ではクロス・コンパイラーを構築する気にならないが、MacOS環境では若干ハマることがあり、RISC-VコアボードはLinuxやRTOSの利用が多いのでUbuntu環境がベターなようです。
  RISC-Vコアにはベクター拡張機能(RVV)があり計算処理性能アップが可能なので、そのRVVによるプログラミングに挑戦する予定です。 2024.01.03

  種々のコア・人工知能TinyML-RunTimeベンチマークはこちらのページです。
  レイトレーシング(RayTracing)ベンチマークはこちらのページです。
  For-Loopベンチマークはこちらのページです。
  RISC-Vコア関係はこちらのページです。
  超低消費電力なMPU関係はこちらのページです。 更新 2024.03.18


 自動制御装置や計測装置のハード・ソフト

 自動制御装置のハードとソフトを開発、及び設計製作しました、特殊なシステムの案件がありましたら是非ともご用命下さい。

  詳細はこちらのページです。

 人口知能処理・自動制御関係はこちらのページ

 ロボット制御ボード& Quad Core画像処理制御はこちらのページ

 FA関係マルチ・プロセッサ自動制御ボード・自動制御ソフト関係はこちらのページ

 計測自動制御・計測制御関係はこちらのページ

 腕時計サイズの超小型計測制御 MPU & 画像処理 DSP ボード関係

 コイン・サイズの超小型マイコン & DSP 制御ボード関係はこちらのページ

 ZigBee応用計測自動制御・計測制御関係はこちらのページ

 2.4GHz帯無線データ通信応用・特殊なひずみ量等の計測制御関係のページ

 画像処理 CPU + FPGAボード, Dual & Quad Core画像処理装置関係

 高性能マルチ CPU 高精度データロガー・計測制御関係はこちらのページ

 小型タッチ・パネル計測ボード &タブレット計測装置関係はこちらのページ

 医療関係計測ボード &タブレット計測ソフト関係はこちらのページ

 高性能・高機能タッチパネル・データロガー・計測関係はこちらのページ

 高性能・高機能タッチパネル・自動制御・計測関係はこちらのページ

 高機能な診断・解析分析搭載のタブレット自動制御システム

 高機能な診断・解析分析搭載のタブレット無線計測システム

 スマートフォン(スマホ)無線・制御計測ソフト


◆ コンピュータと制御関係のページ

    制御関係のComputerページ

 弊社の製品 弊社の低価格なボード・ソフト製品一覧

     トップ・ページへ戻り


◆ このページに情報を掲示されたい方はどうぞお気軽にご連絡下さい、無料で掲示致します。又ご希望があれば御社のページへリンク致します。

 このページへはご自由にリンクして下さい、その際Eメールでご感想などをご連絡戴ければと思います。


 AI 用語の説明 : 機械学習、深層学習、デープラーニング(DeepLearning)、テンソル(Tensor)TensrFlow, TensorRT,
     Nerral Neteork Console(CNN), MobileNet, CIFAR, NNL, C-RunTime, DNN, BNN, NNPack, DarkNet,
     SSD, TVM, ONNC, LSTM, RNN, Caffe, Chainer, DBT, ResNet, MLP, nGraph, Keras, MXNET, CNTX,
     QNN, PyTorch, PyNum, NumPy, TinyYolo, CMSIS-NN, PolyPhny, MyHDL
 並列プログラミング : OpenMP, OpenMPI, OpenACC, OpenHTC, OpenCL, OPenGL, Vulkan, Halide, Cluster, GPU, NVIDIA, AMD Ryzen, INTEL, Qualcom, ATI, Hexagon DSP, Adreno, MTT-GPU, Mali 400, Mali T720 T860 T880 T864, Mali G31, Mali G52, Mali, 57, Mali G72, Mali G610, Tegra K1, Jestson TX1 TX2, Jestson Nano Orin-nano, CUDA Grid Block __global__ __Device__ nvcc ccbin g++ -lcuda nvcc++, PICe Bus, QPU ALU Video Coe IV III VI, 16 lane SIMD, -lOpenCL, mpicc mpirun mpic++, SDK

 脳科学の用語説明 :  脳科学、大脳、小脳、脳細胞、軸索、樹状突起、シナプス、海馬、大脳基底核、神経細胞、脳神経、自律神経、前頭葉、側頭葉、脊髄、神経ネットワーク、電気信号(活動電位)、神経伝達物質、DNA、イオン、ニューロン、スパイク発射、インパルス、電位変化、ノルアドレナリン、シナプス電位数十ミリボルト(mV) 
 用語の説明 : マイコン(マイクロ・コンピユータ)、MCU(マイクロ・コントローラユニット)、
 MCUの種類は ATmega, PIC32, ESP8266, ESP32, STM32, Xmos, PowerPC, RL78,SH2A, SH4A, H8SX,
       RX110, RX140, RX220, RX231, RX26T, RX631, RX62N, RX64M, RX65N, RX66T,RX71M,RX72M, RX72N, RX72T, RZ/A1H, RZ/Five, RZ/V2H
       Arduino, mbed, RTOS, FreeBSD, NetBSD, OpenBSD


 本ページの複写禁止、他サイト・ページへの転写を禁止します。 作成 2024.01.03