McLabEn 64 bits

McLabEn 64 bits

Atualizamos o software  McLabEn, nosso software construído para experiências em algoritmos numéricos, para incluir capacidade de gráficos 3D em sistemas operacionais de 64 bits.

McLabEn é uma ferramenta escrita por nós alguns há alguns anos para pesquisas com algoritmos de propagação de incerteza, recuperação de dados a partir de imagens escaneadas e figuras e caminhos fechados em grafos orientados.

Essas ferramentas e o Manual em PDF estão disponíveis na Documentação

A figura baixo mostra como é simples usar o McLabEn para resolver equações diferenciais:

Download McLabEn 64bits

Download McLabEn 32 bits

Single Line Reader

Single Line Reader

Cansado de ler longos textos na tela de seu computador, ter que passar o texto para frente usando o scroll e se perder no processo?

Edmundo Mizutani, associado CMSoft e aluno da Universidade de Tohoku apresenta uma forma inovadora de ler utilizando um software de renderização dinâmica de texturas baseado em OpenGL e um rastreador de movimento de webcam.

O vídeo abaixo demonstra esse novo conceito.  Visite a página do Single Line Reader (CMSoft).

Estudo de caso: Convolução usando memória __local

Estudo de caso: Convolução de imagens usando memória __local

 

CMSoft apresenta um novo estudo de caso no tutorial de OpenCL: como otimizar a convolução de imagens usando as memórias __constant e __local. Acelerações de 25% ou mais podem ser obtidas. O código-fonte está disponível para demonstrar como implementar a otimização na prática. A figura abaixo mostra a ideia por trás do caching de dados em memória __local:

Visite o  estudo de caso CMSoft sobre convolução de imagens.

 

Demonstração da Transformada de Hough

Demonstração da Transformada de Hough Generalizada acelerada com OpenCL

 

Continuando nossos esforços de pesquisa sobre reconhecimento de padrões, desenvolvemos uma ferramenta destinada a demonstrar os princípios da Transformada de Hough Generalizada (THG). A THG é uma ferramenta poderosa para identificar formas complexas na presença de incerteza e ruído nas bordas dos objetos a serem identificados. 

 

 

Um requisito exigido para este Produto, entretando, foi a necessidade de o software executar todas as suas funções em sistemas sem OpenCL instalado. Isto é possível mas há uma queda em performance, conforme mostra a figura abaixo. São comparados os tempos de preprocessamento para a mesma imagem:

 

Download CMSoft’s Generalized Hough Transform Demonstration

 

OpenCLTemplate 1.151

 

Download OpenCLTemplate

 

Lista de alterações

 

– Removed Event keeping in CLCalc.Program to avoid memory leak;
– PREVIEW FEATURE: Added GLFont class to GLRender to allow creation of 3D Font models (GLFont and GLFont.Draw3DString – check Doxygen docs for details);
– Added render-text-to-Bitmap functions to make generation of texture bitmaps easier;
– Added ApplyTexture to CLGLInteropFunctions in order to create OpenGL textures in a format suitable for CL/GL interoperation;

– Added Image2D constructor to allow creation of OpenCL images from OpenGL texture buffers;
– Textures can now be applied to GLRender.GLVBOModels and images can be retrieved using CLGL interop;
– Added a new GLVBOModel creator from equations which does not require color equations;
– GLVBOModel objects which don’t have a Color VBO now use the .ModelColor property to set its color.

Transformada de Hough em OpenCL

Transformada de Hough Generalizada acelerada com OpenCL

 

A Transformada de Hough Generalizada é uma  técnica robusta para detectar formas geométricas na presença de ruído e oclusão. O algoritmo, contudo, pode ser muito lento quando muitos parâmetros, tais como rotação e escala, precisam ser considerados.

Segue uma previsão de um estudo de caso CMSoft em que iremos apresentar algoritmos em OpenCL para executar a transformada de Hough generalizada usando como entrada uma forma arbitrária definida pelo usuário (fornecida por meio de uma imagem em preto-e-branco), assim como o preprocessamento necessário. 

No vídeo abaixo, conseguimos detectar 37 moedas com uma médis de 7 fps (detecção de círculos em tempo real) usando a Transformada de Hough Generalizada acelerada com OpenCL. 

Estamos refinando alguns aspectos importantes do estudo de caso e o apresentaremos em algumas semanas.

 

OpenCL/GL interop framework

OpenCL/GL Interop Framework 

 

A interoperação entre OpenCL e OpenGL permite aos programadores executar operações complexas de manipulação de dados diretamente na memória da GPU. CMSoft apresenta para os desenvolvedores a nova ferramenta GLRender dentro do OpenCLTemplate que automatiza a criação da cena em OpenGL acoplada a um contexto de OpenCL derivado. 

É possível criar e exibir buffer objects do OpenGL e modificá-los usando a interoperação com OpenCL com muito pouco esforço. Visite o tutorial do framework CMSoft OpenCL/GL Interop (GLRender).

