+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

CacheQ Compiler Collection обіцяє зробити революцію у світі розробки ПЗ

Колекція компіляторів CacheQ обіцяє революціонізувати світ розробки програмного забезпечення

Колекція компіляторів CacheQ дозволить вам компілювати проекти так, щоб вони запускалися набагато швидше за рахунок розпаралелювання процесу. За словами творців, немає необхідності в масовому ручному переписуванні коду і використанні спеціальних бібліотек або складних API для розпаралелювання.

Це дає розробникам можливість розібратися з бізнес-логікою програми, не замислюючись про проблеми розпаралелювання. Причому кількість потоків можна регулювати ще на етапі виконання, а частина навантаження при бажанні передавати на FPGA або SoC. Це підтримує збірку для архітектур x86-64, ARM (Apple M1) та RISC-V.

На процесорі x86 з 12 ядрами продуктивність програми збільшується майже на 500% в порівнянні з однопотоковим виконанням і збіркою з GCC. На процесорі M1 з вісьмома ядрами Arm - на 400% швидше, ніж на традиційному «однопотоковому».

Секрет полягає в ретельній роботі з петлями і особливо вкладеними петлями. Вихідний код аналізується і перетворюється пропрієтарною системою qthreads в код C++, який може бути скомпільований будь-яким компілятором, або в Verilog для подальшої збірки для FPGA. Однак CacheQ пропонує повний набір інструментів для розробки, налагодження, профілювання, моделювання та оптимізації коду і роботи з пам'яттю.

Гетерогенна платформа розробки CacheQ дозволяє розробникам SW легко розробляти, розгортати та організовувати програми в декількох ядрах та гетерогенних розподілених обчислювальних архітектурах, забезпечуючи значне збільшення продуктивності додатків і в той же час різко скорочуючи час розробки.

Генерація багатопотокового коду з немодифікованого однопотокового джерела вимагає вичерпного аналізу циклів, розуміння шаблонів доступу до даних і знання цільової архітектури. На відміну від альтернативних підходів qthreads буде автоматично генерувати багатопотоковий код без додавання прагм і директив користувача. qthreads приймає однопотоковий код і генерує багатопотоковий код C++, який працює з будь-яким компілятором C++. Кількість потоків вказується в залежності від доступності обладнання та оптимізованого виконання. Профілювання є невід'ємною частиною процесу для забезпечення того, щоб цикли, які сприяють малому часу виконання, не були протягнуті, а цикли, які сприяють більшості часу виконання, були протягнуті. Причина, по якій петлі не багатопотокові, чітко повідомляється. Якщо профілювання вказує на високий цикл виконання, розробник не може зробити освічені кроки, щоб полегшити проблеми, які виключають багатопоточність. Це ж немодифіковане джерело може бути використано для націлювання на x86, ARM, RISCV, вбудовані, монолітні гетерогенні SOC і сервери. Нарешті, виконання коду без читання або будь-якої кількості декількох потоків дасть ідентичні результати. Не можна сказати про інші технології. Багатопоточність на основі інтелекту дає чудові результати з значно меншими інвестиціями в ресурси та часом. Настав час прийняти нову гетерогенну платформу розробки SW.

Інші новини

Найкраща ціна