Время компиляции ядра OpenCL - PullRequest
0 голосов
/ 14 мая 2018

Я новичок в мире FPGA.Я пытался скомпилировать некоторые программы OpenCl, но заметил, что компиляция даже программы «Hello_World» занимает очень много времени (пара часов).Так что мне интересно, почему компиляция ядра OpenCL на FPGA занимает много времени (часов)?Кроме того, перепрограммировалась ли FPGA, когда мы скомпилировали / запустили на ней OpenCl?

1 Ответ

0 голосов
/ 14 мая 2018

Преобразование последовательного кода в аппаратное обеспечение затруднено, и в некоторых случаях компилятор пробует несколько версий, чтобы найти наиболее оптимальную комбинацию аппаратного обеспечения. Это не то же самое, что компиляция для процессоров и графических процессоров, поэтому рабочий процесс совершенно другой (ядро компилируется во время сборки, а не во время выполнения). Конечным результатом часто является аппаратное обеспечение, которое работает быстрее и / или потребляет меньше энергии, чем вычислительные устройства более общего назначения, такие как процессоры и графические процессоры. Есть несколько отличных видео "OpenCL on Altera", которые объясняют, как работает компиляция, но кратко: Скомпилируйте на абстрактную машину и для каждой инструкции / шага удалите оборудование абстрактной машины, не необходимое для этого шага, затем объедините все остальное оборудование в том, что запрограммировано на чипе. Данные «текут» через аппаратные средства, а не живут в памяти, и регистрируются, как это происходит в CPU / GPU.

...