среда, 17 июня 2009 г.

[comp.prog] Трудности перевода: C vs Verilog

Вот здесь наткнулся на фразу, которая поставила меня в тупик:

Working in cooperation with Dr. Adam Alessio of the UW Department of Radiology, the two researchers converted and refactored an existing back-projection algorithm, using both Impulse C and Verilog HDL, to evaluate design efficiency and overall performance. This conversion, which included refactoring the algorithm for parallel execution in both C and Verilog, took 2/3 of the time when working in C than when working in Verilog. Perhaps more importantly, the two researchers found that later design revisions and iterations were much faster when working in C, with as little as 1/7 the time being required to make algorithm modifications when compared to Verilog.

Мои скудные познания в английском приводят к следующему пониманию написанного: переделка алгоритма для параллельной обработки на C заняла на 1/3 меньше времени, чем на Verilog. А дальнейшие модификации алгоритма оказывались гораздо быстрее, чем на Verilog-е (в районе 1/7 времени, требующегося для Verilog-а).

Что заставляет сомневаться в собственном понимании этого текста? А то, что за последние годы прочитал столько обвинений в адрес C/C++, что уже просто не верится, что на этих языка можно что-нибудь делать быстро.

PS. О Verilog HDL знаю только из поверхностного просмотра статьи в Wikipedia. Подозреваю, что для данной задачи Verilog оказался гораздо более низкоуровневым языком, что должно было бы объяснить разрыв в сроках.

2 комментария:

Miroslav комментирует...

тут речь идет не о си а о языке описания железки "Impulse C" (http://en.wikipedia.org/wiki/Impulse_C). он с обычным программированию имеет мало общего. и вообще железки - имхо темный лес.

eao197 комментирует...

Но в Wikipedia сказано, что "Impulse C is a subset of the C programming language combined with a C-compatible function library supporting parallel programming, in particular for programming of applications targeting FPGA devices" и чуть далее "Impulse C is compatible with standard ANSI C, allowing standard C tools to be used for designing and debugging applications targeting FPGAs". Так что общего, если верить Wikipedia, не так уж и мало. И, возможно, именно наличие обычных средств отладки помогло разработчикам быстрее работать на С, чем на Verilog.