Google Summer of Code : OpenCL in GEGL

Hello everyone, I`m going to use my personal blog to register my steps in the wonderful world of my GSoC project. I`m going to implement OpenCL support in the Generic Graphics Library.

For those who doesn`t know, OpenCL is a language which allows parallel and high-performance code to run in different platforms, like GPUs and Multi-Core CPUs. By the end of the project, I want GEGL`s (and GIMP) plugins/operations to be able to use OpenCL.

My proposal:

OpenCL in GEGL

“OpenCL (Open Computing Language) is a framework for writing programs that execute across heterogeneous platforms consisting of CPUs, GPUs, and other processors. OpenCL includes a language (based on C99) for writing kernels (functions that execute on OpenCL devices), plus APIs that are used to define and then control the platforms. OpenCL provides parallel computing using task-based and data-based parallelism.” [wikipedia]

My proposal is about making possible to write GEGL plug-ins in OpenCL. Of course you can always write your plug-in using any technology inside it (nothing forbides you from using OpenMP to parallelize a composition operation, for example). But the main point of the work is extending GeglBuffer to automatically make the memory transferences between the CPU and GPU.

An example:

So let’s suppose you have defined a graph in GEGL with a path of operations A, B and C. A and C can run at GPU, but we don’t have a GPU version for B.

input -> A (GPU) -> B (CPU) -> C (GPU) -> output

So, before entering A, we have to copy the input data to the GPU and do the processing in the GPU plug-in. After that, we copy data back to the main memory in order to B have its data, then we copy B’s output to the GPU again and run C, we need to have the output in the CPU of course, so we copy back C’s output to the main memory and finish.

Our objective is doing these memory transfers in a transparent way to the end-user of GEGL and implementing some operations in OpenCL.

Posted in gsoc | Tagged | 3 Comments

Animes: Legend of the Galactic Heroes

Legend of the Galactic Heroes

Legend of the Galactic Heroes

“Legend of the Galactic Heroes” foi um anime que eu vi nas últimas férias, antes de mais nada vou colocar alguns números sobre a série:

  • 2 filmes
  • OVA de 110 episódios
  • outro OVA com 52 episódios
  • infinitos mangás e livros

Eu vi o primeiro OVA (110 eps), que basicamente tem toda a história.

Pois bem, LOGH conta a história sobre um futuro distante em que a humanidade já colonizou a galáxia, mas a raça humana se organizou em dois governos que estão em guerra há tempos. A Aliança dos Planetas Livres, que é uma democracia, e o Império Galático, que é uma monarquia. Diferente de várias histórias sci-fi que eu já li/vi, não existem aliens em LOGH, o que o torna bastante parecido com as histórias da Fundação, de Asimov, em que também existe uma disputa  de poder, só que entre o (também) Império Galático e a Fundação.

Uma das partes mais interessante de LOGH é que ele não se prende aos estereótipos de Liberdade x Poder Absoluto, mas mostra uma democracia corrupta e decadente contra um império renovado pela figura de um novo imperador. Os dois personagens principais são o comandante da frota da Aliança dos Planetas Livres, Yang Wenli, e o comandante da frota Imperial, Reinhard von Lohengramm. Fica um embate pela simpatia do espectador por qual lado tomar partido, eu tomei pela Aliança, porque Yang Wenli é historiador e sem dúvida é um dos personagens mais interessantes que já vi em animes.

Mas me arrisco a dizer que o personagem principal do anime é a História, que vai sendo desfiada serenamente para o espectador a cada episódio, através das intrigas políticas e batalhas espaciais. Quando termina cada episódio você pensa: “É. não teria realmente outro modo das coisas acontecerem”. Claro que poderiam, mas o enredo é tão bem amarrado que realmente faz parecer que não há essa opção.

Outro detalhe é a trilha sonora, muito boa, composta basicamente por música clássica. Embora seja ambientado no futuro, LOGH tem muitos elementos da nobreza aristocrática do séc. XIX, o que é bem interessante também.

Enfim, para todos os que quiserem ver esse fantástico anime, só através de torrents ou sites especializados, já que ele é um tanto quanto obscuro e que sequer foi traduzido oficialmente para o inglês, mas que realmente vale a pena.

Posted in animes | 1 Comment

