Difference between revisions of "GPU621/DPS921 Student Resources"

From CDOT Wiki
Jump to: navigation, search
Line 88: Line 88:
 
** Fermi cards - nvcc -code=sm_20 _arch=compute_20
 
** Fermi cards - nvcc -code=sm_20 _arch=compute_20
 
** nvcc opencl.cpp -lOpenCL
 
** nvcc opencl.cpp -lOpenCL
 
= Workshop Notes =
 
==Platforms==
 
* executing an alias when creating a typescript
 
** add . ~/.bash_profile inside the script before invoking the alias
 
** [http://stackoverflow.com/questions/15968053/using-alias-in-shell-script using alias in a shell script]
 
 
 
==OpenMP==
 
==OpenMP==
== Visual Studio==
+
===Visual Studio===
 
Compiling OpenMP programs in visual studio 2012
 
Compiling OpenMP programs in visual studio 2012
 
====enabling openmp====
 
====enabling openmp====
Line 106: Line 99:
 
# On the properties pane, select "Configuration Properties" -> "Debugging"
 
# On the properties pane, select "Configuration Properties" -> "Debugging"
 
# On the details page, make sure "Environment" has "OMP_NUM_THREADS=4;" in it
 
# On the details page, make sure "Environment" has "OMP_NUM_THREADS=4;" in it
 +
= Workshop Notes =
 +
==Platforms==
 +
* executing an alias when creating a typescript
 +
** add . ~/.bash_profile inside the script before invoking the alias
 +
** [http://stackoverflow.com/questions/15968053/using-alias-in-shell-script using alias in a shell script]
 +
 +
==OpenMP==
 +
*
  
 
= Assignment Notes =
 
= Assignment Notes =
 
==Shared Memory==
 
==Shared Memory==
 
==Message Passing==
 
==Message Passing==

Revision as of 11:52, 22 January 2014


GPU621/DPS921 | Participants | Groups and Projects | Resources | Glossary

The purpose of this page is to share useful information that can help groups with their projects.

Installation Notes

Cilk Plus

Tips for building from source (tested on Fedora 19)

Works but gets a "Segmentation fault (core dumped)" when testing out w1.cilk.cpp when cilk_for loops > 3 times.

  • download snapshot gcc-2427776 (2013-05-20) (current version on matrix as of 2014-01-17)
  • configure using:
    • /path/to/configure --prefix=/path/to/installation --enable-languages="c,c++" --disable-multilib

Configuration

Linux

  • add to .bash_profile
    • alias gc++="/usr/local/gcc/gcc-cilk/bin/g++ -fcilkplus -ldl -lcilkrts"
    • export LD_LIBRARY_PATH=/path/to/cilkplus-installation/lib:$LD_LIBRARY_PATH
    • source /path/to/tbbvars.sh ia32 -ltbb

TBB

Configuration

Linux

  • copy source script to your home directory
    • cp /usr/local/gcc/tbb/bin/tbbvars.sh
    • change permissions chmod u+x tbbvars.sh
  • long hand notes
    • add to LD_LIBRARY_PATH /usr/local/gcc/tbb41_20130613oss/lib/ia32/gcc4.1
    • needed for dynamic loaded libraries
    • use ldd <binary> to check
    • -v option sends intermediate commands to cerr

OpenMP

Configuration

Linux

  • add to gcc compile command -fopenmp

OpenCL

CUDA

  • Visual Studio 2012 Ultimate | Select Software Downloads | Go To Visual Studio 2012 Ultimate 1.49GB | Download iso | Burn, if error burn again | Finally, install
  • CUDA Downloads
  • Installation add the following environment variables
    • CUDA_PATH - points to the default version
    • CUDA_PATH_INC
    • CUDA_PATH_LIB
  • Visual Studio IDE Settings for .cu files
    • Project -> Build Customizations -> Select CUDA 5.5
    • Source file -> Properites -> Item Type -> CUDA C/C++
    • Project -> Properties -> Configuration -> VC++ Directories -> $(CUDA_PATH_INC); $(CUDA_PATH_LIB);
    • Project -> Properties -> Configuration -> Linker -> Input -> cudart.lib

MPI

Compilation Notes

Cilk Plus

Linux

  • gc++ -o xxx xxx.cpp

TBB

Linux

  • source tbbvars.sh ia32
  • gc++ -o xxx xxx.cpp -ltbb
  • long hand
    • gc++ -I /usr/local/gcc/tbb41_20130613oss/include/ -o xxx -L/usr/local/gcc/tbb41_20130613oss/lib/ia32/gcc4.1/ -ltbb xxx.cpp

OpenCL

  • AMD
    • cl opencl.cpp "%AMDAPPSDKROOT%"lib/x86/OpenCL.lib
    • Environmental Variables
      • INCLUDE add "C:\Program Files\AMD_APP_SDK\2.9\include";
      • LIB add "C:\Program Files\AMD APP SDK\2.9\lib\x86";

CUDA

  • compiling with nvcc
    • Fermi cards - nvcc -code=sm_20 _arch=compute_20
    • nvcc opencl.cpp -lOpenCL

OpenMP

Visual Studio

Compiling OpenMP programs in visual studio 2012

enabling openmp

  1. Right-click on "Project Solution" under "Solution Explorer" and select "Properties"
  2. On the properties pane, select "Configuration Properties" -> "C/C++" -> "Language"
  3. On the details page, make sure "Open MP Support" is set to "Yes (/openmp)"

setting environemnt variables

  1. Right-click on "Project Solution" under "Solution Explorer" and select "Properties"
  2. On the properties pane, select "Configuration Properties" -> "Debugging"
  3. On the details page, make sure "Environment" has "OMP_NUM_THREADS=4;" in it

Workshop Notes

Platforms

OpenMP

Assignment Notes

Shared Memory

Message Passing