Visual Basic Foro
General => Códigos - Aportes - Recursos => Mensaje iniciado por: coco en Diciembre 18, 2015, 12:36:10 am
-
Este modulo se encarga de realizar operaciones aritmeticas "estandar" sobre vectores (array de 1 dimension) del tipo punto flotante (en nuestro caso, Single o Double), y obtener el resultado. La gracia está en que dichas operaciones, las realiza el CPU en 1 sola instruccion de assembler (y eventualmente en mucho menor tiempo que ejecutar una multiplicacion "estandar").
Ademas, el estandar de operaciones SSE permite realizar la misma operacion sobre 8 operandos del tipo "Single" (por ejemplo si se multiplica se realizarian las siguientes operaciones a la vez: A1*B1, A2*B2, A3*B3, A4*B4). En el caso de SS2, permite operar sobre 4 operandos, igual que el caso anterior, pero los mismos ahora son del tipo "Double".
Las operaciones incluyen: Suma, Resta, Multiplicacion, Division, Raiz cuadrada (solo del primer vector de operandos), Reciproco (solo del primer vector de operandos), Raiz cuadrada reciproca aproximada (solo del primer vector de operandos), Minimo y Maximo.
Quizas no sea muy util para el uso dia a dia, pero si en algun momento deberian realizar muchas operaciones aritmeticas con punto flotante, esto hará que funcione mucho mas rapido!
El ejemplo que inclui llama a las distintas operaciones sobre 2 vectores, de los cuales solamente le asigné el valor al primer elemento de cada uno (por eso se puede ver por ejemplo p1.v0 y p2.v0, donde p1 y p2 son los vectores, y v0 es el primer elemento de cada uno).
Ademas chequea si el CPU soporta SSE, SSE2 y SSE3 mediante la ejecucion del comando "CPUID" (ademas devuelve el CPUID, aunque no es necesario jaja).
Descargar SSE v0 (https://www.dropbox.com/s/4w7zuxas6420w97/sse.zip?dl=0)
Saludos!