Você está na página 1de 2

Preciso e Exatido Numricas em Aplicaes Mdicas Baseadas em GPU

Adiel Mittmann1 , Eros Comunello2 , Aldo von Wangenheim3


1,2,3 Departamento de Informtica e Estatstica

Centro Tecnolgico Universidade Federal de Santa Catarina

Introduo As placas de vdeo dos computadores, que so responsveis por processar e mostrar grcos na tela, recentemente se tornaram diretamente programveis, ou seja, programas arbitrrios podem ser executados em suas unidades de processamento grco (GPUs) [1]. Elas so capazes de executar operaes matemticas rpida e paralelamente, o que as torna especialmente atraentes para aplicaes de imageamento mdico. Como as GPUs inicialmente tinham como nico objetivo as aplicaes grcas, a preciso e a exatido numrica das operaes de ponto utuante foram deixadas de lado em benefcio da velocidade. Conforme outros tipos de aplicao de cunho mais geral foram utilizando as GPUs, a preciso e a exatido das operaes matemticas foram ganhando mais importncia. As duas maiores fabricantes de GPUs, a NVIDIA e a ATI, recentemente lanaram produtos com preciso e exatido numrica equivalente s CPUs (unidades centrais de processamento). No entanto, por vrios anos as estaes de trabalho disponveis em nosso pas ainda no tero, em sua maioria, acesso a tal hardware. De fato, a placa de vdeo das estaes tpicas atuais so de alguns anos atrs. preciso que aplicaes com ns mdicos desenvolvidas total ou parcialmente com a tecnologia das GPUs levem em considerao a preciso numrica limitada e o erro inerente s operaes de ponto utuante, que particularmente relevante quando se deseja comparar resultados gerados por programas executados na GPU e na CPU.

aumentar a portabilidade de programas numricos, tambm dene normas que fabricantes de hardware e compiladores devem seguir quando implementarem operaes matemticas, como mtodos de arredondamento e realizao das operaes aritmticas bsicas. Na execuo das operaes, e no no armazenamento, que as GPUs diferem das CPUs. Quando se comparam resultados de diferentes arquiteturas, como o caso das GPUs e das CPUs, preciso levar em considerao as seguintes causas para diferenas numricas encontradas: Preciso: os resultados de arquiteturas com preciso diferente podem acabar se distanciando, principalmente se as operaes so feitas em cadeia, ou seja, se os resultados de uma operao so utilizados para produzir os seguintes. Exatido: por mais que uma arquitetura tenha uma boa preciso, ela pode no gerar resultados que aproveitem toda essa preciso. Muitas GPUs, por exemplo, oferecem nmeros de ponto utuante de 32 bits, mas quando uma operao matemtica efetuada, nem sempre todos os bits so preenchidos de maneira conformante com o padro IEEE 754. Estrutura: quando operaes de ponto utuante so encadeadas, diferentes implementaes podem gerar resultados conitantes se as operaes no so executadas exatamente na mesma ordem. Em um trabalho anterior, mostramos como a tcnica mdica de tractograa [3] pode beneciar-se das GPUs com ganhos de at 40 vezes [4], e desenvolvemos um ndice de variao para comparar resultados gerados pela CPU e GPU dos computadores ao executar esse procedimento. Em outras aplicaes mdicas, que trabalham com o processamento de imagens, j existem ndices especcos que podem ser usados para comparar resultados.

Metodologia A preciso numrica da maioria das GPUs instaladas nos computadores atuais de 32 bits, e os nmeros de ponto utuante so armazenados de acordo com o padro IEEE 754 [2]. Esse padro, cujo objetivo

Tabela 1: O resultado de algumas operaes quando executadas em GPU e em CPU, utilizando a mesma preciso numrica, 32 bits. Essa comparao ilustra a diferena de exatido que existe entre GPUs e CPUs.

Operao 527/382 527/382/382 43219886 0.4545 0.9123 + 0.0546

GPU 1.379581212997... 0.00361146917566... 6574.183105468... 4.692403078079...

CPU 1.379581093788... 0.00361146894283... 6574.18359375 4.692403376102...

Diferena 1.19 107 2.33 1010 4.88 104 2.98 108

Tabela 2: Mesmas operaes da Tabela 1, mas com a CPU operando com nmeros de 64 bits.

Operao 527/382 527/382/382 43219886 0.4545 0.9123 + 0.0546

GPU 1.379581212997... 3.61146917566... 6.574183105468... 4.692403078079...

CPU 1.379581151832... 3.61146898385... 6.574183295284... 4.692403499999...

Diferena 6.12 108 1.92 1010 1.90 104 4.22 108

Resultados A Tabela 1 mostra algumas operaes matemticas executadas em uma CPU AMD Athlon 64 3500+ e em uma GPU GeForce 8800GTS, todas executadas com a mesma preciso, 32 bits; a Tabela 2 mostra as mesmas operaes e os mesmo equipamentos, porm com preciso de 64 bits na CPU. Em nossos experimentos com tractograa [4], medimos a distncia mdia entre as bras encontradas pela GPU e pela CPU em 57 pacientes; a maior distncia mdia foi de 0,035 mm. Sem esse clculo, no entanto, a comparao visual entre os resultados no seria conclusiva. Para muitas aplicaes, interessante que essa variao seja medida para que se saiba o quo sensvel os resultados so a precises e exatides diferentes.

mente indicam a aderncia delas ou no ao padro IEEE 754. O mesmo no acontece quando uma preciso maior adotada na CPU; nesse caso, as diferenas em geral signicam que a GPU obteve resultados menos exatos.

Referncias [1] Owens JD, Houston M, Luebke D, Green S, Stone JE, Phillips JC. GPU Computing. IEEE J Proc. 2008;96(5):879899. [2] IEEE. IEEE Standard 754 for Binary FloatingPoint Arithmetic. IEEE; 1985. [3] Mori S, van Zijl PCM. Fiber tracking: principles and strategies - a technical review. NMR Biomed. 2002;15(7-8):468480. [4] Mittmann A, Comunello E, von Wangenheim A. Diffusion Tensor Fiber Tracking on Graphics Processing Units. Comput Med Imaging Graph. 2008;32:521530.

Discusso e Concluses As GPUs provm um ambiente de baixo custo para a execuo de programas em alto desempenho. No entanto, devido ao seu foco inicial em rotinas grcas, a ampla maioria das placas de vdeo instaladas em estaes de trabalho atuais no oferecem um ambiente totalmente estvel para aplicaes sensveis maneira como as operaes de nmeros de ponto utuante so executadas, como o caso de muitas aplicaes mdicas. importante notar que, quando tanto a CPU e a GPU utilizam a mesma preciso numrica, os resultados conitantes no apontam necessariamente para uma exatido inferior das GPUs, mas simples2

Contato Universidade Federal de Santa Catarina UFSC The Cyclops Group Laboratrio de Processamento de Imagens e Computao Grca LAPIX http://www.lapix.ufsc.br/ (48) 3721-9516

adiel@inf.ufsc.br

Você também pode gostar