<?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>PauloMotta.pro &#187; CUDA</title>
	<atom:link href="http://www.paulomotta.pro.br/tag/cuda/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.paulomotta.pro.br</link>
	<description>&#34;Qualquer tecnologia suficientemente avançada é indistinguível da mágica&#34; - Arthur C. Clarke</description>
	<lastBuildDate>Thu, 09 Sep 2010 16:39:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Beauty Box plug-in para Adobe Photoshop</title>
		<link>http://www.paulomotta.pro.br/2010/08/20/beauty-box-plug-in-para-adobe-photoshop/</link>
		<comments>http://www.paulomotta.pro.br/2010/08/20/beauty-box-plug-in-para-adobe-photoshop/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 18:15:06 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Inovação]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[Tendências]]></category>
		<category><![CDATA[CUDA]]></category>
		<category><![CDATA[GPU]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/?p=825</guid>
		<description><![CDATA[Bom o pessoal que me conhece sabe que eu não entendo nada de manipulação de imagens, tratamento de fotos e coisas do gênero, mas como me interesso por programação de GPU essa notícia me chamou a atenção.
A Adobe lançou um plug-in para Photoshop que usa a GPU das placas nVidia para acelerar os processos gráficos, [...]]]></description>
			<content:encoded><![CDATA[<p>Bom o pessoal que me conhece sabe que eu não entendo nada de manipulação de imagens, tratamento de fotos e coisas do gênero, mas como me interesso por programação de GPU essa notícia me chamou a atenção.</p>
<p>A Adobe lançou um plug-in para Photoshop que usa a GPU das placas nVidia para acelerar os processos gráficos, bem interessante, é claro que eu vi o vídeo pensando nas coisas que foram programadas <img src='http://www.paulomotta.pro.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  mas é bem impressionante como fica mais rápido.</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/cKU0R31WEyc&amp;feature" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/cKU0R31WEyc&amp;feature"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2010/08/20/beauty-box-plug-in-para-adobe-photoshop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Um supercomputador para chamar de seu</title>
		<link>http://www.paulomotta.pro.br/2010/08/16/um-supercomputador-para-chamar-de-seu/</link>
		<comments>http://www.paulomotta.pro.br/2010/08/16/um-supercomputador-para-chamar-de-seu/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 11:46:59 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Inovação]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[Ciências]]></category>
		<category><![CDATA[CUDA]]></category>
		<category><![CDATA[GPU]]></category>
		<category><![CDATA[PARALELISMO]]></category>
		<category><![CDATA[Pesquisa]]></category>
		<category><![CDATA[PROGRAMAÇÃO]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/?p=778</guid>
		<description><![CDATA[Talvez a sua placa mãe aceite 3 ou 4 conexões PCIe 2 rodando a 16x, a minha placa aceita duas conexões dessas, daria para ligar duas placas de vídeo nVidia ou ATI dessas com GPU programável, mas saiba que o paralelismo é um caminho sem volta, uma vez que você começa a criar programas paralelos [...]]]></description>
			<content:encoded><![CDATA[<p>Talvez a sua placa mãe aceite 3 ou 4 conexões PCIe 2 rodando a 16x, a minha placa aceita duas conexões dessas, daria para ligar duas placas de vídeo nVidia ou ATI dessas com GPU programável, mas saiba que o paralelismo é um caminho sem volta, uma vez que você começa a criar programas paralelos você quer sempre mais. Mais velocidade, mais poder de processamento, e mesmo tendo apenas uma placa de vídeo (que eu ainda não estou usando para programação por conta das tarefas diárias que consomem meu tempo) eu fico com uma sensação ruim de não poder colocar mais de 4 placas de vídeo.</p>
<p>E nem mesmo tenho o dinheiro para comprar as placas que eu gostaria, sim porque na amazon temos NVIDIA Tesla C1060 US$ 1,299.99 e NVIDIA Tesla C2050 US$ 2,299.99, mas a gente sempre deixa isso de lado e pensa &#8220;poxa seria tão bom&#8230;&#8221;</p>
<p style="text-align: center;"><img class="aligncenter" title="Fonte Dell" src="http://i.dell.com/resize.aspx/poweredge-c410x-314x314/295" alt="" width="295" height="295" /></p>
<p>Então a Dell lançou o <a href="http://www.dell.com/us/en/enterprise/servers/poweredge-c410x/pd.aspx?refid=poweredge-c410x&amp;cs=555&amp;s=biz" target="_blank">PowerEdge C410x PCIe Expansion Chassis</a>, que permite colocar 16 placas de vídeo em um servidor de alto desempenho alcançando 16,480 gigaflops (tradução: sinistro mesmo).</p>
<p>A minha esperança ainda está no fato de que provando que meus códigos funcionam, eu consiga algum convênio com algum laboratório que tenha uma máquina sinistra assim para poder executar as aplicações e ter os resultados cada vez mais rápido <img src='http://www.paulomotta.pro.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2010/08/16/um-supercomputador-para-chamar-de-seu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O Dilema da GPU Solitária 2 &#8211; A Revanche</title>
		<link>http://www.paulomotta.pro.br/2010/03/12/o-dilema-da-gpu-solitaria-2-a-revanche/</link>
		<comments>http://www.paulomotta.pro.br/2010/03/12/o-dilema-da-gpu-solitaria-2-a-revanche/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 15:00:41 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[CUDA]]></category>
		<category><![CDATA[GPU]]></category>
		<category><![CDATA[OPENSUSE]]></category>
		<category><![CDATA[PARALELISMO]]></category>
		<category><![CDATA[PROGRAMAÇÃO]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/?p=319</guid>
		<description><![CDATA[Então eu estava incomodado com não poder testar meus programas (que ainda nem estão prontos) na minha própria máquina e estava aqui curioso para saber como resolver isso.
Fui no site oficial do opensuse (que é a distribuição linux que eu uso) para ver como fazer isso e encontrei a seguinte dica:
Ctrl + Alt + F2 [...]]]></description>
			<content:encoded><![CDATA[<p>Então eu estava incomodado com não poder testar meus programas (que ainda nem estão prontos) na minha própria máquina e estava aqui curioso para saber como resolver isso.</p>
<p>Fui no <a href="http://www.opensuse.org" target="_blank">site oficial do opensuse</a> (que é a distribuição linux que eu uso) para ver como fazer isso e encontrei a seguinte dica:</p>
<blockquote><p>Ctrl + Alt + F2 &#8211; abre uma sessão de terminal em modo texto</p></blockquote>
<blockquote><p>Ctrl + Alt + F7 &#8211; volta para a sessão em modo gráfico</p></blockquote>
<p>Aí para não ter nenhum susto eu compilei minha multiplicação para executar 10 mil repetições, fechei todos os programas e abri o terminal em modo texto, o programa todou em 33 segundos (ok eu acho que ficou muito lento, mas isso é outro problema.) Aí resolvi abusar, voltei para o modo gráfico abri o Amarok, coloquei uma música para tocar, abri o Netbeans 6.7, modifiquei o programa para executar 100 mil repetições e voltei para o modo gráfico (a única coisa que eu fiz de especial foi minimizar os programas.) Coloquei o programa para executar pensando &#8220;não vai dar certo,&#8221; pois não é que rodou direito e executou durante 5 minutos sem problemas e com a música tocando ?</p>
<p>No final voltei para o modo gráfico e tudo estava lá, sem janelas corrompidas nem instabilidade no sistema.</p>
<p>É claro que se você quer executar um programa em GPU que vai ter um efeito visual vai ter que executar dentro do modo gráfico e aí a solução tem que ser outra, mas se a ideia é executar uma aplicação paralela que vai apenas gerar resultados (que é o meu caso) então esta solução foi ótima! Já posso continuar meus testes, o único problema é que nesse ponto voltamos para a idade da pedra na pesquisa, todas as anotações de resultados que aparecerem na tela tem que ser copiadas no papel porque não tem como copiar e colar <img src='http://www.paulomotta.pro.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  (ok ok você pode mandar o seu programa gravar em disco, mas eu não queria perder a piada.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2010/03/12/o-dilema-da-gpu-solitaria-2-a-revanche/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>O Dilema da GPU Solitária</title>
		<link>http://www.paulomotta.pro.br/2010/03/11/o-dilema-da-gpu-solitaria/</link>
		<comments>http://www.paulomotta.pro.br/2010/03/11/o-dilema-da-gpu-solitaria/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 13:56:15 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[ARQUITETURA]]></category>
		<category><![CDATA[CUDA]]></category>
		<category><![CDATA[GPU]]></category>
		<category><![CDATA[OPENSUSE]]></category>
		<category><![CDATA[PARALELISMO]]></category>
		<category><![CDATA[PROGRAMAÇÃO]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/?p=316</guid>
		<description><![CDATA[Então como eu havia falado estou começando a fazer experiências de programação com GPU (em uma nVidia 8200G M que tem um processador com 8 núcleos.) O meu objetivo não é processar imagens rapidamente, muito pelo contrário quero usar a GPU para rodar programas realmente demorados então o primeiro teste foi fazer uma multiplicação de [...]]]></description>
			<content:encoded><![CDATA[<p>Então como eu havia falado estou começando a fazer experiências de programação com GPU (em uma nVidia 8200G M que tem um processador com 8 núcleos.) O meu objetivo não é processar imagens rapidamente, muito pelo contrário quero usar a GPU para rodar programas realmente demorados então o primeiro teste foi fazer uma multiplicação de matrizes da ordem 4000 (isso dá por volta de um milhão de operações de multiplicação e soma combinadas.)</p>
<p>Qual não foi minha surpresa quando o sistema operacional abortou o programa deliberadamente. Procurando nos fóruns descobri que se você só tem uma placa de vídeo (que é o caso do laptop por motivos óbvios) o sistema operacional não deixa um programa rodar na GPU por mais do que (aproximadamente) 5 segundos. Isso na prática é uma ótima restrição (embora tenha me atrapalhado muito) porque evita que as pessoas tenham que desligar suas máquinas na mão por ter algum erro em seus programas. As sugestões nos fóruns são bem <a href="http://desciclo.pedia.ws/wiki/POG" target="_blank">orientadas a gambiarras</a>. Porém uma chamou a minha atenção (e só é possível no linux) você pode carregar o driver de vídeo, abrir uma nova sessão em modo texto e aí será possível executar o seu programa.</p>
<p>A alternativa mais &#8220;correta&#8221; para o meu problema (que é executar um programa por um tempo indeterminado e sabidamente longo) é ter uma placa de vídeo (GPU) no sistema que <em>não</em> seja a placa de vídeo na qual o monitor está ligado. Assim você não tem essa limitação, fazendo uma rápida cotação, uma máquina dessas vai ficar um pouquinho cara então estou tentando fazer testes que apontem que o meu projeto vai funcionar, porque a pior coisa que tem é investir um dinheiro em um equipamento e no final não resolver o seu problema.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2010/03/11/o-dilema-da-gpu-solitaria/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Iniciando a programação de GPU com CUDA</title>
		<link>http://www.paulomotta.pro.br/2010/02/05/iniciando-a-programacao-de-gpu-com-cuda/</link>
		<comments>http://www.paulomotta.pro.br/2010/02/05/iniciando-a-programacao-de-gpu-com-cuda/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 04:18:34 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[CUDA]]></category>
		<category><![CDATA[GPU]]></category>
		<category><![CDATA[PARALELISMO]]></category>
		<category><![CDATA[PROGRAMAÇÃO]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/2010/02/05/iniciando-a-programacao-de-gpu-com-cuda/</guid>
		<description><![CDATA[Por conta do doutorado eu tenho um interesse especial por arquiteturas paralelas como é o caso do processador Cell Broadband Engine que equipa o Playstation3 e também das placas de vídeo da nVidia que têm diversos núcleos e nos últimos anos têm chamado a atenção dos pesquisadores por serem muito mais baratas do que máquinas [...]]]></description>
			<content:encoded><![CDATA[<p>Por conta do doutorado eu tenho um interesse especial por arquiteturas paralelas como é o caso do processador Cell Broadband Engine que equipa o Playstation3 e também das placas de vídeo da nVidia que têm diversos núcleos e nos últimos anos têm chamado a atenção dos pesquisadores por serem muito mais baratas do que máquinas paralelas grandes.<br />
Sempre adiei o início dos meus estudos desse tipo de desenvolvimento mas nesse verão surgiu a oportunidade de fazer um mini-curso de programação CUDA no LNCC em Petrópolis, tem sido uma experiência interessante (que terminou sexta-feira dia 05/02/2010) e que me incentivou a finalmente fazer a instalação do meu ambiente.<br />
Tal como no caso do Cell Broadband Engine, existem meios de programar usando um ambiente emulado, mas nada como poder executar seu programa na arquitetura final <img src='http://www.paulomotta.pro.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  por sorte minha máquina é equipada com uma placa GeForce 8200M G. No site da nVidia consta que esta placa não tem capacidade de rodar programas CUDA, mas depois de rodar pelos fóruns descobri que algumas pessoas conseguiram executar com sucesso, e também na wikipedia consta esta placa como capaz de rodar programas CUDA.<br />
Bom, a tarefa parecia simples, é necessário usar o driver fornecido pela nVidia, existem versões para linux, windos e mac. A versão mais recente (e estável) do CUDA é a 2.3, porém esta precisava da versão 190 do driver, começou aí o meu primeiro problema. Meu OpenSuSE 11.1 é uma versão de 32 bits, para que reconhecesse toda a memória instalada (4GB) foi necessário usar o módulo de expansão PAE, com isso o driver de vídeo mais atualizado é o 185.18.14 voltei então para a versão 2.2 do CUDA que é compátivel com meu driver.<br />
A instalação é bem tranquila, sendo realizada a partir de dois arquivos binários baixados da nVidia, porém precisamos ficar atentos, os exemplos não compilavam de jeito algum, pois a biblioteca libcuda.so não estava visível, mais uma busca nos fóruns e achei uma dica de criar um link simbólico do arquivo .so fornecido para o nome esperado pelo SDK, funcionou corretamente, mas agora o problema estava com a compilação de certos exemplos, que realizei como root.</p>
<p>Hora de fazer um resumo ! Comece assim:</p>
<ol>baixe os arquivos da nVidia</ol>
<ol>atualize o driver de vídeo</ol>
<ol>instale o SDK</ol>
<ol>vá até o diretório /usr/lib e faça um link simbólico para o arquivo do libcuda.so.xxx como libcuda.so</ol>
<ol>no diretório NVIDIA_CUDA_SDK execute o make como root (ou com sudo)</ol>
<p>Pronto! Agora já tem um ambiente funcionando, no meu caso o openGL não está funcionando, mas não é bem o meu objetivo então isso não foi um grande problema. Minha placa tem apenas um multiprocessador com 8 núcleos e 512MB acredito que seja possível realizar os testes necessários, mas se tudo funcionar vou precisar providenciar um ambiente mais forte com mais núcleos.</p>
<p>Em breve vou postar aqui alguns exemplos de codificação e como configurar o Netbeans para trabalhar com o CUDA.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2010/02/05/iniciando-a-programacao-de-gpu-com-cuda/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
