Blog do Projeto

Unfortunately this page exists only in portuguese.

Este projeto é uma continuação do projeto HL2GLSL. Para o Blog antigo, por favor visite: http://hl2glsl.codeplex.com/wikipage?title=Blog&referringTitle=Home

16/02/2011

Olá,
Para me organizar melhor criei um projeto exclusivo para o estudo e desenvolvimento na plataforma Azure. Ele se encontra em: http://azurendos.codeplex.com/

Bruno Jurkovski

25/01/2011

Olá,
Acabei de implementar duas versõs do Rasterizador em C# (para rodar na plataforma Azure): uma sequencial e uma paralela (utilizando o Parallel.For do System.Threading.Tasks) e realizei alguns testes. Os resultados podem ser conferidos aqui: resultados. É importante ressaltar que a versão em C# foi executada localmente. Assim que possível, posto os resultados da execução na cloud.

Bruno Jurkovski

10/01/2011

Olá,
Nos últimos dias tenho estudado um pouco da arquitetura do Microsoft Azure para me familiarizar com a tecnologia. Já iniciei, também, a implementação do Rasterizador para rodar na cloud, e em breve devo ter uma versão funcional para comparar com as outras. Postarei os resultados aqui assim que possível.

Bruno Jurkovski

20/12/2010

Olá,
acabei ficando um tempo sem postar, mas coloco agora as novidades:
Terminei uma versão funcional do rasterizador, agora é possível passar uma malha em formato de mapa de alturas ("heightmap") ou as coordenadas de seus triangulos. Fiz também uma comparação entre os desempenhos das versões em CPU, OpenCL e OpenMP. Os testes foram feitos em um Athlon 64 (1 core) com 2.21GHz e 2GB de RAM, e uma GeForce 8800 GTX Ultra (foram executadas 15 vezes cada versão e então feita uma média dos tempos). O resultado foi:
  • Sem otimizações do compilador:
    • OpenCL em média 24.46x mais rápida que CPU
    • OpenMP em média 1..01x mais rápida que CPU
  • Com otimizações do compilador (VisualC++ /O2):
    • OpenCL em média 2.58x mais rápida que CPU
    • CPU em média 1.17x mais rápida que OpenMP
O desempenho tão baixo da versão em OpenMP se explica pelo fato de a máquina possuir apenas 1 core, não aproveitando realmente o paralelismo.
Acredito também que ainda seja possível otimizar a versão em GPU, aumentando ainda mais essa diferença. Agora vamos começar a portar uma versão para rodar na Cloud com o Microsoft Azure.

Bruno Jurkovski

26/08/2010

Olá,
fiz alguns exemplos de integração com os buffers da OpenGL e do uso de imagens com o Wrapper, coloquei eles junto com o resto do código, em 'Source Code'. Ambos são baseados nos exemplos da SDK da Nvidia. A implementação do Wrapper está quase completa agora, faltam apenas mais testes.