Uma visão do futuro

Eis que um certo dia, tive um sonho estranho, daqueles que não se entende no exato momento em que se acorda, mas que conforme passam os dias, as lacunas são preenchidas e o significado vai ficando mais claro – ou seria simplesmente invenção de uma mente que não suporta a idéia de um espaço vazio nesse fluxo contínuo de pensamentos que costumamos chamar de consciência? Sinceramente, não sei.

Nesse sonho eu não era mais eu, no sentido tradicional do termo, mas simplesmente uma presença que se movia pelo universo, não que pudesse fazer muita coisa para transformar minha vontade em ação, mas pelo menos conseguia ver o que se passava, o que já era bastante interessante por si só. Nesse estado quase etéreo, em um lampejo de vontade, tomei controle do meu sonho e me afastei da Terra, tão rápido quanto a luz. E no que foi uma fraçaõ de segundo para mim, o universo envelheceu alguns bilhões de anos.

Quando dei por mim, “Que estrelas são essas?”, pensei. Desconhecido – Longe no tempo e no espaço do pequeno planeta que havia vivido minha vida. Ele ainda existiria? Teria a humanidade esvanecido nas infinitas eras que se passaram? Foi quando perguntei para um cometa, do tipo velho e que tinha visto muita coisa por aí nas suas muitas eras de viagem intergalática, “Sr. Cometa, você viu algum humano por aí?”, perguntei.

“Umm, humano? Dê uma olhada por ali”. Segui a direção dada pela velha rocha e, para meu espanto, vi que a humanidade ainda existia! Raça de seres orgulhosos e fortes, havia superado todos os obstáculos e criado uma poderosa civilização que se estendia de uma ponta a outra da galáxia!

Mas se existe vontade nos sonhos, é uma ilusão, porque mal tive essa visão de glória, fui transportado mais uma vez para um futuro ainda mais remoto, além de qualquer compreensão humana. Vi sóis morrerem e virarem estrondosas Novas que destruíram tudo ao seu redor, mas mesmo elas são apenas uma faísca no grande universo. Lentamente, vi as cores do universo mudarem de um tom vermelho para o azul, se no início havia infinitas possibilidades, no fim tudo convergia para um único destino: O inverno termodinâmico.

Foi quando vi que só eu existia no universo e que fora a voz da minha consciência só havia o silêncio e a paz que só poderia existir fim de todas as coisas. A vida de um universo chega ao fim e junto com ela, o meu sonho.

Posted in histórias | 1 Comment

Quadrinhos: Sandman

Quem me conhece sabe que eu curto muito livros, de longe meu período áureo de leitura foi no ensino médio. Mal sabia eu que quando passasse no vestibular a vida ficaria ainda mais atarefada. Leio poucos livros em comparação com aquele tempo, o que é realmente uma pena.

Mas, junto com livros, compartilho o gosto por quadrinhos, principalmente as chamadas “Graphic Novels”, que basicamente é um nome bonito pra diferenciar os quadrinhos mais bem feitos e com história mais densa do que o clássico Zé Carioca que você vê nas bancas. Dentre todos os quadrinhos, nenhum me influenciou mais que Sandman, cuja história foi elaborada pelo – agora famoso – escritor Neil Gaiman, sem falar nos diversos desenhistas que marcaram presença durante a obra, cada um com seu estilo e todos muito bons.

Sandman não é só uma história, é uma demonstração que os quadrinhos podem ser de fato “boa literatura”, a história do senhor dos sonhos Morpheus e seus irmãos perpétuos (listando: Destino, Desesperto, Desejo, Delírio, Destruição, Morte e Sonho), não é só uma história sobre heróis e vilões, é uma ilustração dos aspectos da vida do próprio ser humano. Deixando de lado definições complexas, se Sandman não é arte, sinceramente, não sei o que pode ser.

Todos os dias me pego vendo algo do dia-a-dia e lembrando de algum episódio de Sandman, como o homem que  despois de uma aposta com a Morte fica imortal e vive atormentado pelas ações que fez durante a vida, mas não consegue desejar a sua morte, entre muitas histórias viajadas e interessantes. Portanto, posso dizer que Sandman num todo é uma daquelas obras que me marcou tão profundamente que não consigo imaginar minha forma de pensamento sem ele.

