Bonjour Habr! La dernière fois, j'ai écrit sur un projet d' inspection aux rayons X des circuits imprimés . Maintenant que nous avons fait beaucoup de progrès, il y a un prototype fonctionnel du logiciel plus "piqué avec un bâton" dans Elbrus. Je veux vous parler de cette expérience.
Intro
Au début du projet, nous avons réussi à trouver des financements supplémentaires, la condition principale étant le logiciel multiplateforme complet, y compris le support des processeurs nationaux. À cette époque, l'option la plus productive pour les ordinateurs de bureau était Elbrus 8C (alors qu'il le reste, 8CB n'est pas encore apparu). Nous avons acheté deux stations Elbrus 801-RS directement auprès de MCST. Maintenant leur coût est indiqué sur le site, il y a un an, ils étaient un peu plus chers.
, – . 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 .
. (, ) , , . .
– , - .
, . .