<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tamkovich.com: Телеком/VoIP блог &#187; CUDA</title>
	<atom:link href="http://tamkovich.com/tag/cuda/feed/" rel="self" type="application/rss+xml" />
	<link>http://tamkovich.com</link>
	<description>Современные технологии: Asterisk, SIP, Kamailio, Linux, Cisco, Linksys</description>
	<lastBuildDate>Mon, 30 Jan 2012 11:42:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Оптимизация кодеков Asterisk с помощью CUDA</title>
		<link>http://tamkovich.com/2009/01/asterisk-codecs-with-cuda/</link>
		<comments>http://tamkovich.com/2009/01/asterisk-codecs-with-cuda/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 19:20:38 +0000</pubDate>
		<dc:creator>Сергей Тамкович</dc:creator>
				<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[Железо]]></category>
		<category><![CDATA[CUDA]]></category>
		<category><![CDATA[nVidia]]></category>
		<category><![CDATA[Tesla]]></category>

		<guid isPermaLink="false">http://tamkovich.com/?p=229</guid>
		<description><![CDATA[CUDA &#8211; это архитектура параллельных вычислений общего назначения. CUDA позволяет разгрузить Центральный процессор, за счет выполнения части задач на Графических Процессорах nVidia (на сегодня продано более 100 миллионов CUDA-совместимых процессоров). Кроме того что бы задействовать GPU с видеокарты компьютера, можно установить себе одну или несколько плат Tesla C1060 (~1600$/шт). Данное устройство обладает внушительными характеристиками: 240 [...]]]></description>
			<content:encoded><![CDATA[<p><img src=/wp-content/uploads/2009/01/tesla.jpg align=right border=0 ></p>
<p align=justify>
<b>CUDA</b> &#8211; это архитектура параллельных вычислений общего назначения. <a href=http://www.nvidia.com/object/cuda_what_is.html >CUDA</a> позволяет разгрузить Центральный процессор, за счет выполнения части задач на Графических Процессорах nVidia (на сегодня продано более 100 миллионов CUDA-совместимых процессоров). Кроме того что бы задействовать GPU с видеокарты компьютера, можно установить себе одну или несколько плат <a href=http://www.nvidia.com/object/product_tesla_c1060_us.html >Tesla C1060</a> (~1600$/шт). Данное устройство обладает внушительными характеристиками: 240 ядер работающих на частоте 1.3GHz, 4GB GDDR3 на частоте 800Mhz, пиковая производительность &#8211; 933 MFLOPS.
</p>
<p align=justify>
CUDA была тепло встречена производителями программного обеспечения. На сегодня, список ПО, поддерживающего CUDA, выглядит весьма внушительно. В нем можно найти такие названия как: CoreAVC, LabVIEW, MatLab и т.д. Глядя на эти имена и на специфику задач решаемых с помощью CUDA, возникает вопрос: а какая польза от этой технологии могла бы быть для <a href=http://tamkovich.com/asterisk/ >Asterisk</a>? Ответ очевиден &#8211; кодеки.
</p>
<p><span id="more-229"></span></p>
<p align=justify>
Данным вопросом задавался не только я и, соответственно, к очевидному ответу пришел тоже не я один. Первого января этого года, Joseph Benden из Thralling Penguin LLC, опубликовал в списке рассылки <a href=http://lists.digium.com/mailman/listinfo/asterisk-dev >asterisk-dev</a> отчет о своём исследовании. <a ref=http://lists.digium.com/pipermail/asterisk-dev/2009-January/035946.html>Данный отчет</a> хорошо написан и отформатирован. В результате проделанной работы, автор приходит к выводу о том, что CUDA не подходит для оптимизации кодеков в <a href=http://tamkovich.com/asterisk/ >Asterisk</a>.
</p>
<p align=justify>
Не хочу вдаваться в технические подробности, хочу лишь обратить внимание на несколько досадных недочетов, которые не позволяют воспринимать выводы этого письма всерьез.
</p>
<p align=justify>
<b>Неудачный выбор кодеков</b>. В проведенном исследовании, Joseph Benden пытался с помощью CUDA оптимизировать преобразования ulaw &lt;-&gt; slin. Конечно, это делать никто не запрещает, однако судить по этой паре обо всех остальных кодеках, по меньшей мере, абсурдно. На моем не самом новом Intel(R) Celeron(R) CPU 3.06GHz 256 KB Cache, таблица перекодировок выглядит вот так:
</p>
<pre>
*CLI> core show translation
         Translation times between formats (in microseconds)
         for one second of data
          Source Format (Rows) Destination Format (Columns)

            ulaw  alaw g726aal2 adpcm  slin lpc10
     ulaw      -     1     1002     2     1  3001
     alaw      1     -     1002     2     1  3001
     slin      1     1     1001     1     -  3000
</pre>
<p align=justify>
т.е. на преобразования 1 секунды ulaw &lt;-&gt; slin тратится 1 микросекунда (0.000001 секунды) времени устаревшего процессора. Оценивать величины времени измеряемые в микросекундах &#8211; неблагодарное занятие.
</p>
<p align=justify>
<b>Отсутствуют какие-либо цифры</b>. В письме нет ни одной цифры: сколько была задержка на перекодировку в &laquo;ванильной&raquo; версии <a href=http://tamkovich.com/asterisk/ >Asterisk</a>, сколько стала после внедрения CUDA. Как вел себя график загрузки процессора без CUDA, как ведёт себя с ней. Отпрофайлить кодеки так же не помешало бы. Предметно разговаривать без цифр нельзя. Слова, не подтвержденные цифрами &#8211; гипотетические рассуждения
</p>
<p align=justify>
<b>Отсутствует методика</b>. Для проведения каких-либо сравнений, необходимо определить и описать методику этих сравнений. А именно: по каким критериям сравниваем, какие условия сравнения и т.п. Ничего этого конечно же нет. Есть только рассуждения не подкрепленные цифрами о том, что CUDA не подойдет для всех кодеков, потому что не подходит для пары ulaw &lt;-&gt; slin.
</p>
<table border=0 width=100%>
<tr>
<td>
<p align=justify>
<img src=/wp-content/uploads/2009/01/tc400b.jpg align=left border=0 ><br />
<a href=http://www.liv.ic.unicamp.br/~bergo/ >Felipe Bergo</a> и <a href=http://lists.digium.com/pipermail/asterisk-dev/2009-January/035950.html >Steve Underwood</a> указали Иосифу на эти и другие недочеты в его письме. Хочу верить что критика пойдет на пользу, и Joseph Benden выполнит работу над ошибками, с учетом указанных недостатков. Потенциал у технологии CUDA огромен, очень интересно было бы сравнить плату Tesla C1060 c <a href=http://www.digium.com/en/products/voice/tc400b.php >Digium TC400B</a> по соотношению цена/количество перекодировок g711 &lt;-&gt; g729.
</p>
</td>
</tr>
</table>
<ul>
<li> <a href=http://lists.digium.com/pipermail/asterisk-dev/2009-January/035946.html >[asterisk-dev] GPU Audio Codec Transcoding within Asterisk PBX</a>
<li> <a href=http://www.nvidia.com/object/cuda_home.html >CUDA ZONE</a>
<li> <a href=http://www.nvidia.com/object/product_tesla_c1060_us.html >NVIDIA® Tesla™ C1060</a>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tamkovich.com/2009/01/asterisk-codecs-with-cuda/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

