===============================
 GRAPE $B%=%U%H%&%'%"%Q%C%1!<%8(B
 grapepkg version 1.3.6
===============================

grapepkg $B$O3F<o(B GRAPE $BMQ$N%i%$%V%i%j$d4IM}%=%U%H%&%'%"!"%I%-%e%a%s%H!"(B
$B%5%s%W%k%W%m%0%i%`$rE}9g$7$?%=%U%H%&%'%"%Q%C%1!<%8$G$9!#Ev<R3+H/$K$h$k(B
GRAPE-9, GRAPE-DR, GRAPE-7 $B$K2C$(!"(BGRAPE-6A, GRAPE-6BX, Phantom-GRAPE-5 $B8~$1$N%=(B
$B%U%H%&%'%"$bE}9g$5$l$F$$$^$9!#%*%W%7%g%s%Q%C%1!<%8(B CUDA G5/G6 $B$K$O(B
NVIDIA $B<R(B CUDA $B%G%P%$%9(B (GPU) $B$KBP1~$7$?(B G5 $B$*$h$S(B G6 $B8_49%i%$%V%i%j$b(B
$B4^$^$l$F$$$^$9!#(B

$B%Q%C%1!<%8$K$O0J2<$N$b$N$,4^$^$l$F$$$^$9!#(B

    ./00readme-j        --  $B%Q%C%1!<%8$N35MW@bL@(B
    ./00readme          --  00readme-j $B$N1Q8lHG(B
    ./doc/              --  $B%f!<%6%,%$%I!"%j%U%!%l%s%9%^%K%e%"%k!"$=$NB>$NJ8=q(B
    ./script/           --  $B%Q%C%1!<%84IM}MQ$N%D!<%k(B ($B%$%s%9%H!<%k!"%P%C%/%"%C%WEy(B)
    ./include           --  $B%X%C%@%U%!%$%k(B
    ./lib/              --  $B%i%$%V%i%j(B
    ./driver/           --  GRAPE-9, GRAPE-DR, GRAPE-7 $BMQ%G%P%$%9%I%i%$%P(B
    ./hibutil/          --  GRAPE-9, GRAPE-DR, GRAPE-7 $BMQ(B Host Interface Bridge (HIB)
                            $B$K4XO"$9$k3F<o%=%U%H%&%'%"(B
    ./g9/               --  GRAPE-9 $BMQ$N3F<o%=%U%H%&%'%"(B
    ./gdr/              --  GRAPE-DR $BMQ$N3F<o%=%U%H%&%'%"(B
    ./g7/               --  GRAPE-7 $BMQ$N3F<o%=%U%H%&%'%"(B
    ./g6a/              --  GRAPE-6A $BMQ$N3F<o%=%U%H%&%'%"(B
    ./g6bx/             --  GRAPE-6BX $BMQ$N3F<o%=%U%H%&%'%"(B
    ./pg5/              --  Phantom-GRAPE-5 $BMQ$N3F<o%=%U%H%&%'%"(B
    ./cuda/             --  CUDA $B%G%P%$%9MQ$N3F<o%=%U%H%&%'%"(B [CUDA G5/G6 $B%*%W%7%g%s%Q%C%1!<%8(B]
    ./sample/           --  $B%5%s%W%k%3!<%I(B
    ./sample/direct/    --  $BD>@\K!!"(Bshared timestep $B$K$h$kB?BN7W;;%3!<%I!#8@8l(B:C
    ./sample/directf/   --  $BD>@\K!!"(Bshared timestep $B$K$h$kB?BN7W;;%3!<%I!#8@8l(B:Fortran
    ./sample/vtc/       --  Barnes-Hut $B%D%j!<!"(Bshared timestep $B$K$h$kB?BN7W;;%3!<%I!#8@8l(B:C
    ./sample/s9/        --  $BD>@\K!!"(Bshared timestep $B$K$h$kB?BN7W;;%3!<%I!#8@8l(B:C
    ./sample/s8/        --  $BD>@\K!!"(Bindividual timestep $B$K$h$kB?BN7W;;%3!<%I!#8@8l(B:C
    ./sample/s8f/       --  $BD>@\K!!"(Bindividual timestep $B$K$h$kB?BN7W;;%3!<%I!#8@8l(B:Fortran
    ./sample/pairwise/  --  2 $BBN4VAj8_:nMQ$N1i;;@:EY$r8!::$9$k%3!<%I!#8@8l(B:C
    ./init/             --  $BN3;RJ,I[$N%9%J%C%W%7%g%C%H!#K\%Q%C%1!<%8$,(B GRAPE $B$NF0:n%F%9%H(B
                            $B$K;HMQ$7$^$9!#(B
    ./tmp/              --  $BK\%Q%C%1!<%8$,FbItE*$K;HMQ$7$^$9!#(B
    ./ttf/              --  GRAPE-7 model300, model600 $BMQ$N2sO)%G!<%?(B (.ttf) $B$3$N%G%#(B
                            $B%l%/%H%j$O%*%W%7%g%s$G$9!#<hF@$7$?(B grapepkg $B$N<oJL$K(B
                            $B$h$C$F$O!"$3$N%G%#%l%/%H%j$,4^$^$l$F$$$J$$>l9g$,$"$j$^$9!#(B
                            $B$3$N%G%#%l%/%H%jFb$N%U%!%$%k$OEv<R(B Web $B%5%$%H$h$jJLES(B
                            $B%@%&%s%m!<%I$G$-$^$9(B (http://www.kfcr.jp/grape7.html)$B!#(B


$BL\<!(B
====
1. $B%$%s%9%H!<%k$H;HMQ=`Hw(B
  1.1 $B%Q%C%1!<%8$N%$%s%9%H!<%k(B
  1.2 GRAPE-9 $B$N;HMQ=`Hw(B
  1.3 GRAPE-DR $B$N;HMQ=`Hw(B
  1.4 GRAPE-7 $B$N;HMQ=`Hw(B
  1.5 GRAPE-6A $B$N;HMQ=`Hw(B
  1.6 GRAPE-6BX $B$N;HMQ=`Hw(B
  1.7 Phantom-GRAPE-5 $B$N;HMQ=`Hw(B
  1.8 CUDA G5/G6 $B$N;HMQ=`Hw(B
2. $B%3%s%Q%$%k$H%j%s%/(B
3. $B4D6-JQ?t(B
  3.1 GDEVICE : $B7W;;;q8;$N3d$jEv$F(B
  3.2 GWARNLEVEL : $B7Y9p%a%C%;!<%8$N@)8f(B
4. $B%5%s%W%k%W%m%0%i%`(B
5. $B8_49@-(B
6. CUDA G5 $BFCM-$N3HD%5!G=(B
  6.1 Multiple Walks $BK!$X$NBP1~(B
7. CUDA G6 $BFCM-$N3HD%5!G=(B
  7.1 j $BN3;RE>Aw$N:GE,2=(B
8. $BF0:n3NG':Q$_$N%W%i%C%H%U%)!<%`(B
9. $B;29MJ88%(B
10. $B%i%$%;%s%9$HCx:n8"(B
11. $B<U<-(B
12. $B2~JQMzNr(B
13. $BO"Mm@h(B

1. $B%$%s%9%H!<%k$H;HMQ=`Hw(B
=========================

1.1 $B%Q%C%1!<%8$N%$%s%9%H!<%k(B
----------------------------

$BK\%Q%C%1!<%8$r%$%s%9%H!<%k$9$k$K$O0J2<$N%3%^%s%I$r<B9T$7!";X<($K=>$C$F(B
$B$/$@$5$$!#$J$*2<5-$N(B $pkgroot $B$O(B grapepkg $B$N:G>e0L%G%#%l%/%H%j$rI=$7$^$9!#(B

    $pkgroot/script/install

1.2 GRAPE-9 $B$N;HMQ=`Hw(B
----------------------

$B%[%9%H7W;;5!$r5/F0$7$J$*$9Kh$K!"0J2<(B (1)$B!A(B(3) $B$N<jB3$-$,I,MW$G$9!#(B

(1) [$BMW(B root $B8"8B(B] $B%G%P%$%9%I%i%$%P$N%$%s%9%H!<%k(B 

    $B%G%#%l%/%H%j(B $pkgroot/driver/ $B$K$F!"0J2<$N%3%^%s%I$r<B9T$7$F$/$@$5$$!#(B

        make installmodule

    $B$3$N%3%^%s%I$K$h$j!"(BGRAPE-9 $BMQ$N%G%P%$%9%I%i%$%P$,(B Linux $B%+!<%M%k(B
    $B$K%j%s%/$5$l$^$9!#@5>o$K%j%s%/$5$l$k$H!"(B/sbin/lsmod $B$N=PNO$K(B 
    hibdrv $B$H$$$&J8;zNs$,4^$^$l$k$h$&$K$J$j$^$9!#(B

(2) [$BMW(B root $B8"8B(B] MTRR $B$N@_Dj(B 

    Linux kernel $B%P!<%8%g%s(B 2.6.26 $B0J9_$r;HMQ$7$F$*$j!"%+!<%M%k$N(B page
    attribute table (PAT) $B%5%]!<%H$,M-8z2=$5$l$F$$$k>l9g$K$O!"$3$N@_Dj(B
    $B$OITMW$G$9!#<!$N<jB3$-$K?J$s$G$/$@$5$$!#(B

    Linux kernel $B%P!<%8%g%s(B 2.6.26 $BL$K~$r;HMQ$7$F$$$k!"$"$k$$$O%+!<%M%k(B
    $B$N(B page attribute table (PAT) $B%5%]!<%H$,L58z2=$5$l$F$$$k>l9g$K$O!"(B
    MTRR $B$N@_Dj$,I,MW$G$9!#%G%#%l%/%H%j(B $pkgroot/driver/ $B$K$F0J2<$N%3%^(B
    $B%s%I$r<B9T$7$F$/$@$5$$!#(B

        ./setmtrr

    $B$3$N%3%^%s%I$K$h$j!"%[%9%H7W;;5!$N(B MTRR (memory type range
    register) $B$,(B "write-combining" $B%b!<%I$K@_Dj$5$l$^$9!#$3$N@_Dj$K$h$C(B
    $B$F!"%[%9%H7W;;5!$+$i(B GRAPE $B$X$N(B Programmed I/O Write (PIOW) $BJ}<0$K(B
    $B$h$k%G!<%?E>Aw$NB.EY$,8~>e$7$^$9!#(B

    $BCm0U(B 1:
    PAT $B%5%]!<%H$NM-L5$O!"(BLinux kernel $B$N%X%C%@%U%!%$%k(B autoconf.h
    (e.g. /usr/src/linux/include/linux/autoconf.h) $B$G3NG'$G$-$^$9!#%U%!(B
    $B%$%kFb$GDj?t(B CONFIG_X86_PAT $B$,Dj5A$5$l$F$$$l$P(B PAT $B%5%]!<%H$OM-8z$K(B
    $B$J$C$F$$$^$9!#(B

    $BCm0U(B 2:
    $B%[%9%H7W;;5!$N@_Dj$K$h$C$F$O(B MTRR $B$r@_Dj$G$-$J$$$3$H$,$"$j$^$9(B ($B%a(B
    $B%b%j$r(B 4GB $B0J>eEk:\$7$F$$$k>l9g$d!"(B8 $B8D$9$Y$F$N(B MTRR $B$,B>$N(B PCI $B%G(B
    $B%P%$%9$K$h$C$F4{$K;HMQ$5$l$F$$$k>l9g$J$I(B)$B!#$3$N>l9g$K$O(B MTRR $B$N@_(B
    $BDj$O9T$o$J$$$^$^!"0J9_$9$Y$F$N<jB3$-$r9T$C$F2<$5$$!#(BMTRR $B$r@_Dj$7(B
    $B$?>l9g$KHf$Y$k$H%[%9%H7W;;5!$+$i(B GRAPE $B$X$NE>Aw@-G=$,Dc2<$7$^$9$,!"(B
    $B$=$l0J30$N$9$Y$F$N5!G=$O@5>o$KF0:n$7$^$9!#(B

(3) GRAPE-9 $B$NF0:n%A%'%C%/(B  

    $B0J2<$N%3%^%s%I$r<B9T$7$F$/$@$5$$!#(BGRAPE-9 $B$rMQ$$$F=ENOB?BN7W;;$r(B
    $B9T$$!"F@$i$l$?7k2L$H!"$"$i$+$8$aMQ0U$5$l$F$$$k@52r$H$rHf3S$7$^$9!#(B

    $pkgroot/script/check


1.3 GRAPE-DR $B$N;HMQ=`Hw(B
-----------------------

$B%[%9%H7W;;5!$r5/F0$7$J$*$9Kh$K!"0J2<(B (1)$B!A(B(4) $B$N<jB3$-$,I,MW$G$9!#(B

(1) [$BMW(B root $B8"8B(B] $B%G%P%$%9%I%i%$%P$N%$%s%9%H!<%k(B 

    $B%G%#%l%/%H%j(B $pkgroot/driver/ $B$K$F!"0J2<$N%3%^%s%I$r<B9T$7$F$/$@$5$$!#(B

        make installmodule

    $B$3$N%3%^%s%I$K$h$j!"(BGRAPE-DR $BMQ$N%G%P%$%9%I%i%$%P$,(B Linux $B%+!<%M%k(B
    $B$K%j%s%/$5$l$^$9!#@5>o$K%j%s%/$5$l$k$H!"(B/sbin/lsmod $B$N=PNO$K(B 
    hibdrv $B$H$$$&J8;zNs$,4^$^$l$k$h$&$K$J$j$^$9!#(B

(2) [$BMW(B root $B8"8B(B] MTRR $B$N@_Dj(B 

    Linux kernel $B%P!<%8%g%s(B 2.6.26 $B0J9_$r;HMQ$7$F$*$j!"%+!<%M%k$N(B page
    attribute table (PAT) $B%5%]!<%H$,M-8z2=$5$l$F$$$k>l9g$K$O!"$3$N@_Dj(B
    $B$OITMW$G$9!#<!$N<jB3$-$K?J$s$G$/$@$5$$!#(B

    Linux kernel $B%P!<%8%g%s(B 2.6.26 $BL$K~$r;HMQ$7$F$$$k!"$"$k$$$O%+!<%M%k(B
    $B$N(B page attribute table (PAT) $B%5%]!<%H$,L58z2=$5$l$F$$$k>l9g$K$O!"(B
    MTRR $B$N@_Dj$,I,MW$G$9!#%G%#%l%/%H%j(B $pkgroot/driver/ $B$K$F0J2<$N%3%^(B
    $B%s%I$r<B9T$7$F$/$@$5$$!#(B

        ./setmtrr

    $B$3$N%3%^%s%I$K$h$j!"%[%9%H7W;;5!$N(B MTRR (memory type range
    register) $B$,(B "write-combining" $B%b!<%I$K@_Dj$5$l$^$9!#$3$N@_Dj$K$h$C(B
    $B$F!"%[%9%H7W;;5!$+$i(B GRAPE $B$X$N(B Programmed I/O Write (PIOW) $BJ}<0$K(B
    $B$h$k%G!<%?E>Aw$NB.EY$,8~>e$7$^$9!#(B

    $BCm0U(B 1:
    PAT $B%5%]!<%H$NM-L5$O!"(BLinux kernel $B$N%X%C%@%U%!%$%k(B autoconf.h
    (e.g. /usr/src/linux/include/linux/autoconf.h) $B$G3NG'$G$-$^$9!#%U%!(B
    $B%$%kFb$GDj?t(B CONFIG_X86_PAT $B$,Dj5A$5$l$F$$$l$P(B PAT $B%5%]!<%H$OM-8z$K(B
    $B$J$C$F$$$^$9!#(B

    $BCm0U(B 2:
    $B%[%9%H7W;;5!$N@_Dj$K$h$C$F$O(B MTRR $B$r@_Dj$G$-$J$$$3$H$,$"$j$^$9(B ($B%a(B
    $B%b%j$r(B 4GB $B0J>eEk:\$7$F$$$k>l9g$d!"(B8 $B8D$9$Y$F$N(B MTRR $B$,B>$N(B PCI $B%G(B
    $B%P%$%9$K$h$C$F4{$K;HMQ$5$l$F$$$k>l9g$J$I(B)$B!#$3$N>l9g$K$O(B MTRR $B$N@_(B
    $BDj$O9T$o$J$$$^$^!"0J9_$9$Y$F$N<jB3$-$r9T$C$F2<$5$$!#(BMTRR $B$r@_Dj$7(B
    $B$?>l9g$KHf$Y$k$H%[%9%H7W;;5!$+$i(B GRAPE $B$X$NE>Aw@-G=$,Dc2<$7$^$9$,!"(B
    $B$=$l0J30$N$9$Y$F$N5!G=$O@5>o$KF0:n$7$^$9!#(B

(3) GRAPE-DR $B$N=i4|2=(B

    $B0J2<$N%3%^%s%I$r<B9T$7$F$/$@$5$$!#(BGRAPE-DR $B%A%C%W$d%\!<%I$N=i4|2=(B
    $B$H!"4JC1$JF0:n%F%9%H$r9T$$$^$9!#(B

        $pkgroot/script/config

    model450, model1800 $B$r$*;H$$$NJ}$X$NCm0U(B:
    model450, model1800 $B$N=i4|2=$K$O!">e5-%3%^%s%I$NBe$o$j$K!"$=$l$>$l(B

        $pkgroot/gdr/test/config450
        $pkgroot/gdr/test/config1800

    $B$r$*;H$$$/$@$5$$!#(B

(4) GRAPE-DR $B$NF0:n%A%'%C%/(B  

    $B0J2<$N%3%^%s%I$r<B9T$7$F$/$@$5$$!#(BGRAPE-DR $B$rMQ$$$F=ENOB?BN7W;;$r(B
    $B9T$$!"F@$i$l$?7k2L$H!"$"$i$+$8$aMQ0U$5$l$F$$$k@52r$H$rHf3S$7$^$9!#(B

    $pkgroot/script/check

    model450, model1800 $B$r$*;H$$$NJ}$X$NCm0U(B:
    model450, model1800 $B$N=i4|2=$K$O!">e5-%3%^%s%I$NBe$o$j$K!"$=$l$>$l(B

        $pkgroot/gdr/test/check450
        $pkgroot/gdr/test/check1800

    $B$r$*;H$$$/$@$5$$!#(B


1.4 GRAPE-7 $B$N;HMQ=`Hw(B
----------------------

$B%[%9%H7W;;5!$r5/F0$7$J$*$9Kh$K!"0J2<(B (1)$B!A(B(4) $B$N<jB3$-$,I,MW$G$9!#(B

(1) [$BMW(B root $B8"8B(B] $B%G%P%$%9%I%i%$%P$N%$%s%9%H!<%k(B 

    $B%G%#%l%/%H%j(B $pkgroot/driver/ $B$K$F!"0J2<$N%3%^%s%I$r<B9T$7$F$/$@$5$$!#(B

        make installmodule

    $B$3$N%3%^%s%I$K$h$j!"(BGRAPE-7 $BMQ$N%G%P%$%9%I%i%$%P$,(B Linux $B%+!<%M%k(B
    $B$K%j%s%/$5$l$^$9!#@5>o$K%j%s%/$5$l$k$H!"(B/sbin/lsmod $B$N=PNO$K(B 
    hibdrv $B$H$$$&J8;zNs$,4^$^$l$k$h$&$K$J$j$^$9!#(B

(2) [$BMW(B root $B8"8B(B] MTRR $B$N@_Dj(B 

    Linux kernel $B%P!<%8%g%s(B 2.6.26 $B0J9_$r;HMQ$7$F$*$j!"%+!<%M%k$N(B page
    attribute table (PAT) $B%5%]!<%H$,M-8z2=$5$l$F$$$k>l9g$K$O!"$3$N@_Dj(B
    $B$OITMW$G$9!#<!$N<jB3$-$K?J$s$G$/$@$5$$!#(B

    Linux kernel $B%P!<%8%g%s(B 2.6.26 $BL$K~$r;HMQ$7$F$$$k!"$"$k$$$O%+!<%M%k(B
    $B$N(B page attribute table (PAT) $B%5%]!<%H$,L58z2=$5$l$F$$$k>l9g$K$O!"(B
    MTRR $B$N@_Dj$,I,MW$G$9!#%G%#%l%/%H%j(B $pkgroot/driver/ $B$K$F0J2<$N%3%^(B
    $B%s%I$r<B9T$7$F$/$@$5$$!#(B

        ./setmtrr

    $B$3$N%3%^%s%I$K$h$j!"%[%9%H7W;;5!$N(B MTRR (memory type range
    register) $B$,(B "write-combining" $B%b!<%I$K@_Dj$5$l$^$9!#$3$N@_Dj$K$h$C(B
    $B$F!"%[%9%H7W;;5!$+$i(B GRAPE $B$X$N(B Programmed I/O Write (PIOW) $BJ}<0$K(B
    $B$h$k%G!<%?E>Aw$NB.EY$,8~>e$7$^$9!#(B

    $BCm0U(B 1:
    PAT $B%5%]!<%H$NM-L5$O!"(BLinux kernel $B$N%X%C%@%U%!%$%k(B autoconf.h
    (e.g. /usr/src/linux/include/linux/autoconf.h) $B$G3NG'$G$-$^$9!#%U%!(B
    $B%$%kFb$GDj?t(B CONFIG_X86_PAT $B$,Dj5A$5$l$F$$$l$P(B PAT $B%5%]!<%H$OM-8z$K(B
    $B$J$C$F$$$^$9!#(B

    $BCm0U(B 2:
    $B%[%9%H7W;;5!$N@_Dj$K$h$C$F$O(B MTRR $B$r@_Dj$G$-$J$$$3$H$,$"$j$^$9(B ($B%a(B
    $B%b%j$r(B 4GB $B0J>eEk:\$7$F$$$k>l9g$d!"(B8 $B8D$9$Y$F$N(B MTRR $B$,B>$N(B PCI $B%G(B
    $B%P%$%9$K$h$C$F4{$K;HMQ$5$l$F$$$k>l9g$J$I(B)$B!#$3$N>l9g$K$O(B MTRR $B$N@_(B
    $BDj$O9T$o$J$$$^$^!"0J9_$9$Y$F$N<jB3$-$r9T$C$F2<$5$$!#(BMTRR $B$r@_Dj$7(B
    $B$?>l9g$KHf$Y$k$H%[%9%H7W;;5!$+$i(B GRAPE $B$X$NE>Aw@-G=$,Dc2<$7$^$9$,!"(B
    $B$=$l0J30$N$9$Y$F$N5!G=$O@5>o$KF0:n$7$^$9!#(B

(3) [model300, model600 $B$N$_(B] FPGA $BFbIt2sO)$N%3%s%U%#%0%l!<%7%g%s(B

    $B%+!<%I>e$KEk:\$5$l$F$$$k1i;;MQ(B FPGA (pFPGA) $B$K!"=ENO1i;;2sO)(B 
    G5PIPE $B$r=q$-9~$_$^$9!#$3$N:n6H$O(B Model 100 $B$*$h$S(B Model 800 $B$K$O(B
    $BITMW$G$9!#(B

    $B%G%#%l%/%H%j(B $pkgroot/g7/config/ $B$K$F!"0J2<$N%3%^%s%I$r<B9T$7$F$/$@$5$$!#(B

        ./config [devid]

    $B$3$N%3%^%s%I$K$h$j!"%G%P%$%9(B ID $B$H$7$F(B devid $B$r;}$D%+!<%I$N(B pFPGA 
    $B$KFbIt2sO)$,=q$-9~$^$l$^$9!#0z?t(B devid $B$r>JN,$7$?>l9g$K$O%G%P%$%9(B 
    ID 0 $BHV$N%+!<%I$X=q$-9~$_$^$9!#%7%9%F%`$K%+!<%I$r(B 1 $BKg$7$+%$%s%9%H!<(B
    $B%k$7$F$$$J$$>l9g$K$O!"$=$N%+!<%I$N%G%P%$%9(B ID $B$O(B $BI,$:(B 0 $B$H$J$k$?$a!"(B
    $B0z?t$O>JN,$G$-$^$9!#J#?t$N%+!<%I$r%$%s%9%H!<%k$7$F$$$k>l9g$K$O!"=q(B
    $B$-9~$_$r9T$&%+!<%I$N%G%P%$%9(B ID $B$r3NG'$7!"%3%^%s%I(Bconfig $B$X$N0z?t(B
    $B$H$7$F;XDj$9$kI,MW$,$"$j$^$9!#%G%P%$%9(B ID $B$N3NG'$K$O%3%^%s%I(B 
    $pkgroot/script/lsgrape $B$rMQ$$$^$9!#(B

(4) GRAPE-7 $B$NF0:n%A%'%C%/(B  

    $B0J2<$N%3%^%s%I$r<B9T$7$F$/$@$5$$!#(BGRAPE-7 $B$rMQ$$$F=ENOB?BN7W;;$r(B
    $B9T$$!"F@$i$l$?7k2L$H!"$"$i$+$8$aMQ0U$5$l$F$$$k@52r$H$rHf3S$7$^$9!#(B

    $pkgroot/script/check

GRAPE-7 $B$N%$%s%9%H!<%kJ}K!!";HMQ=`Hw$K4X$9$k$h$j>\$7$$@bL@$O!V(BGRAPE-7 
$B%$%s%9%H!<%k%,%$%I!W(B($pkgroot/doc/g7install-j.pdf) $B$r;2>H$7$F$/$@$5$$!#(B
G5PIPE (GRAPE-7 $BMQ(B GRAPE-5 $B8_492sO)(B) $B$N;HMQK!$K$D$$$F$O!V(BG5PIPE $B%f!<%6(B
$B%,%$%I!W(B($pkgroot/doc/g5user-j.pdf) $B$r;2>H$7$F$/$@$5$$!#(B


1.5 GRAPE-6A $B$N;HMQ=`Hw(B
-----------------------

(1) [$BMW(B root $B8"8B(B] $B%G%P%$%9%I%i%$%P$N%$%s%9%H!<%k(B

    $B%G%#%l%/%H%j(B $pkgroot/g6a/pcimem/ $B$K$F!"0J2<$N%3%^%s%I$r<B9T$7$F$/$@$5$$!#(B

        make installmodule

    $B$3$N%3%^%s%I$K$h$j!"(BGRAPE-6A $BMQ$N%G%P%$%9%I%i%$%P$,(B Linux $B%+!<%M%k(B
    $B$K%j%s%/$5$l$^$9!#@5>o$K%j%s%/$5$l$k$H!"%3%^%s%I(B /sbin/lsmod $B$N=P(B
    $BNO$K(B pcimem $B$H$$$&J8;zNs$,4^$^$l$k$h$&$K$J$j$^$9!#(B

(2) $B=i4|2=(B

    $B%G%#%l%/%H%j(B $pkgroot/g6a/lib/ $B$K$F!"(B

        g6aconfig

    $B$r<B9T$7$^$9!#(B

(3) $BF0:n%A%'%C%/(B
    
    $B%G%#%l%/%H%j(B $pkgroot/g6a/s8 $B$K$F!"(B

        make s8
        s8

    $B$r<B9T$7!"(B$pkgroot/g6a/s8/sample.1k $B$HHf3S$7$^$9!#(B


1.6 GRAPE-6BX $B$N;HMQ=`Hw(B
------------------------

(1) [$BMW(B root $B8"8B(B] $B%G%P%$%9%I%i%$%P$N%$%s%9%H!<%k(B

    $B%G%#%l%/%H%j(B $pkgroot/g6bx/pcixmem/ $B$K$F!"0J2<$N%3%^%s%I$r<B9T$7$F$/$@$5$$!#(B

        make installmodule

    $B$3$N%3%^%s%I$K$h$j!"(BGRAPE-6BX $BMQ$N%G%P%$%9%I%i%$%P$,(B Linux $B%+!<%M%k(B
    $B$K%j%s%/$5$l$^$9!#@5>o$K%j%s%/$5$l$k$H!"%3%^%s%I(B /sbin/lsmod $B$N=P(B
    $BNO$K(B pcixmem $B$H$$$&J8;zNs$,4^$^$l$k$h$&$K$J$j$^$9!#(B

(2) $BF0:n%A%'%C%/(B
    
    $B%G%#%l%/%H%j(B $pkgroot/g6bx/s8 $B$K$F!"(B

        make s8
        s8

    $B$r<B9T$7!"(B$pkgroot/g6bx/s8/sample.1k $B$HHf3S$7$^$9!#(B


1.7 Phantom-GRAPE-5 $B$N;HMQ=`Hw(B
------------------------------

Phantom-GRAPE-5 $B$O%Q%C%1!<%8$N%$%s%9%H!<%k$r40N;<!Bh!"$9$0$K;HMQ$G$-$^$9!#(B
$B;HMQA0$N=i4|2=<jB3$-Ey$OITMW$G$9!#(B

1.8 CUDA G5/G6 $B$N;HMQ=`Hw(B
------------------------------

$BCm0U(B : CUDA G5/G6 $B$r$*;H$$D:$/$K$O(B GRAPE $B%=%U%H%&%'%"%Q%C%1!<%8$N(B CUDA
       G5/G6 $B%*%W%7%g%s(B $B$r$*Gc$$5a$aD:$/I,MW$,$"$j$^$9!#(B

(1) $B%$%s%9%H!<%k(B

NVIDIA $B<R$N(B CUDA $B3+H/4D6-$r%$%s%9%H!<%k$7$?$N$A$K!"K\%Q%C%1!<%8$r%$%s%9(B
$B%H!<%k$7$F$/$@$5$$!#(B

  $BJdB-(B : CUDA $B3+H/4D6-%$%s%9%H!<%k$N35MW(B

    1) NVIDIA $B<R$N%5%$%H$+$i0J2<$N(B 3 $B<o$N%=%U%H%&%'%"%Q%C%1!<%8$rF~<j$7$^$9!#(B
      a) Developer Drivers for Linux
      b) CUDA Toolkit
      c) GPU Computing SDK code samples

    2) $B%Q%C%1!<%8(B a, b $B$r%k!<%H8"8B2<$G<B9T$7!"$=$N;X<($K$7$?$,$C$F%$%s%9%H!<%k$r9T$$$^$9!#(B

    3) b $B$r%$%s%9%H!<%k$7$?%G%#%l%/%H%j$r(B $cudapath $B$H$*$/$H$-!"(B$cudapath/bin
       $B$K<B9T%Q%9(B PATH $B$rDL$7$^$9!#$^$?(B $cudapath/lib64 $B$KF0E*%i%$%V%i%j$N%m!<%I%Q%9(B
       LD_LIBRARY_PATH $B$rDL$7$^$9!#(B

       $BNc(B:

        csh> setenv /usr/local/cuda/bin:$PATH
        csh> setenv LD_LIBRARY_PATH /usr/local/cuda/lib64:$LD_LIBRARY_PATH

         sh> export PATH=/usr/local/cuda/bin:$PATH
         sh> export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

    4) $B%Q%C%1!<%8(B c $B$r<B9T$7!"$=$N;X<($K=>$C$F%$%s%9%H!<%k$r9T$$$^$9!#(B
       $B$3$N:n6H$K$O!"%k!<%H8"8B$OI,$:$7$bI,MW$G$O$"$j$^$;$s!#(B
  
  CUDA $B3+H/4D6-%$%s%9%H!<%k$N>\:Y<j=g$K$D$$$F$O(B NVIDIA $B<R$N;qNA$r;2>H$7$F$/$@$5$$!#(B

(2) CUDA G5/G6 $B$NF0:n%A%'%C%/(B

    $B0J2<$N%3%^%s%I$r<B9T$7$F$/$@$5$$!#(BGUDA G5/G6 $B$rMQ$$$F=ENOB?BN7W;;$r(B
    $B9T$$!"F@$i$l$?7k2L$NBEEv@-$r8!>Z$7$^$9!#(B

    $pkgroot/script/check_cuda

(3) $B=i4|2=(B

    $B%$%s%9%H!<%k$r40N;<!Bh!"$9$0$K;HMQ$G$-$^$9!#;HMQA0$N=i4|2=<jB3$-Ey$OITMW$G$9!#(B


2. $B%3%s%Q%$%k$H%j%s%/(B
=====================

$B%f!<%6$N:n@.$7$?%"%W%j%1!<%7%g%s%3!<%I$+$i3F<o(B GRAPE $B$r;HMQ$9$k$?$a$K(B
$B$O!"%"%W%j%1!<%7%g%s%W%m%0%i%`$K@)8f%i%$%V%i%j$N%X%C%@%U%!%$%k$r%$%s%/(B
$B%k!<%I$7!"$^$?@)8f%i%$%V%i%jK\BN$r%j%s%/$7$^$9!#(B

$B@)8f%i%$%V%i%j$N(B API $B$K$O(B GRAPE-5 $BAjEv$N5!G=$r;}$D(B G5 API $B$H!"(BGRAPE-6
$BAjEv$N5!G=$r;}$D(B G6 API $B$N(B 2 $B<oN`$,MQ0U$5$l$F$$$^$9!#5!<o$K$h$j!"$3$l$i(B
2 $B$D$N(B API $BN>J}$rMxMQ$G$-$k$b$N$H!"JRJ}$@$1$rMxMQ$G$-$k$b$N$,$"$j$^$9(B:

  - GRAPE-9 : $B%+!<%I$KEk:\$5$l$?(B FPGA $B$K=q$-9~$`2sO)$K$h$C$F!"MxMQ$G$-(B
              $B$k(B API $B$,JQ$o$j$^$9!#2sO)(B G5PIPE $B$,=q$-9~$^$l$F$$$k>l9g$K(B
              $B$O(B G5 API $B$N4pK\5!G=$r!"(B G6PIPE $B$,=q$-9~$^$l$F$$$k>l9g$K(B
              $B$O(B G6 API $B$N4pK\5!G=$rMxMQ$G$-$^$9$,!"6aK5N3;RC5:w$J$I0l(B
              $BItMxMQ$G$-$J$$5!G=$,$"$j$^$9!#(BG5 API, G6 API $B$N$9$Y$F$N(B
              API $B$r;HMQ$9$k$K$O!"2sO)(B G5nbPIPE ($B3+H/Cf(B)$B!"(BG6nbPIPE $B$,I,(B
              $BMW$G$9!#(B

  - GRAPE-DR : G5 API, G6 API $B$NN>J}$rMxMQ$G$-$^$9!#(B

  - GRAPE-7 : $B%+!<%I$KEk:\$5$l$?(B FPGA $B$K=q$-9~$`2sO)$K$h$C$F!"MxMQ$G$-(B
              $B$k(B API $B$,JQ$o$j$^$9!#2sO)(B G5PIPE $B$,=q$-9~$^$l$F$$$k>l9g$K(B
              $B$O(B G5 API $B$N4pK\5!G=$rMxMQ$G$-$^$9$,!"6aK5N3;RC5:w$J$I0l(B
              $BItMxMQ$G$-$J$$5!G=$,$"$j$^$9!#(BG5 API $B$N$9$Y$F$N(B API $B$r;H(B
              $BMQ$9$k$K$O!"2sO)(B G5nbPIPE $B$,I,MW$G$9!#(B

  - Phantom-GRAPE-5 : G5 API $B$N$_$rMxMQ$G$-$^$9!#(B

G5PIPE$B!"(BG5nbPIPE $B$N>\:Y$K$D$$$F$O!"$=$l$>$l!V(BG5PIPE $B%f!<%6%,%$%I!W(B
($pkgroot/doc/g5user-j.pdf) $B!V(BG5nbPIPE $B%f!<%6%,%$%I!W(B
($pkgroot/doc/g5nbuser-j.pdf) $B$r;2>H$7$F$/$@$5$$!#(B
G6PIPE$B!"(BG6nbPIPE $B$N>\:Y$K4X$9$k%I%-%e%a%s%H$O8=:_=`HwCf$G$9!#(B

$B3F(B GRAPE $B$N;HMQ;~$KI,MW$J%X%C%@$*$h$S%i%$%V%i%j!"$=$NB>$N%3%s%Q%$%k%*%W%7%g%sEy$O2<I=$NDL$j$G$9!#(B

----------------------------------------------------------------------------------------------------------
GRAPE $B$N<oJL(B       API   $B%X%C%@(B     $B%i%$%V%i%j(B                                               $B%*%W%7%g%sEy(B
----------------------------------------------------------------------------------------------------------
GRAPE-9(G6PIPE)    G6    g6util.h   libg96.a         libhib.a          libm.a
GRAPE-9(G6nbPIPE)  G6    g6util.h   libg96.a         libhib.a          libm.a
GRAPE-9(G5PIPE)    G5    g5util.h   libg95.a         libhib.a          libm.a
GRAPE-9(G5nbPIPE)  G5    g5util.h   libg95.a         libhib.a          libm.a

GRAPE-DR           G6    g6util.h   libgdr6.a        libhib.a          libm.a
                   G5    g5util.h   libgdr5.a        libhib.a          libm.a

GRAPE-7(G5PIPE)    G5    g5util.h   libg75.a         libhib.a          libm.a
GRAPE-7(G5nbPIPE)  G5    g5nbutil.h libg75nb.a       libhib.a          libm.a

GRAPE-6A           G6    g6util.h   libg6a6.a                          libm.a
                   G5    g5util.h   libg6a5.a                          libm.a

GRAPE-6BX          G6    g6util.h   libg6bx6.a       libg6bxhib.a      libm.a
                   G5    g5util.h   libg6bx5.a       libg6bxhib.a      libm.a

Phantom-GRAPE-5    G5    g5util.h   libpg55.a                          libm.a

CUDA G5/G6         G5    g5util.h   libcuda5.a       libcudart.so($BCm(B1) libm.a  libstdc++      -pthread
                                    libcuda5s.a($BCm(B2)
                   G6    g6util.h   libcuda6.a       libcudart.so      libm.a  libstdc++      -pthread
----------------------------------------------------------------------------------------------------------
($BCm(B1) CUDA Toolkit $B$r%$%s%9%H!<%k$7$?%Q%9$r(B $cudapath $B$H$*$/$H$-!"(B
      libcudart.so $B$O(B $cudapath/lib $B$KCV$+$l$^$9!#(B

($BCm(B2) libcuda5s.a $B$O?tCMI=8=$H$7$FC1@:EY(B(32-bit$BIbF0>.?tE@(B)$B$r;HMQ$7$^$9!#(B
      libcuda5.a $B$O5<;wG\@:EY(B($B2C;;(B64-bit,$B>h;;(B32-bit$BIbF0>.?tE@(B)$B$r;HMQ$7$^$9!#(B
      
$B%3%s%Q%$%k%*%W%7%g%s$NNc(B: 

    $B%"%W%j%1!<%7%g%s%3!<%I(B foo.c $B$+$i(B G5 API $B$r2p$7$F(B GRAPE-9 $B$r;HMQ(B
    cc -o foo foo.c -L$pkgroot/lib -I$pkgroot/include -lg95 -lm

    $B%"%W%j%1!<%7%g%s%3!<%I(B foo.c $B$+$i(B G6 API $B$r2p$7$F(B GRAPE-DR $B$r;HMQ(B
    cc -o foo foo.c -L$pkgroot/lib -I$pkgroot/include -lgdr6 -lhib -lm

    $B%"%W%j%1!<%7%g%s%3!<%I(B foo.c $B$+$i(B G5 API $B$r2p$7$F(B NVIDIA $B<R@=(B GPU $B$r;HMQ(B
    cc -pthread -o foo foo.c -L$pkgroot/lib -L$cudapath/lib -I$pkgroot/include -lcuda5 -lcudart -lm -lstdc++


3. $B4D6-JQ?t(B
===========

GRAPE-9, GRAPE-DR, GRAPE-7 $BMQ@)8f%i%$%V%i%j!"5Z$S(B Phantom-GRAPE-5, CUDA G5/G6 $B%i(B
$B%$%V%i%j$O!"0J2<$N4D6-JQ?t$K$h$C$F5sF0$r@)8f$G$-$^$9!#$J$*$3$l$i$N4D6-(B
$BJQ?t$O!"(BGRAPE-6A, GRAPE-6BX $BMQ$N@)8f%i%$%V%i%j$G$O;HMQ$5$l$^$;$s!#(B

3.1 GDEVICE : $B7W;;;q8;$N3d$jEv$F(B
--------------------------------

$B%7%9%F%`$KJ#?tKg$N%+!<%I$,%$%s%9%H!<%k$5$l$F$$$k>l9g!"(BGRAPE $B$N@)8f%i%$(B
$B%V%i%j$O$9$Y$F$N%+!<%I$r;HMQ$7$F7W;;$r9T$*$&$H$7$^$9!#$3$N5sF0$rJQ99$9(B
$B$k$K$O!";HMQ$7$?$$%+!<%I$N%G%P%$%9(B ID $B$r4D6-JQ?t(B GDEVICE $B$KNs5s$7$^$9!#(B

$BNc$($P0J2<$N@_Dj(B:

    csh> setenv GDEVICE "0 2 3"

     sh> export GDEVICE="0 2 3"

$B$K$h$j!"(BG5 $B$NI8=`4X?t$O%G%P%$%9(B ID 0 $BHV!"(B2 $BHV!"(B3 $BHV(B $B$N%+!<%I$r;HMQ$9$k(B
$B$h$&$K$J$j$^$9!#$3$N4D6-JQ?t$O$R$H$D$N%7%9%F%`$rB>$N%f!<%6$H6&F1$GMxMQ(B
$B$9$k:]$KLrN)$A$^$9!#(B

$B$J$*(B GRAPE-DR model1800/2000/4000, GRAPE-7 model 800, $B0lIt$N(B GPU
(GeForce GTX 295 $B$J$I(B) $B$K$D$$$F$O!"F10l$N%+!<%I$KEk:\$5$l$F$$$kJ#?t$N1i(B
$B;;%A%C%W$K!"JL8D$N%G%P%$%9(B ID $B$,3d$jEv$F$i$l$^$9!#$=$N$?$a$=$l$>$l$N%A%C(B
$B%W$rFHN)$7$?(B GRAPE $B$H$_$J$7!"JL8D$N7W;;$K;HMQ$9$k$3$H$b2DG=$G$9!#Nc$($P(B
$B%7%9%F%`$K(B 1 $BKg$N(B GRAPE-DR model 1800 $B$N$_$,%$%s%9%H!<%k$5$l$F$$$k>l9g!"(B
$B0J2<$N@_Dj(B:

    csh> setenv GDEVICE "0 2"

     sh> export GDEVICE="0 2"

$B$r9T$&$H!"%+!<%I>e$N(B 0 $BHV$*$h$S(B 2 $BHV$N(B GRAPE-DR $B%A%C%W$r;HMQ$7$F7W;;$,(B
$B9T$o$l$^$9!#;HMQ$5$l$F$$$J$$(B 1 $BHV$*$h$S(B 3 $BHV$N%A%C%W$O!"B>$N7W;;$K;HMQ(B
$B$9$k$3$H$,2DG=$G$9!#(B

3.2 GWARNLEVEL : $B7Y9p%a%C%;!<%8$N@)8f(B
-------------------------------------

$B7Y9p%a%C%;!<%8$N=PNO$r@)8f$7$^$9!#$3$NJQ?t$O(B 0, 1, 2, 3 $B$N$$$:$l$+$NCM(B
$B$r<h$jF@$^$9!#Bg$-$JCM$r@_Dj$9$k$[$I!"$h$j>\:Y$J%a%C%;!<%8$,=PNO$5$l$^(B
$B$9!#DL>oMxMQ$N:]$K$O(B 1 $B$+(B 2 $B$r@_Dj$9$k$3$H$r$*4+$a$7$^$9!#(B3 $B$O%G%P%C%0(B
$B;~$KJXMx$+$b$7$l$^$;$s!#(B0 $B$r@_Dj$9$k$HCWL?E*$J%(%i!<%a%C%;!<%80J30$N0l(B
$B@Z$N%a%C%;!<%8$,=PNO$5$l$J$/$J$j$^$9!#F0:n%F%9%HMQ%W%m%0%i%`(B (
$pkgroot/script/check) $B<B9T;~$K$O!"$3$NJQ?t$NCM$r(B 0 $B$K$O@_Dj$7$J$$$G$/(B
$B$@$5$$!#(B0 $B$K@_Dj$9$k$H%F%9%H$,@5>o$K9T$o$l$^$;$s!#(B


4. $B%5%s%W%k%W%m%0%i%`(B
=====================

$B3F<o(B GRAPE $B$r;HMQ$9$k%5%s%W%k%W%m%0%i%`$,%G%#%l%/%H%j(B $pkgroot/sample/ 
$B0J2<$KMQ0U$5$l$F$$$^$9!#86B'E*$K$O!"%j%s%/$9$k%i%$%V%i%j$rJQ99$9$k$@$1(B
$B$G!"F1$8%5%s%W%k%W%m%0%i%`$+$i3F<o$N(B GRAPE $B$rMQ$$$k$3$H$,$G$-$^$9!#$?(B
$B$@$7$9$Y$F$N%W%m%0%i%`$,$9$Y$F$N(B GRAPE $B$KBP1~$7$F$$$k$o$1$G$O$"$j$^$;$s!#(B

$BNc$($P(B $pkgroot/sample/direct/ $B$K$O!"D>@\K!$K$h$kB?BN7W;;$N%5%s%W%k%W%m(B
$B%0%i%`$,MQ0U$5$l$F$$$^$9!#%Q%C%1!<%8$N%$%s%9%H!<%k;~$K!"$3$N%5%s%W%k$N(B
$B3F<o(B GRAPE $B8~$1<B9T%U%!%$%k(B direct_g9, direct_gdr, direct_g7, direct_g6bx,
direct_pg5, direct_cuda $B$,@8@.$5$l$^$9(B ($B=g$K(B GRAPE-9, GRAPE-DR, GRAPE-7,
GRAPE-6BX, Phantom-GRAPE-5, CUDA G5 $B8~$1(B) $B$,!"(BGRAPE-6A $B8~$1$N<B9T%U%!%$(B
$B%k$O@8@.$5$l$^$;$s!#(B

$B3F%5%s%W%k%W%m%0%i%`$r%S%k%I$9$k$K$O(B 2 $BDL$j$NJ}K!$,$"$j$^$9(B:

$BJ}K!(B 1 : $B3F%G%#%l%/%H%jFb$K$"$k(B 00recompile $B$H$$$&%7%'%k%9%/%j%W%H$r<B(B
         $B9T$7$F$/$@$5$$!#3F%5%s%W%k%3!<%I$,%5%]!<%H$7$F$$$k$9$Y$F$N5!<o(B
         $B8~$1$N<B9T%U%!%$%k$,@8@.$5$l$^$9!#(B

$BJ}K!(B 2 : $B3F%G%#%l%/%H%jFb$G(B make $B$7$F$/$@$5$$!#(BGRAPE-DR $B8~$1$N<B9T%U%!(B
         $B%$%k$,@8@.$5$l$^$9!#B>$N%"!<%-%F%/%A%c8~$1$N%S%k%I$r9T$&$K$O(B
         Makefile $B$rE,59=q$-49$($F$/$@$5$$!#(BMakefile $BKAF,$K!"=$@5J}K!$K(B
         $B4X$9$k@bL@$,$"$j$^$9!#(B

5. $B8_49@-(B
=========

G5 API$B!"(BG6 API $B$O$=$l$>$l(B GRAPE-5$B!"(BGRAPE-6 $B$K8_49$N5!G=$rDs6!$7$^$9$,!"(B
$B5!<o$K$h$C$F$O0lIt<BAu$5$l$F$$$J$$5!G=$d!"@)8B$N$"$k5!G=$,$"$j$^$9!#(B
$B$3$N$h$&$J5!G=$K$D$$$F!"2<I=$K$^$H$a$^$9!#(B

G5 API $B$N8_49@-(B
-----------------------------------------------------------------------------------------------------------------
GRAPE $B$N<oJL(B        GRAPE-5$BAjEv$N(B  $B%]%F%s%7%c%k(B  $B%+%C%H%*%U(B     $B6a@\N3;R%j%9%H(B  $B%G%P%$%9Ev$j$N(B  $B%G%P%$%9Ev$j$N(B
                    $B1i;;@:EY(B       $B7W;;5!G=(B      $B4X?t(B           $B@8@.5!G=(B        $B%Q%$%W%i%$%s?t(B  $BN3;R%a%b%j%5%$%:(B
-----------------------------------------------------------------------------------------------------------------
$B%*%j%8%J%k(B GRAPE-5  -              $B$"$j(B          $B2DJQ(B           $B$"$j(B               96             131071

GRAPE-9(G5PIPE)     $B$"$j(B           $B$J$7(B          P3M$BMQ$K8GDj(B    $B$J$7(B            ($BD4@0Cf(B)         ($BD4@0Cf(B)
GRAPE-9(G5nbPIPE)   ($BD4@0Cf(B)

GRAPE-DR            $B$"$j(B           $B$"$j(B          P3M$BMQ$K8GDj(B    $B$J$7(B              256            4194304

GRAPE-7(G5PIPE)     $B$"$j(B           $B$J$7(B          P3M$BMQ$K8GDj(B    $B$J$7(B             20-120          4095-24570
GRAPE-7(G5nbPIPE)   $B$"$j(B           $B$J$7(B          P3M$BMQ$K8GDj(B    $B$"$j(B             20-120          4095-24570

GRAPE-6A            $B$"$j(B           $B$"$j(B          P3M$BMQ$K8GDj(B    $B$"$j(B               48              65536

GRAPE-6BX           $B$"$j(B           $B$"$j(B          P3M$BMQ$K8GDj(B    $B$"$j(B               48             262144

Phantom-GRAPE-5     $B$J$7(B           $B$J$7(B          $B$J$7(B           $B$J$7(B                4              65536

CUDA G5             $B$"$j(B           $B$"$j(B          P3M$BMQ$K8GDj(B    $B$J$7(B             8192            1048576
-----------------------------------------------------------------------------------------------------------------

G6 API $B$N8_49@-(B
-----------------------------------------------------------------------------------------------------------------
GRAPE $B$N<oJL(B        $B%]%F%s%7%c%k(B    $B%+%C%H%*%U(B      $B6a@\N3;R%j%9%H(B  $B:G6a@\N3;R(B  $B%G%P%$%9Ev$j$N(B  $B%G%P%$%9Ev$j$N(B
                    $B7W;;5!G=(B        $B4X?t(B            $B@8@.5!G=(B        $BC5:w5!G=(B    $B%Q%$%W%i%$%s?t(B  $BN3;R%a%b%j%5%$%:(B
-----------------------------------------------------------------------------------------------------------------
GRAPE-9(G6PIPE)     $B$J$7(B            $B$J$7(B            $B$J$7(B            $B$J$7(B         ($BD4@0Cf(B)       ($BD4@0Cf(B)
GRAPE-9(G6nbPIPE)   $B$"$j(B            P3M$BMQ$K8GDj(B     $B$"$j(B            $B$"$j(B         ($BD4@0Cf(B)       ($BD4@0Cf(B)

GRAPE-DR            $B$"$j(B            $B$J$7(B            $B$J$7(B            $B$"$j(B          256           1048576    

GRAPE-6A            $B$"$j(B            $B$J$7(B            $B$"$j(B            $B$"$j(B           48             65536

GRAPE-6BX           $B$"$j(B            $B$J$7(B            $B$"$j(B            $B$"$j(B           48            262144

CUDA G6             $B$"$j(B            $B$J$7(B            $B$J$7(B            $B$"$j(B         8192           1048576
-----------------------------------------------------------------------------------------------------------------

6. CUDA G5 $BFCM-$N3HD%5!G=(B
=========================

6.1 Multiple Walks $BK!$X$NBP1~(B
-----------------------------

CUDA G5 $B$O(B GPU $B8~$1%D%j!<K!$N@-G=$r8~>e$9$k$?$a$N%"%k%4%j%:%`(B Multiple
Walks $BK!$KBP1~$7$F$$$^$9!#(B

$B=>Mh$N(B GRAPE $B8~$1%D%j!<K!$G$O!"0lAH$N(B j $BN3;R%0%k!<%W$+$i0lAH$N(B i $BN3;R%0(B
$B%k!<%W$X$NNO$r(B GRAPE $B>e$G7W;;$7!"7k2L$r%[%9%H7W;;5!$X2s<}$9$k!"$H$$$&<j(B
$B=g$r7+$jJV$7$^$9!#(B

$B$3$l$KBP$7$F(B Multiple Walks $BK!$r:NMQ$7$?%D%j!<K!$G$O!"(Bj $BN3;R%0%k!<%W$+(B
$B$i(B i $BN3;R%0%k!<%W$X$NNO$N7W;;$r!"0lEY$KJ#?tAH!"(BGPU $B$XEjF~$7$^$9!#$3$&$9(B
$B$k$3$H$K$h$C$F(B GPU $B>e$N1i;;4o$r8zN($h$/MxMQ$G$-!"$^$?%[%9%H7W;;5!$H(B
GPU $B$H$N4V$N%G!<%?E>Aw8zN($b8~>e$5$;$k$3$H$,$G$-$^$9(B ($B>\:Y$K$D$$$F$O(B
[1] $B$r;2>H$7$F$/$@$5$$(B)$B!#(B

Multiple Walks $BK!$O_@ED9d;a(B ($BD9:jBg3X(B) $B$H;wD;7<8c;a(B ($BM}2=3X8&5f=j(B) $B$,(B
$BL?L>$7!"(BGPU $B8~$1%D%j!<K!$N@-G=8~>e$N$?$a$K:NMQ$7$?%"%k%4%j%:%`$G$9(B [1]$B!#(B
$B$3$N%D%j!<K!$rMQ$$$?7W;;$O(B 2009 $BG/$N(B Gordon Bell $B>^$r<u>^$7$^$7$?!#(B

CUDA G5 $B$K$O!"(BMultiple Walks $BK!$N$?$a$K!"?7$7$$(B API g5_flush_runs() $B$*(B
$B$h$S(B g5_flush_runsMC() $B$,DI2C$5$l$F$$$^$9!#$3$l$r0J2<$N<j=g$G;HMQ$9$k$H!"(B
Multiple Walks $BK!$K$h$k=ENO7W;;$r9T$($^$9!#(B

(1) $B4D6-JQ?t(B G5_MULTIWALK $B$NCM$r(B 1 $B$K@_Dj$9$k!#(B

(2) $B=>Mh$N(B G5 API $B$rMQ$$$F(B j $BN3;R$NE>Aw!"(Bi $BN3;R$NE>Aw!"=ENO1i;;$N<B9T!"(B
    $B1i;;7k2L$N2s<}$r9T$&%k!<%W$r!"(BNwalk $B2s<B9T$9$k(B ($B$3$3$G(B Nwalk $B$O(B
    GPU $B$X0lEY$KEjF~$9$k(B i, j $BN3;R%0%k!<%W%Z%"$N8D?t(B)$B!#(B

(3) g5_flush_runs() ($B$"$k$$$O(B g5_flush_runsMC()) $B$r8F$V!#(B

  $B5-=RNc(B:

    // (a) nwalk $B8D$N(B i,j $BN3;R%0%k!<%W%Z%"$KBP$7$F=>Mh$N=ENO1i;;<jB3$-$r5-=R$9$k(B
    for (w = 0; w < nwalk; w++) {
        g5_set_jp(0, n[w], mj[w], xj[w]);
        g5_set_eps2_to_all(eps*eps);
        g5_set_n(n[w]);
        for (off = 0; off < n[w]; off += npipe) {
            if (off + npipe > n[w]) {
                ni = n[w] - off;
            }
            else {
                ni = npipe;
            }
            g5_set_xi(ni, (double (*)[3])xj[w] + off);
            g5_run();
            g5_get_force(ni, (double (*)[3])(a[w] + off), p[w] + off);
        }
    }

    // (b) nwalk $B8D$N%Z%"$KBP$9$k1i;;$r(B GPU $B$XEjF~$7!"7k2L$r2s<}$9$k!#(B
    g5_flush_runs();

    (a) $B4D6-JQ?t(B G5_MULTIWALK $B$NCM$,(B 1 $B$K@_Dj$5$l$F$$$k$H!"(Bg5_set_jp()
        $B$d(B g5_runs() $B$r8F$S=P$7$?;~E@$G$ON3;R%G!<%?$NE>Aw$d=ENO1i;;$O9T(B
        $B$o$l$J$/$J$j$^$9!#$3$N;~E@$G$O!"E>Aw$d1i;;$KI,MW$J>pJs$,%[%9%H(B
        $B7W;;5!>e$N<B9TBT$A%-%e!<$K3JG<$5$l$^$9!#(B

    (b) g5_flush_runs() $B$r8F$S=P$7$?;~E@$G!"$=$l$^$G$K%-%e!<$K3JG<$5$l(B
        $B$F$$$?%G!<%?E>Aw$H=ENO1i;;$,<B9T$5$l!"$9$Y$F$N1i;;7k2L$,2s<}$5(B
        $B$l$^$9!#(B

Multiple Walks $BK!$r;HMQ$7$?%5%s%W%k%W%m%0%i%`$,(B
$pkgroot/sample/direct/multiwalktest.c $B$K$"$j$^$9!#$3$N%W%m%0%i%`$OD>@\(B
$BK!$K$h$k=ENOB?BN%7%_%e%l!<%7%g%s$r!"J#?t$NN3;RJ,I[$KBP$7$F<B9T$7$^$9!#(B

  $B<B9TNc(B:
      multiwalktest pl1k pl2k pl4k 
    $B$3$NNc$G$ON3;RJ,I[(B pl1k, pl2k, pl4k $B$KBP$9$k%7%_%e%l!<%7%g%s$r<B9T$7$^$9!#(B

Multiple Walks $BK!$r;HMQ$7$?%D%j!<K!$N%5%s%W%k%W%m%0%i%`$O8=:_=`HwCf$G$9!#(B

7. CUDA G6 $BFCM-$N3HD%5!G=(B
=========================

7.1 j $BN3;RE>Aw$N:GE,2=(B
----------------------

CUDA G6 $B$O(B GPU $B8~$1$N(B individual timestep $B%3!<%I$N@-G=$r8~>e$9$k(B
$B$?$a$N5!9=$rHw$($F$$$^$9!#(B

$B=>Mh$N(B GRAPE $B>e$N(B individual timestep $B%3!<%I$G$O!"(Bj $BN3;R$r(B GRAPE $B>e$N(B
$BN3;R%a%b%j$XE>Aw$9$k:]$K!"N3;R$r$R$H$D$:$D!"N3;R%a%b%j>e$NITO"B3$J%"%I%l(B
$B%9$XAw?.$7$^$9!#(B

GPU $B$rMQ$$$k>l9g$K$O!">e5-$NE>AwJ}K!$O:GE,$H$O8@$($^$;$s!#0J2<$K<($9<j(B
$B=g$K$h$C$F$9$Y$F$N(B j $BN3;R$rN3;R%a%b%j>e$NO"B3$7$?NN0h$X0lEY$NDL?.$GAw?.(B
$B$9$k$3$H$K$h$j!"%G!<%?E>Aw$N%*!<%P%X%C%I$rDc8:$7!"E>Aw8zN($r8~>e$G$-$^$9!#(B

(1) $B4D6-JQ?t(B G6_JPSORTED $B$NCM$r(B 1 $B$K@_Dj$9$k!#(B

(2) j $BN3;R$r%G%P%$%9$XAw?.$9$k$K$"$?$C$F$O!";~9o$N:G$b8E$$N3;R$+$i=g$K(B
    Nupdate $B8D$NN3;R$r!"N3;R%a%b%j$N@hF,$+$i$O$8$^$kO"B3$7$?%"%I%l%9$K(B
    $BAw?.$9$k!#$h$j6qBNE*$K$O!"(Bg6_set_j_particle() $B$r(BNupdate $B2s8F$S=P$9!#(B
    $B$3$N:]$K;XDj$9$k%"%I%l%9$O(B 0 $B$+$i(B (Nupdate-1) $B$^$G(B 1 $B$:$D%$%s%/%j%a(B
    $B%s%H$5$;$k!#(B

    $B$J$*$3$3$G!"(BNupdate $B$O!"D>A0$N%?%$%`%9%F%C%W$K$*$$$F6u4V:BI8$,99?7(B
    $B$5$l$?(B j $BN3;R$N8D?t$G$9!#(B

$B>e5-$N<j=g$G(B j $BN3;R$rAw?.$9$k$K$O!"%[%9%H7W;;5!>e$N(B j $BN3;R$r$"$i$+$8$a(B
$B;~9o$N=g$K%=!<%H$7$F$*$/I,MW$,$"$j$^$9!#$3$N$h$&$J=hM}$r9T$&%5%s%W%k%W(B
$B%m%0%i%`$,(B $pkgroot/sample/s8/sticky8.c $B$K$"$j$^$9!#$3$N%W%m%0%i%`$O>e(B
$B5-(B (2) $B$N<j=g$K=>$C$F(B j $BN3;R$rAw?.$9$k$?$a!"4D6-JQ?t(B G6_JPSORTED $B$NCM$r(B
1 $B$K@_Dj$9$k$H!"<B8z@-G=$,8~>e$7$^$9!#(B

$BCm0U(B : $B4D6-JQ?t(B G6_JPSORTED $B$NCM$r(B 1 $B$K@_Dj$7$?>uBV$G!">e5-(B (2) $B$N<j=g(B
       $B$rK~$?$5$:$K(B j $BN3;R$rAw?.$9$k$H!"@5$7$$7W;;7k2L$,F@$i$l$^$;$s!#(B


8. $BF0:n3NG':Q$_$N%W%i%C%H%U%)!<%`(B
=================================

    Fedora Core 5,10,11,13 x86_64
    CentOS 5.4, 6.2 x86_64

9. $B;29MJ88%(B
===========

[1] T. Hamada, R. Yokota, K. Nidadori, T. Narumi, K. Yasuoka, M. Taiji
    "42 TFlops Hierarchical N-body Simulations on GPUs with
    Applications in both Astrophysics and Turbulence", SC09 (ACM/IEEE) 2009.

10. $B%i%$%;%s%9$HCx:n8"(B
=====================

$BK\%=%U%H%&%'%"%Q%C%1!<%8$NMxMQ5vBz$O0J2<$KL@<($9$k$b$N$r=|$-(B MIT $B%i%$%;(B
$B%s%9(B ($B8e=R(B) $B$K=>$$$^$9!#$?$@$7(B $pkgroot/driver/ $B%G%#%l%/%H%j!"(B
$pkgroot/g6a/pcimem/ $B%G%#%l%/%H%j!"(B$pkgroot/g6bx/pcixmem/ $B%G%#%l%/%H%j(B
$B$K$D$$$F$O(B GNU General Public License (GPL) $B$K=>$$$^$9!#(B

$BK\%=%U%H%&%'%"$N%*%W%7%g%s%Q%C%1!<%8(B CUDA G5/G6 $B$N$_$KIUB0$9$k(B
$pkgroot/cuda/ $B%G%#%l%/%H%j$K$D$$$F$O!":FG[I[$r6X$8$^$9!#(B

$BK\%=%U%H%&%'%"%Q%C%1!<%8$NCx:n8"$O3t<02q<R(B K&F Computing Research ($B0J(B
$B2<(B KFCR $B<R$H5-$9(B) $B$K5"B0$7$^$9!#(B

$B$?$@$7(B Phantom-GRAPE-5$B!"$D$^$j(B $pkgroot/pg5/ $B%G%#%l%/%H%j$KCV$+$l$?%=!<(B
$B%9%3!<%I$N$&$A(B $pkgroot/pg5/phantom_g5mc.c $B$r=|$$$?ItJ,$K$D$$$F$O;wD;(B
$B7<8c(B ($BM}2=3X8&5f=j(B) $B$K5"B0$7$^$9!#(B$pkgroot/pg5/phantom_g5mc.c $B$K$D$$$F(B
$B$O(B KFCR $B<R$K5"B0$7$^$9!#(B

$B$^$?!"(B$pkgroot/g6a/ $B%G%#%l%/%H%j!"(B$pkgroot/g6bx/ $B%G%#%l%/%H%j$+$i(B 
$pkgroot/g6a/pcimem/ $B%G%#%l%/%H%j!"(B$pkgroot/g6bx/pcixmem/ $B%G%#%l%/%H%j(B
$B$r=|$$$?ItJ,$K$D$$$F$OJ!=E=S9,$K5"B0$7$^$9!#(B$pkgroot/driver/ $B%G%#%l%/(B
$B%H%j!"(B$pkgroot/g6a/pcimem/ $B%G%#%l%/%H%j!"(B$pkgroot/g6bx/pcixmem/ $B%G%#%l(B
$B%/%H%j$K$D$$$F$O@n0fFX$K5"B0$7$^$9!#(B

-------------------------------------------------------------------------------

MIT $B%i%$%;%s%9(B ($BF|K\8lLu(B)

$B0J2<$KDj$a$k>r7o$K=>$$!"K\%=%U%H%&%'%"$*$h$S4XO"J8=q$N%U%!%$%k(B ($B0J2<(B
$B!V%=%U%H%&%'%"!W(B)$B$NJ#@=$r<hF@$9$k$9$Y$F$N?M$KBP$7!"%=%U%H%&%'%"$rL5@)(B
$B8B$K07$&$3$H$rL5=~$G5v2D$7$^$9!#$3$l$K$O!"%=%U%H%&%'%"$NJ#@=$r;HMQ!"J#(B
$B<L!"JQ99!"7k9g!"7G:\!"HRI[!"%5%V%i%$%;%s%9!"$*$h$S(B/$B$^$?$OHNGd$9$k8"Mx!"(B
$B$*$h$S%=%U%H%&%'%"$rDs6!$9$kAj<j$KF1$8$3$H$r5v2D$9$k8"Mx$bL5@)8B$K4^$^(B
$B$l$^$9!#(B

$B>e5-$NCx:n8"I=<($*$h$SK\5vBzI=<($r!"%=%U%H%&%'%"$N$9$Y$F$NJ#@=$^$?$O=E(B
$BMW$JItJ,$K5-:\$9$k$b$N$H$7$^$9!#(B

$B%=%U%H%&%'%"$O!V8=>u$N$^$^!W$G!"L@<($G$"$k$+0EL[$G$"$k$+$rLd$o$:!"2?$i(B
$B$NJ]>Z$b$J$/Ds6!$5$l$^$9!#$3$3$G$$$&J]>Z$H$O!">&IJ@-!"FCDj$NL\E*$X$NE,(B
$B9g@-!"$*$h$S8"MxHs?/32$K$D$$$F$NJ]>Z$b4^$_$^$9$,!"$=$l$K8BDj$5$l$k$b$N(B
$B$G$O$"$j$^$;$s!#:n<T$^$?$OCx:n8"<T$O!"7@Ls9T0Y!"ITK!9T0Y!"$^$?$O$=$l0J(B
$B30$G$"$m$&$H!"%=%U%H%&%'%"$K5/0x$^$?$O4XO"$7!"$"$k$$$O%=%U%H%&%'%"$N;H(B
$BMQ$^$?$O$=$NB>$N07$$$K$h$C$F@8$8$k0l@Z$N@A5a!"B;32!"$=$NB>$N5AL3$K$D$$(B
$B$F2?$i$N@UG$$bIi$o$J$$$b$N$H$7$^$9!#(B

-------------------------------------------------------------------------------

MIT $B%i%$%;%s%9(B ($B86J8(B)

The MIT Software License:

Copyright (c) 2009-, K&F Computing Research Co.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

-------------------------------------------------------------------------------


11. $B<U<-(B
=======

$BK\%=%U%H%&%'%"%Q%C%1!<%8$N:n@.!"2~JQ$K$O0J2<$NJ}$N6(NO$rD:$-$^$7$?!#(B
$B$3$3$K46<U$N0U$rI=$7$^$9(B: $B;wD;(B $B7<8c;a(B ($BM}2=3X8&5f=j(B)$B!"_@ED9d;a(B ($BD9:jBg3X(B)


12. $B2~JQMzNr(B
===========

--------------------------------------------------------------------------------------------------
version  date         author            note
--------------------------------------------------------------------------------------------------
1.3.6    20-Jul-2012  AK                [GRAPE-9] $B%I%-%e%a%s%H$rDI2C!#F0:n8!>ZMQ%9%/%j%W%H$r6/2=!#(B

1.3.5    14-Jul-2012  AK                [GRAPE-9] G6 API $B$K%]%F%s%7%c%k7W;;5!G=!"6a@\N3;RC5:w5!G=!"(B
                                        $B:G6a@\N3;RC5:w5!G=!"%+%C%H%*%U5!G=$rDI2C!#(B

1.3.0    12-Feb-2012  AK                GRAPE-9 $B$KBP1~(B (G6 API)$B!#(B

1.2.4    02-Jan-2012  AK                [CUDA G5/G6] CUDA4.0 $B$KBP1~!#(B

1.2.3    25-Oct-2011  TF, AK            [GRAPE-DR] G5 API $B$K:G6a@\N3;RC5:w5!G=$rDI2C!#(B

1.2.1    14-Dec-2010  AK                [CUDA G5/G6] CUDA3.2 $B$KBP1~!#(B

1.2.0    22-Jun-2010  AK                $B%*%W%7%g%s%Q%C%1!<%8(B CUDA G5/G6 $B$rDI2C!#(B
                                        GRAPE-DR $BMQ(B G6 $B%i%$%V%i%j$K(B fortran $B%$%s%?%U%'!<%9$rDI2C!#(B
                                        $B%5%s%W%k%W%m%0%i%`$rA}6/$7!"4J0W%S%k%I%9%/%j%W%H$rDI2C!#(B

1.1.4    12-Mar-2010  TF                GRAPE-DR $BMQ(B G6 $B%i%$%V%i%j$NIT6q9g$r=$@5!#(B

1.1.3    23-Dec-2009  TF                GRAPE-DR model2000, model460$B$N?7$7$$@)8f2sO)$KBP1~!#(B
                                        GRAPE-DR $BMQ(B G5 API $B$K%+%C%H%*%U5!G=$rDI2C!#(B
                                        GRAPE-DR $BMQ(B G6 API $B$K8eJ}8_49@-$r0];}$9$k$?$a$N=$@5$rE&MW!#(B

1.1.2    28-Sep-2009  TF                $B%Q%C%1!<%84IM}MQ%D!<%k$r2~NI!#(B

1.1.1    19-Sep-2009  AK                $BJ8=q$N1Q8lHG$rDI2C!#(B

1.1.0    17-Sep-2009  AK, TF            GRAPE-DR model2000, model460 $B$KBP1~!#4IM}%9%/%j%W%H$r2~NI!#(B

1.0      17-Jul-2009  A. Kawai,         $B=iHG:n@.!#(Bgdrpkg0.32, g7pkg2.2.1, g6apkg1.1, g6bx,
                      T. Fukushige      phantom_limited_accuracy_080110 $B$r%Y!<%9$K2~JQ!"E}9g!#(B
--------------------------------------------------------------------------------------------------

13. $BO"Mm@h(B
=========

$B$*Ld$$9g$o$;$*$h$S%P%0%l%]!<%H$O2<5-$X$*4j$$$7$^$9(B:
K&F Computing Research (support@kfcr.jp)
