README.dev 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. # StarPU --- Runtime system for heterogeneous multicore architectures.
  2. #
  3. # Copyright (C) 2009, 2010, 2011 Université de Bordeaux 1
  4. # Copyright (C) 2010, 2011 Centre National de la Recherche Scientifique
  5. #
  6. # StarPU is free software; you can redistribute it and/or modify
  7. # it under the terms of the GNU Lesser General Public License as published by
  8. # the Free Software Foundation; either version 2.1 of the License, or (at
  9. # your option) any later version.
  10. #
  11. # StarPU is distributed in the hope that it will be useful, but
  12. # WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  14. #
  15. # See the GNU Lesser General Public License in COPYING.LGPL for more details.
  16. Contents
  17. ========
  18. - Developer Warnings
  19. - Coding Conventions
  20. - Installing StarPU on Windows
  21. Developer Warnings
  22. ------------------
  23. They are enabled only if the STARPU_DEVEL environment variable is
  24. defined to a non-empty value, when calling configure.
  25. Installing StarPU on windows
  26. ----------------------------
  27. If you are building from a tarball downloaded from the website, you can skip the
  28. cygwin part.
  29. 1. Install cygwin
  30. http://cygwin.com/install.html
  31. Make sure the following packages are available:
  32. - (Devel)/subversion
  33. - (Devel)/libtool
  34. - (Devel)/gcc
  35. - (Devel)/make
  36. - your favorite editor (vi, emacs, ...)
  37. - (Devel)/gdb
  38. - (Archive)/zip
  39. - (Devel)/pkg-config
  40. 2. Install mingw
  41. http://sourceforge.net/projects/mingw/
  42. 3. Install hwloc (not mandatory)
  43. http://www.open-mpi.org/projects/hwloc
  44. 4. Install Microsoft Visual C++ Studio Express
  45. http://www.microsoft.com/express/Downloads
  46. Add in your path the following directories.
  47. (adjusting where necessary for the Installation location according to VC
  48. version and on 64 and 32bit Windows versions)
  49. On cygwin, with Visual C++ 2010 e.g.;
  50. export PATH="/cygdrive/c/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE":$PATH
  51. export PATH="/cygdrive/c/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin":$PATH
  52. On MingW, with Visual C++ 2010, e.g.;
  53. export PATH="/c/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE":$PATH
  54. export PATH="/c/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin":$PATH
  55. Try to call <lib.exe> and <link.exe> without any option to make sure these
  56. dump their help output, else no .def or .lib file will be produced.
  57. 5. Install GPU Drivers (not mandatory)
  58. 5.1 Install Cuda
  59. http://developer.nvidia.com/object/cuda_3_2_downloads.html
  60. You need to install at least the CUDA toolkit.
  61. libtool is not able to find the libraries automatically, you
  62. need to make some copies:
  63. copy c:\cuda\lib\cuda.lib c:\cuda\lib\libcuda.lib
  64. copy c:\cuda\lib\cudart.lib c:\cuda\lib\libcudart.lib
  65. copy c:\cuda\lib\cublas.lib c:\cuda\lib\libcublas.lib
  66. copy c:\cuda\lib\cufft.lib c:\cuda\lib\libcufft.lib
  67. copy c:\cuda\lib\OpenCL.lib c:\cuda\lib\libOpenCL.lib
  68. (and if the version of your CUDA driver is >= 3.2)
  69. copy c:\cuda\lib\curand.lib c:\cuda\lib\libcurand.lib
  70. Add the CUDA bin directory in your path
  71. export PATH=/cygdrive/c/CUDA/bin:$PATH
  72. Since we tell nvcc to build CUDA code with gcc instead of Visual studio,
  73. a fix is needed: c:\cuda\include\host_defines.h has a bogus CUDARTAPI
  74. definition which makes linking fail completely. Replace the first
  75. occurence of
  76. #define CUDARTAPI
  77. with
  78. #ifdef _WIN32
  79. #define CUDARTAPI __stdcall
  80. #else
  81. #define CUDARTAPI
  82. #endif
  83. While at it, you can also comment the __cdecl definition to avoid spurious
  84. warnings.
  85. 5.2 Install OpenCL
  86. http://developer.nvidia.com/object/opencl-download.html
  87. You need to download the NVIDIA Drivers for your version of
  88. Windows. Executing the file will extract all files in a given
  89. directory. The the driver installation will start, it will fail
  90. if no compatibles drivers can be found on your system.
  91. Anyway, you should copy the *.dl_ files from the directory
  92. (extraction path) in the bin directory of the CUDA installation
  93. directory (the directory should be v3.2/bin/)
  94. 5.3 Install MsCompress
  95. http://gnuwin32.sourceforge.net/packages/mscompress.htm
  96. Go in the CUDA bin directory, uncompress .dl_ files and rename
  97. them in .dll files
  98. cp /cygdrive/c/NVIDIA/DisplayDriver/190.89/International/*.dl_ .
  99. for i in *.dl_ ; do /cygdrive/c/Program\ Files/GnuWin32/bin/msexpand.exe $i ; mv ${i%_} ${i%_}l ; done
  100. If you are building from a tarball downloaded from the website, you can skip the
  101. autogen.sh part.
  102. 6. Start autogen.sh from cygwin
  103. cd starpu-trunk
  104. ./autogen.sh
  105. 7. Start a MinGW shell
  106. /cygdrive/c/MinGW/msys/1.0/bin/sh.exe --login -i
  107. 8. Configure, make, install from MinGW
  108. If you have a non-english version of windows, use
  109. export LANG=C
  110. else libtool has troubles parsing the translated output of the toolchain.
  111. cd starpu-trunk
  112. mkdir build
  113. cd build
  114. ../configure --prefix=$PWD/target --disable-default-drand48 \
  115. --with-hwloc=<HWLOC installation directory> \
  116. --with-cuda-dir=<CUDA installation directory> \
  117. --with-cuda-lib-dir=<CUDA installation directory>/lib/Win32 \
  118. --with-opencl-dir=<CUDA installation directory>
  119. make
  120. make install
  121. Also convert a couple of files to CRLF:
  122. sed -e 's/$/'$'\015'/ < README > $PWD/target/README.txt
  123. sed -e 's/$/'$'\015'/ < AUTHORS > $PWD/target/AUTHORS.txt
  124. sed -e 's/$/'$'\015'/ < COPYING.LGPL > $PWD/target/COPYING.LGPL.txt
  125. 9. If you want your StarPU installation to be standalone, you need to
  126. copy the DLL files from hwloc, Cuda, and OpenCL into the StarPU
  127. installation bin directory, as well as MinGW/bin/libpthread*dll
  128. cp <CUDA directory>/bin/*dll target/bin
  129. cp <HWLOC directory>/bin/*dll target/bin
  130. cp /cygdrive/c/MinGW/bin/libpthread*dll target/bin
  131. and set the StarPU bin directory in your path.
  132. export PATH=<StarPU installation directory>/bin:$PATH