O vídeo abaixo mostra como criar facilmente um ambiente 3D interativo usando o Visual C# Express 2008 e OpenCLTemplate: 

 

 

 

A figura a seguir mostra a imagem do fractal Mandelbrot obtida com a capacidade de interoperação entre OpenCL e OpenGL:

 

 

 

OpenCLTemplate 1.150 Disponível

 

Download OpenCLTemplate

 

Lista de alterações

– Adicionado o namespace OpenCLTemplate.CLGLInterop com GLRender, GLRender.GLVBOModel e CLGLInteropFuncs;
– Adicionado novo construtor que permite criar variáveis OpenCL a partir de buffers OpenGL.

Editor de Fotos 3D

Editor e Conversor de Figuras Estereoscópicas CMSoft

 

Uma tendência promissora no campo da fotografia é a possibilidade de tirar fotos 3D para visualização realística com a utilização de câmeras 3D. Entretanto, poucas pessoas possuem o equipamento especial necessário para visualizar essas figuras ou programas de computador para manipular e converter essas imagens para formatos mais populares.

O Editor e Conversor de Figuras Estereoscópicas CMSoft é uma ferramenta destinada a visualizar fotografias 3D usando OpenGL para desenhar o par estereoscópico em uma forma animada chamada “wiggle stereo”, com capacidade de zoom e extração de partes da imagem. Usuários avançados também podem criar seus próprios filtros personalizados em linguagem C usando a tecnologia OpenCL.

É possível fazer o download de imagens .MPO para teste a partir da galeria de fotos 3D.

O vídeo abaixo mostra como o software permite visualizar arquivos .JPS, .MPO ou pares estereoscópicos .JPG em 3D sem a necessidade de nenhum equipamento especial, e também converter arquivos .MPO para o formato .JPS. Visite também a documentação do programa.

 

 

Download do CMSoft Stereo Editor

Instalação: simplesmente descompacte o programa em uma pasta e execute o aplicativo.

OpenCLTemplate utilizando Cloo

OpenCLTemplate utilizando Cloo

 

Informamos que OpenCLTemplate agora utiliza as referências de função e classes do Cloo, em objetivo combinado do Cloo para disponibilizar todos os recursos disponíveis do OpenCL para programadores e do OpenCLTemplate para criar um ambiente OpenCL fácil de usar e poderoso. Faça download do novo OpenCLTemplate integrado com Cloo, visite o tutorial CMSoft de OpenCL e sinta-se à vontade para comunicar quaisquer problemas por e-mail ou usando nosso forum.

Essa conversão permitirá, num futuro próximo, integração com OpenTK, um conjunto de referências OpenGL, para criar um ambiente de interoperação OpenGL/OpenCL que será fácil de usar e que permitirá aos programadores manipular facilmente os objetos OpenGL diretamente na memória da GPU. 

Se desejar saber mais sobre os recursos, visite: 

OpenCLTemplate no Google Code para código fonte e últimas modificações;
Cloo em SourceForge;
OpenTK webpage.

 

Lista de alterações OpenCLTemplate 1.140

Download OpenCLTemplate

– Todos os recursos portados para Cloo;
– OpenCLTemplate.exe agora lista as extensões suportadas pelos devices.

OpenCL no MATLAB

OpenCL no MATLAB

 

Foi desenvolvida uma nova toolbox para o MATLAB, o conhecido software matemático da MathWorks. No momento, o projeto encapsulou apenas buffers e kernels, o que provavelmente limita a utilização de memória na GPU. Por exemplo, não há menção quanto ao uso de objetos tipo imagem.

Aparentemente, existe a ideia de substituir rotinas de operação com matriz e executá-las na GPU mas a programação de kernels inevitavelmente envolverá usar o C99 do OpenCL.

O tutorial de OpenCL CMSoft cobre a programação em C99 com vários exemplos em C# e certamente será  útil para o desenvolvedor que for utilizar OpenCL em MATLAB ou em outra plataforma pois o código OpenCL será o mesmo.

Mais informações sobre o toolbox do MATLAB está disponível aqui.

Por que processamento paralelo?

Por que processamento paralelo?

 

O processamento paralelo irá se tornar o novo padrão? Programadores precisarão explicitar partes seriais e paralelas do código para obter máxima performance em arquiteturas futuras? Por que Larrabee e Fusion são um marco no modelo paralelo?

CMSoft traz uma comparação entre os modelos serial e paralelo, padrões abertos e proprietários e arquiteturas atuais e futuras para explicar por que e como a indústria está indo na direção do OpenCL e da programação paralela. 

Veja abaixo acelerações que foram obtidas usando processamento paralelo e visite a seção CMSoft Por que processamento paralelo?

 

 

Na parte de código, estamos preparando funcionalidades de busca em texto e processamento de linguagem e o código estará disponível no repositório em Fevereiro.