Difference between revisions of "GPU621/DPS921 Student Resources"

From CDOT Wiki
Jump to: navigation, search
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{GPU621/DPS921 Index | 20141}}
+
{{GPU621/DPS921 Index | 20177}}
  
 
The purpose of this page is to share useful information that can help groups with their projects.
 
The purpose of this page is to share useful information that can help groups with their projects.
Line 77: Line 77:
 
* long hand
 
* 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
 
** gc++ -I /usr/local/gcc/tbb41_20130613oss/include/ -o xxx -L/usr/local/gcc/tbb41_20130613oss/lib/ia32/gcc4.1/ -ltbb xxx.cpp
 +
* poor error messages on lambda expressions
  
 
== OpenCL ==
 
== OpenCL ==
Line 88: Line 89:
 
** 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
 
+
==OpenMP==
 +
===Visual Studio===
 +
Compiling OpenMP programs in visual studio 2012
 +
====enabling openmp====
 +
# Right-click on "Project Solution" under "Solution Explorer" and select "Properties"
 +
# On the properties pane, select "Configuration Properties" -> "C/C++" -> "Language"
 +
# On the details page, make sure "Open MP Support" is set to "Yes (/openmp)"
 +
====setting environemnt variables====
 +
# Right-click on "Project Solution" under "Solution Explorer" and select "Properties"
 +
# On the properties pane, select "Configuration Properties" -> "Debugging"
 +
# On the details page, make sure "Environment" has "OMP_NUM_THREADS=4;" in it
 
= Workshop Notes =
 
= Workshop Notes =
 
==Platforms==
 
==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==
 
*
 
*
 
= Assignment Notes =
 
==Shared Memory==
 
==Message Passing==
 

Latest revision as of 06:36, 13 September 2017


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
  • poor error messages on lambda expressions

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