Difference between revisions of "Cruft"
Line 76: | Line 76: | ||
[[Image:cruft-EAM-profile.png|750px]] | [[Image:cruft-EAM-profile.png|750px]] | ||
[[Image:cruft-EAM.ppk]] | [[Image:cruft-EAM.ppk]] | ||
+ | |||
+ | [[Image:cruftOCL-eam-profile.png|750px]] | ||
+ | [[Image:cruftOCL-EAM.ppk]] | ||
LJ method: | LJ method: | ||
Line 81: | Line 84: | ||
[[Image:cruft-LJ-profile.png|750px]] | [[Image:cruft-LJ-profile.png|750px]] | ||
[[Image:cruft-LJ.ppk]] | [[Image:cruft-LJ.ppk]] | ||
+ | |||
+ | [[Image:cruftOCL-lj-profile.png|750px]] | ||
+ | [[Image:cruftOCL-LJ.ppk]] |
Revision as of 01:03, 8 March 2012
Background
Link | Code | Version | Machine | Date |
---|---|---|---|---|
LLNL website | git repo | Kyle Spafford fork | Keeneland | March 2012 |
Building Cruft
Modify the CmakeLists.txt and add these lines:
set (CMAKE_CXX_COMPILER tau_cxx.sh) set (CMAKE_C_COMPILER tau_cc.sh)
Then issue
cmake .
You can safety proceed when you encounter reversions.
Selective instrumentation of Loops:
BEGIN_INSTRUMENT_SECTION loops file="eam.c" routine="eamForce#" loops file="ljForce.c" routine="LJ#" END_INSTRUMENT_SECTION
For the Opencl code edit src-ocl/eam_kernels.c to move this section about the typedef CL_REAL_T real_t;
#if defined(cl_khr_fp64) // Khronos extension available? #pragma OPENCL EXTENSION cl_khr_fp64 : enable #elif defined(cl_amd_fp64) // AMD extension available? #pragma OPENCL EXTENSION cl_amd_fp64 : enable #endif
Then set:
export TAU_OPTIONS="-optVerbose -optTauSelectFile=`pwd`/select.tau" export TAU_MAKEFILE=<path to TAU>/x86_64/lib/Makefile.tau-icpc-pdt make
Running Cruft
./cruft -p ag -e -f data/8k.inp.gz
or
./cruft -f data/8k.inp.gz
And for OpenCL accelerated version:
tau_exec -T serial -opencl ./cruftOCL -p ag -e -f data/8k.inp.gz
tau_exec -T serial -opencl ./cruftOCL -f data/8k.inp.gz
Performance Data
EAM method:
LJ method: