+38/050/370-3627
+38/067/502-3306
+38/044/257-2444
Новости

CacheQ Compiler Collection обещает совершить революцию в мире разработки ПО

CacheQ Compiler Collection обещает совершить революцию в мире разработки ПО

CacheQ Compiler Collection позволит компилировать проекты так, чтобы они выполнялись намного быстрее за счёт распараллеливания процесса. По словам создателей, нет необходимости массового ручного переписывания кода и использования особых библиотеках или сложных API для параллелизации.

Это даёт разработчикам возможность заниматься бизнес-логикой приложения, не задумываясь о проблемах распараллеливания. Более того, количество потоков можно регулировать на стадии исполнения, а часть нагрузки при желании перенести на FPGA или SoC. При этом поддерживается сборка для архитектур x86-64, ARM (Apple M1) и RISC-V.

На процессоре x86 с 12 ядрами прирост быстродействия в работе приложения составляет почти 500% по сравнению с однопоточным выполнением и сборкой с помощью GCC. На процессоре M1 с восемью ядрами Arm — на 400% быстрее традиционного «однопотока».

Секрет заключается в тщательной работе с циклами и особенно вложенными циклами. Исходный код анализируется и преобразуется фирменной системой qthreads в код на C++, который можно собрать любым компилятором, или в Verilog для последующей сборки для FPGA. Впрочем, CacheQ предлагает полный набор инструментов для разработки, отладки, профилирования, симуляция и оптимизации кода и работы с памятью.

The CacheQ heterogeneous development platform enables SW developers to easily develop, deploy and orchestrate applications across multiple cores and heterogeneous distributed compute architectures delivering significant increases in application performance and at the same time dramatically reducing development time.

Generating multithreaded code from unmodified single thread source requires exhaustive analysis of loops, understanding data access patterns and knowledge of the target architecture. Unlike alternative approaches qthreads will automatically generate multithreaded code without the additions of pragmas and user directives. qthreads takes single threaded code and generates multithreaded C++ code that works with any C++ compiler. The number of threads is runtime specified depending on hardware availability and optimized execution. Profiling is an integral part of the process to ensure loops that contribute little execution time are not threaded and loops that contribute the majority of execution time are threaded. The reason loops are not multithreaded is clearly reported. If profiling indicates a high execution loop is not threaded educated steps can be taken by the developer to alleviate issues that preclude multithreading. The same unmodified source can be used to target x86, ARM, RISCV, embedded, monolithic heterogenous SOCs and servers. Lastly, executing code unthreaded or any number of multiple threads will produce identical results. Not the case with other technologies. Intelligence based multithreading produces superior results with dramatically less resource investment and time. It is time to adopt a new heterogeneous SW development platform.

Другие новости