Archivos Mensuales: septiembre 2009

CUDA – Programar en la GPU

CUDA es una idea no tan nueva, pero que se esta haciendo familiar a los usuarios de GNU/Linux. Este sistema permite llevar algunos calculos desde la “lenta” CPU hasta la “mandada a hacer para los calculos en coma flotante” GPU. Lo anterior se realiza mediante funciones y claro, se debe instalar el compilador de nvidia y un par de herramientas mas.

Las tarjetas soportadas las pueden encontrar aqui.

En este momento existe soporte para varios lenguajes de programación, aqui encuentran el modulo para python.

Un ejemplo sencillo en este lenguaje seria:

#Inicializar
import pycuda.driver as pycuda

pycuda.init()
assert cuda.Device.count() >= 1

cudaDev = cuda.Device(0)
cudaCTX = dev.make_context()

#Copiar a memoria de GPU
import numpy
a = numpy.random.randn(4,4)
a = a.astype(numpy.float32)
a_gpu = cuda.mem_alloc(a.size * a.dtype.itemsize)
pycuda.memcpy_htod(a_gpu, a)

#Decirle al Kernel que ejecute
mod = cuda.SourceModule("""
  __global__ void addOne(float *a)
  {
    int idx = threadIdx.x + threadIdx.y*4;
    a[idx]+= 1;
  }
  """)
#Traer los datos de vuelta
func = mod.get_function("addOne")
func(a_gpu, block=(4,4,1))

Base de datos en el disco – Sqlite

Sqlite es una base de datos que podemos manejar como un archivo, esto nos ahorra bastante tiempo en el caso que necesitemos almacenar abundante información en un archivo de texto por ejemplo o estemos pensando en el uso de la base de datos solo para el computador que ejecuta la aplicación.

Las interacciones se realizan por medio se sencillas funciones (similares a las utilizadas por los GBD como Postgresql) y claro, cada lenguaje tiene asociada una libreria o modulo en particular.

En el caso de python, el modulo es este

Crea juegos facilmente con Pygame

Pygame es un modulo de Python que permite la creacion de videojuegos (y otras aplicaaciones tambien), tal modulo está basado en la libreria SDL con la particularidad de agregar muchas facilidades de programación. Al corresponder a un lenguaje interpretado no podemos diseñar software demasiado grande, pero sin duda es un punto de partida para los amantes de los videojuegos.

El modulo pygame viene incluido en todas las distribuciones Linux y existe una versión para windows.

Manual de funciones de Pygame (Español)

Y este es el post de un juego que tengo hace tiempo

Emesene 1.5 final con bombos y platillos

La verdad de las cosas es que en los foros de desarrollo emesene 1.5 estaba bastante cocinado, personalmente venia testeando todas las liberaciones, finalmente me encuentro que en la pagina principal del proyecto el anuncio está mas que claro.

En fedora solo tenemos que instalarlo con:

yum install emesene

Para Ubuntu en cualquiera de sus sabores, he agregado un repositorio en una entrada antigua.

Netbeans en Fedora

Si quieres tener la última versión del IDE mas completo y consume-recursos de la historia, primero debes instalar los paquetes:

java-1.6.0-openjdk y java-1.6.0-openjdk-devel.

Ambos se instalan desde el terminal con:

yum install java-1.6.0-openjdk
yum install java-1.6.0-openjdk-devel

Las versiones pueden variar según estén disponibles en los repositorios. Luego de esto ejecutamos el instalador de netbeans y voila!

Juego SinaGame 0.1.9

La especialidad de la casa, un juego que realizé en el verano y no lo había posteado luego de no pagar el hosting la perdida de informacion.

No lo he vuelto a mirar, pero el juego esta escrito en python, y posee su version para windows y Linux.

Descarga para Linux

Descarga para Windows

El codigo fuente lo pueden encontrar en la versión Linux.