Halo Habr! Terakhir kali saya menulis tentang proyek untuk pemeriksaan sinar-X papan sirkuit tercetak . Sekarang kami telah membuat banyak kemajuan, ada prototipe perangkat lunak yang berfungsi plus "poked with a stick" di Elbrus. Saya ingin memberi tahu Anda tentang pengalaman ini.

Intro
Di awal pengerjaan, kami berhasil mendapatkan dana tambahan, syarat utamanya adalah perangkat lunak lintas platform yang lengkap, termasuk dukungan untuk prosesor dalam negeri. Pada saat itu, opsi paling produktif untuk mesin desktop adalah Elbrus 8C (sementara masih ada, 8CB belum muncul). Kami membeli dua stasiun Elbrus 801-RS langsung dari MCST. Sekarang biaya mereka ditunjukkan di situs, setahun yang lalu harganya sedikit lebih mahal.
, โ . NDA, ( ). , โ . . / , .
2020 โ : (, ). Linux. , โ . .
โ , Fly , . , , .
โ USB , . - .
. 4.0, 5.0rc2 โ , ยซยป . VLIW . .
UPD: 6.0. C++20 Linux, โ .
++, 14- , CUDA Vulkan , OpenGL AMD . โ OpenGL 3.1, QT 5.11.
โ - . , ยซยป , . .
, (titovmaxim, Unicore Solutions)
โ . โ . . TLDR: .
โ . Ethernet 1 , GigE Vision. , ( Aravis) , .
, , 1 , . , . . , , . .
OpenGL, .. , . , , , , , . OpenGL, CUDA, .
3000x3000 16 (AMD R5) ~33 . , -. , . , x86 GeForce RTX 2070 Max-Q ~2, .
โ RS232, Web UVC, .
Qt 5.11 QML . . , "-", . , , 5.11 ยซยป .
, C++ 14. C++ QML , c Flow.
Flow
โ , boilerplate . ++, , , , . , , OpenGL, ยซ ยป. ( update) / , ( ), Qt. โ subscribe/unsubscribe , , :) ReactiveX, , .
- ( C++ ), QMetaObject. , QML (, WPF C#), , QML QVector diffโ ( QAbstractItemModel), / .
C++ 17. C++ 14 , , . , . , GCC MSVC. auto . this . , . , ;)
. . , . , . , -fnon-call-exceptions .
, "" Linux x86 . .
OpenCV
, ยซยป - OpenCV 3.2. , โโ โ . . OpenCV 8 (1300 ) Intel core i7 (2600 ) / openCV:
| , | 5.0rc2/ -8/ OpenCV 3.2 | 8.1/ -8/ OpenCV 3.2 | 1.6/ Intel Core i7 7700/ OpenCV 3.2 | Windows 10/ Intel Core i7 9750H/ OpenCV 3.2 | Windows 10/ Intel Core i7 9750H/ OpenCV 4.4 | |
|---|---|---|---|---|---|---|
| 5x5, 3000x3000, 16S | 35 | 334 | 99,7 | 94 | 105,9 | |
| 5x5, 3000x3000, 16U | 244 | 280 | - | 98 | 106,5 | |
| 5x5, 3000x3000, 32F | 32 | 271 | 23,9 | 24 | 11,4 | |
| 5x5, 3000x3000, 16S | 15,3 | 257 | 36,3 | 35 | 5,7 | |
| 5x5, 3000x3000, 16U | 184 | 251 | - | 12,5 | 40 | |
| 5x5, 3000x3000, 32F | 14,5 | 222 | 8,1 | 7,7 | 6,2 |
OpenCV EML (. , VLIW ). EML . , . โ .
โ , 2 (16S) i7, 2 (32F). OpenCV 20 . , 16U .
. (, ) , , . .
โ , - .
, . .