Por isso que no dia que eu tiver um “emprego de verdade” é uma prioridade pra mim finalmente comprar o quadrinho em vez de ficar lendo no computador :)

Posted in livros | 1 Comment

O terrível dia em que pulei carnaval

Um belo dia estava eu pacificamente andando pela unicamp, enquanto converso com um amigo recém-feito, e ele descobre que eu sou carioca. Pois sim, caro leitor, embora talvez não pareça, eu venho das terras úmidas e quentes do Rio de Janeiro. Aí ele diz: “Sério? Por que você não tem quase nenhum sotaque!”

Assim começa uma das mais estranhas sagas da minha vida, eis que depois dessa observação, comecei a pensar sobre se eu de fato era carioca, pois não sou exatamente aquilo que se pode chamar de “um típico produto das praias cariocas”, não tenho o jeito malandro, não gosto de praia, não gosto de sol, entre outros.

Mas foi aí que recebi um bizarro convite, que em condições normais seria imediatamente rejeitado: Ir ao famoso Monobloco (http://en.wikipedia.org/wiki/Monobloco) no carnaval. Pois bem, como melhor verificar se sou de fato carioca senão indo no bloco de carnaval mais famoso da cidade, quiçá do país?

Assim, fui no Monobloco. O negócio é basicamente assim, um conjunto infinito, monstruoso, impensável de pessoas se junta numa das entradas estações de metrô da cidade e vai andando até outra estação, um percurso tecnicamente pequeno, mas não tenha ilusões, isso é um bloco de carnaval, são 400.000 pessoas andando em uma rua. O bloco passa pela Av. Rio Branco, outrora, uma rua principal do centro financeiro da cidade, mas naquele dia uma via para o bloco, cheia de tambores, fitas e penduricalhos de carnaval. Passa também pela famosa Biblioteca Nacional, templo do conhecimento, mas naquele dia, uma arquibancanda de descanso para o cansado folião, sem falar nos vendedores de bugingas coloridas.

Pois bem, como funciona um bloco? Você, leitor nerd como eu, se pergunta. É assim, existe um bloco, que é uma banda em cima de uma estrutura de metal com um motor que… anda. As pessoas seguem pacificamente o bloco dançando e batucando até chegar no seu destino, quando a multidão se dispersa.

Não, assim é como *deveria* ser, ingênuo leitor, na verdade existe uma multidão suada que se espreme em direção ao “meião” do bloco. Essa é a prova definitiva da falta de racionalidade das pessoas, se as pessoas fossem racionais, agiriam como um gás. Cada partícula de folião iria para o seu lado e na média tudo estaria mais ou menos equilibrado, i.e. não muito apertado. Mas não, parece que uma das coisas mais legais do bloco é ficar apertado entre indivíduos desconhecidos mesmo.

Além disso, no União Soviética não é você que corre atrás do bloco, é o bloco que corre atrás de VOCÊ! ops, por União Soviética eu quis dizer Brasil mesmo. Porque é assim que acontece, o bloco anda ATRÀS da multidão, que por lerdeza ou latência fica parada, até que o grau de emprensamento cria uma onda de choque humana tão grande que pôe em dúvida a lei de Newton da impenetrabilidade e você simplesmente faz uma fuga em uma dimensão paralela e aparece uns metros adiante, essa é a única explicação racional que consigo obter para ter aparecido em uma posição diferente na fração de segundo enquanto piscava os olhos!

Enfim, assim termino meu relato do fatídico dia em que pulei o carnaval. Agora não se atrevam a fazer novamente a pergunta se sou carioca :p

Posted in trivialidades | Tagged | 2 Comments

Meta-post

Olá, meu nome é Victor Oliveira. Fico (in)feliz de dizer que essa tentativa de criar um blog se une a uma fila que já vira a esquina. A fila dos “blogs não-continuados”.

Assim sendo, desisti de criar um blog de computação, principalmente um em inglês, eu já tenho que escrever em inglês para os meus artigos e é o suficiente, *escrever em inglês é chato*. Portanto, sobre o que será esse blog? Boa pergunta, sobre basicamente qualquer coisa que eu achar relevante no meu dia-a-dia, ou seja, trivialidades :)

enjoy!

Posted in trivialidades | Leave a comment