Me inscrevi também num grupo de e-mails interessante sobre GPU Computing que encontrei e tenho acompanhado suas discussões (http://groups.google.com/group/gpubrasil?hl=pt-BR&pli=1).

Bruno Jurkovski

09/08/2010

Olá,
eu e o Leonardo fizemos um tutorial sobre o uso dos diferentes tipos de memória e comparação de formas de acesso. Pretendo arrumar alguns detalhes e em breve disponibilizar ele aqui na página. Fiz também um código exemplo do wrapper para ajudar os interessados em começar a utiliza-lo. Além disso, comecei a utilizar o Wrapper em alguns exemplos da SDK da Nvidia, para comparar a diferença dos códigos (e a vantagem do uso de construções mais expressivas/alto nível) e para aproveitar para estudar e aprender com o que foi utilizado nesses códigos. Adicionei ainda algumas coisas que achei necessárias, como uma classe Timer para medição de benchmarks e alguns outros métodos nas classes que o Leonardo havia iniciado.

Bruno Jurkovski

24/07/2010

Olá,
como o Leonardo disse, irei substituí-lo e dar continuidade ao projeto. Atualmente estou estudando OpenCL e revisando o que o Leonardo já havia feito (código e tutoriais). Pretendo em breve poder contribuir com o OCLpp e com os tutoriais de OpenCL.

Bruno Jurkovski

13/07/2010

Olá,
no último mês estive um pouco atarefado assim que não tive tempo de postar aqui algumas coisas.
O projeto do está chegando ao fim, pretendo concluí-lo nas próximas duas semanas. Estou trabalhando numa reimplementação na GPU e espero obter bons resultados.
Assim que terminar, posto aqui todos os resultados.

Estarei também me afastando do projeto, deixando em meu lugar Bruno Jurkovski, aluno de sexto semestre de Ciência da Computação aqui da UFRGS.

Leonardo Chatain

25/05/2010

Olá,
refatorei os dois primeiros tutoriais (agora estão em ingles). Eles estão disponíveis em OpenCL Tutorials. Por favor, sintam-se livres para fazer suas críticas, sugestões, e comentários.
Estou trabalhando na etapa final do rasterizador.
Estivemos sofrendo nos últimos dias com alguns problemas de precisão numérica e estamos atualmente trabalhando para corrigí-los.
Nas próximas semanas a implementação deverá ser integrada ao trablaho completo do doutorando.

Att,

Leonardo Chatain

11/03/2010

Olá,
terminei a implementação do Standard Model na CPU, em C++, e agora estou trabalhando na versão em OpenCL.
Visto que OpenCL é uma API de bastante baixo nível, resolvi também começar um wrapper em C++ para OpenCL, com a finalidade de auxiliar na gerencia do host (contextos, filas de execução, criação de programas, invocação de kernels, etc...).

Até mais,

Leonardo Chatain

09/02/2010

Olá a todos,
continuo trabalhando na implementação do Standard Model.
Semana passada Leandro, o doutorando com o qual estou trabalhando, conseguiu encontrar uma forma simplificada de fazer a geração de inequações, o que facilitará em muito os calculos e representará, espero, um ganho significativo de desempenho.

Att,

Leonardo Chatain

25/01/2010

Olá,
Estive trabalhando na implementação do Standard Model. O objetivo principal é reconhecer m-simplexos (http://en.wikipedia.org/wiki/Simplex) em um ambiente real N-dimensional e estipular um conjunto de inequações tal que os pontos inteiros que rasterizam esse simplexo satisfazem-nas.
Estou terminando agora a implementação na CPU desse trabalho, e em seguida portaremos isso para OpenCl.

Em breve estarei criando uma página específica para tratar o assunto do Standard Model.

Att,

Leonardo

07/01/2010

Olá,
este é o primeiro post do novo projeto. Alguns posts já foram feitos no antigo blog (acessível no link no topo da página), e os repliquei aqui em baixo, para ficar mais facil acompanhar.
Estamos fazendo a implementação do trabalho de um aluno de doutorado aqui do Grupo de Computação Gráfica da UFRGS. A etapa que esta sendo implementada trata da rasterização (http://en.wikipedia.org/wiki/Rasterisation) de formas geométricas em n-dimensões. Explicando de uma forma mais simples: temos formas geometricas pertencentes a um espaço real de n dimensões, e devemos encontrar os pontos inteiros que melhor aproximam essas formas. É basicamente uma generalização do caso típico 2D em que devemos encontrar os pixeis que devem ser ativados para desenhar uma determinada forma.
Estive estudando o trabalho desenvolvido por Eric Andres, publicado em E. Andres, Discrete linear objects in dimension n, the standard model, 2002. Esse trabalho utiliza uma abordagem baseada em inequações para definir quais os pontos devem pertencer ao objeto e quais não.

Buscarei dividir este espaço nos proximos dias entre informações sobre OpenCL e sobre a implementação sendo desenvolvida.

Att,

Leonardo Chatain

12/11/09

Olá,
estou trabalhando no segundo tutorial sobre OpenCL, que acredito que deva estar pronto em breve. Nele pretendo discutir um pouco melhor OpenCL e a arquitetura sobre a qual ele deve executar. Pretendo nesse tutorial avançar mais também nas técnicas e possibilidades de programação, abordando um pouco os diferentes tipos de memória e sua relação com a eficiência geral do programa.
Estou também estudando uma forma de acelerar a execução do trabalho de um doutorando aqui do grupo de computação gráfica. Ainda estou em uma fase bastante preliminar, mas em breve deverei estar publicando aqui mais informações relacionadas a isso.

Até,

Leonardo Chatain

03/11/09

Olá a todos,
estive bastante envolvido com as tarefas da faculdade nos últimos dias, assim que não tenho tido muito tempo de postar aqui os resultados do meu trabalho.
Encontrei um material muito bom sobre OpenCl aqui: http://www.macresearch.org/opencl. Nelas são apresentados desde questões gerais sobre opencl até otimizações diversas. Vale a pena conferir.

Até,

Leonardo Chatain

05/10/09

Olá a todos,
gostaria de fazer aqui um pequeno post apenas para comentar sobre um benchmark que foi feito pela SiSoftware (os responsáveis pelo famoso Sandra).
O benchmark levou em consideração as versões 2.2 e 2.3 do driver da NVidia, comparando CUDA e Opencl. Os resultados completos podem ser conferidos aqui: http://sisoftware.co.uk/index.html?dir=qa&location=gpu_opencl&langx=en&a=.
A idéia central é que o OpenCl está praticamente à altura do CUDA (tendo em vista os testes desse benchmark) em termos de desempenho, o que responde a uma grande crítica ao OpenCL.

Att,

Leonardo Chatain

02/10/09

Bom dia,
estou postando aqui hoje meu primeiro tutorial sobre OpenCL. Esse primeiro tutorial pretende ser uma iniciação, um hello world detalhado de como funciona uma aplicação OpenCl.
Futuros tutoriais aprofundar-se-ão em outros temas;
O tutorial pode ser encontrado aqui: OpenCl Tutorials - 1;

Até mais,

Leonardo Chatain

Last edited Feb 16, 2011 at 5:49 PM by bjurkovski, version 22

Comments

No comments yet.