sábado, 8 de dezembro de 2012

LAMMPS (CUDA/GTX580)

Uma simulação com mais de 2 milhões de atomos usando o potencial EAM em uma placa de vídeo GTX 580 no LAMMPS com CUDA.

--------------------------------------------------------------------------
RESULTADOS
--------------------------------------------------------------------------
--------------------------------------------------------------------------
Na GPU GTX 580 1.544 GHz CUDA
--------------------------------------------------------------------------
# CUDA: Activate GPU
# Using device 0: GeForce GTX 580
Lattice spacing in x,y,z = 3.615 3.615 3.615
Created orthogonal box = (0 0 0) to (289.2 289.2 285.585)
  1 by 1 by 1 MPI processor grid
Created 2022400 atoms
# CUDA: VerletCuda::setup: Allocate memory on device for maximum of 2030000 atoms...
# CUDA: Using precision: Global: 8 X: 8 V: 8 F: 8 PPPM: 8
Setting up run ...
# CUDA: VerletCuda::setup: Upload data...
# CUDA: Total Device Memory useage post setup: 1316.125000 MB
Memory usage per processor = 412.306 Mbytes
Step Temp E_pair E_mol TotEng Press
       0         1600     -7159296            0   -6741031.1    18704.149
      50    780.71972   -6943740.2            0   -6739647.9    52292.948
     100    798.21531   -6948340.9            0     -6739675    51478.838
Loop time of 19.7667 on 1 procs for 100 steps with 2022400 atoms

--------------------------------------------------------------------------
Na CPU AMD Phenom(tm) II X6 1100T
--------------------------------------------------------------------------
  2 by 3 by 1 MPI processor grid
Created 2022400 atoms
Setting up run ...
Memory usage per processor = 130.318 Mbytes
Step Temp E_pair E_mol TotEng Press
       0         1600     -7159296            0   -6741031.1    18704.149
      50    780.71972   -6943740.2            0   -6739647.9    52292.948
     100    798.21531   -6948340.9            0     -6739675    51478.838
Loop time of 108.489 on 6 procs for 100 steps with 2022400 atoms


Uma GTX580 usando OpenCL  é mais lento que o HD7970 para esse tipo de cálculo. O estranho é que só aparecem 256 cores no HD7970, e tinha visto em algum lugar que são 2048 para precisão simples e 512 para precisão dupla. Já o GTX580 aparecem os 512 cores.
--------------------------------------------------------------------------
GPU 0: GeForce GTX 580, 512 cores, 1.4/1.5 GB, 1.5 GHZ (Double Precision)
-------------------------------------------------------------------------
-

Initializing GPU and compiling on process 0...Done.
Initializing GPUs 0-1 on core 0...Done.

Setting up run ...
Memory usage per processor = 215.701 Mbytes
Step Temp E_pair E_mol TotEng Press
       0         1600     -3537961            0   -3331264.1    18704.139
      50    780.24619   -3431376.3            0   -3330579.7    52317.163
     100    798.09276   -3433696.3            0   -3330594.2    51480.829
Loop time of 17.601 on 1 procs for 100 steps with 999424 atoms


--------------------------------------------------------------------------
GPU 0: Tahiti, 256 cores, 2.8 GB, 1.1 GHZ (Double Precision)
GPU 1: AMD FX(tm)-8150 Eight-Core Processor, 8 cores, 3.6 GHZ (Double Precision)
--------------------------------------------------------------------------


Initializing GPU and compiling on process 0...Done.
Initializing GPUs 0-1 on core 0...Done.

Setting up run ...
Memory usage per processor = 215.69 Mbytes
Step Temp E_pair E_mol TotEng Press
       0         1600     -3537961            0   -3331264.1    18704.139
      50    780.24619   -3431376.3            0   -3330579.7    52317.163
     100    798.09276   -3433696.3            0   -3330594.2    51480.829
Loop time of 14.9655 on 1 procs for 100 steps with 999424 atoms


Olhando o desmpenho da GTX580(CUDA) vs HD7970(OpenCL post anterior) parece que o ganho está no clock da GPU, só com a aparencia não dá para concluir nada, mas está faltando cores no HD7970, está, desde os primordios sempre uma ATI teve mais cores do que as GPUs da NVIDIA, e essa que tinha um clock mais elevado na briga pelo desempenho.

domingo, 2 de dezembro de 2012

LAMMPS no AMD HD7970

Uma simulação com mais de 2 milhões de atomos usando o potencial EAM em uma placa de vídeo da XFX (AMD HD7970 GHz edition com 3GB), tudo em dupla precisão usando LAMMPS com pacote GPU.
(double precision/LAMMPS/AMD SDK APP 2.7/fglrx 9.01.8/Slackware64-current)


--------------------------------------------------------------------------
RESULTADOS
--------------------------------------------------------------------------
--------------------------------------------------------------------------
Na GPU HD7079 1.05GHz
--------------------------------------------------------------------------
--------------------------------------------------------------------------
- Using GPGPU acceleration for eam:
-  with 1 proc(s) per device.
-  with OpenCL Parameters for: GENERIC_OCL
--------------------------------------------------------------------------
GPU 0: Tahiti, 256 cores, 2.9 GB, 1.1 GHZ (Double Precision)
GPU 1: AMD FX(tm)-8150 Eight-Core Processor           , 8 cores, 3.6 GHZ (Double Precision)
--------------------------------------------------------------------------

Initializing GPU and compiling on process 0...Done.
Initializing GPUs 0-1 on core 0...Done.

Setting up run ...
Memory usage per processor = 422.869 Mbytes
Step Temp E_pair E_mol TotEng Press
       0         1600     -7159296            0   -6741031.1    18704.149
      50    780.71972   -6943740.2            0   -6739647.9    52292.948
     100    798.21531   -6948340.9            0     -6739675    51478.838
Loop time of 29.6983 on 1 procs for 100 steps with 2022400 atoms

--------------------------------------------------------------------------
Na CPU FX-8150 com over de 4.086GHz
--------------------------------------------------------------------------

  2 by 2 by 2 MPI processor grid
Created 2022400 atoms
Setting up run ...
Memory usage per processor = 96.6497 Mbytes
Step Temp E_pair E_mol TotEng Press
       0         1600     -7159296            0   -6741031.1    18704.149
      50    780.71972   -6943740.2            0   -6739647.9    52292.948
     100    798.21531   -6948340.9            0     -6739675    51478.838
Loop time of 93.0408 on 8 procs for 100 steps with 2022400 atoms


--------------------------------------------------------------------------
AMD SDK APP 2.7 PATCH
--------------------------------------------------------------------------
--- ./make/openclsdkdefs.mk-orig        2012-05-14 04:43:34.000000000 -0300
+++ ./make/openclsdkdefs.mk     2012-11-30 20:41:05.275285082 -0200
@@ -230,7 +230,7 @@
 ifdef MINGW
   LDFLAGS           += -L/usr/X11R6/lib
 else
-  LDFLAGS           += -lpthread -ldl -L/usr/X11R6/lib
+  LDFLAGS           += -lpthread -ldl -L/usr/X11R6/lib64 -lX11
 endif
   LD_LIBDIR_FLAG    := -L
   LD_SHARED_FLAG    := -shared  
--- ./samples/opencl/SDKUtil/include/SDKCommon.hpp-orig 2012-05-14 04:43:34.000000000 -0300
+++ ./samples/opencl/SDKUtil/include/SDKCommon.hpp      2012-11-30 14:38:11.671185385 -0200
@@ -18,6 +18,7 @@
 #include

 #include

 #include

+#include


 #include

 

--------------------------------------------------------------------------
GERYON - ocl_timer.h
--------------------------------------------------------------------------
+#define CL_USE_DEPRECATED_OPENCL_1_1_APIS
 #include "ocl_macros.h"
 #include "ocl_device.h"


sábado, 1 de dezembro de 2012

Afiando faca com o que tiver.

Se você tem facas boas, provavelmente tem pedras próprias para afiar-las. Eu tenho uma pedra #300, mas se tivesse umas facas profissionais provavelmente teria mais duas pedras. Uma pedra barata deve estar em torno de R$8,00, mas as importadas são bem mais caras. Obs.: As pedras japonesas de afiar só devem ser utilizadas com água, nada de óleo, perde a eficiência e ainda faz sujeira gordurosa.

Agora porque estou escrevendo isso, porque quando vou para casa de amigos para almoçar, sempre tem uma carne sendo cortada com uma faca que só corta manteiga na temperatura ambiente... hehe. Me dá uma agonia ... hehe. E eles não costumam ter pedras para afiar facas, nem mesmo as de R$8,00....
Acho que qualquer casa deva ter alguma xícara de cerâmica, pode ser prato ou outra coisa de cerâmica, eles não são esmaltados na parte de baixo e essa parte pode ser usada para afiar as facas.
Pesquisando na internet achei um video de 2008, não sei se esse é o primeiro.
Nem tinha visto o video deste tipo antes, eu tinha uma xícara que veio com um defeito nessa parte e ela ficava bamba em cima da mesa, aí tentei aplainar com uma lixa d'agua, gastei bem a lixa para ficar razoavel. Assim lembrava que era bem resistente como uma pedra e acabei usando na casa de um amigo depois de tentar afiar uma com uma chaira em vão, a xícara é muitoooo mais eficiente.
 
Dá para afiar com monte coisas, o problema é se deixam fazer com elas hehe. Restos de obras são uma maravilha para isso, já usei pedras de piso, pedras de parede, parte de trás dos azulejo.