Multi-core Architectures and Programming (Seminar)
Oliver Reiche, Sascha Roloff, Alexandru Tanase, Frank Hannig University of Erlangen-Nuremberg, Chair for Hardware/Software Co-Design
Administrative Trivia
● Tutors: ● Oliver Reiche ● Sascha Roloff ● Alexandru Tanase ● Frank Hannig
● Place: Room 02.133-128 Department of Computer Science Cauerstr. 11 91058 Erlangen
● Date/Time for seminar meetings: by arrangement
MAP Seminar | Roloff | FAU 2 GPU Hardware
● NVIDIA GPU ● codesigns30 GeForce 8800 GTS 512 ● codesigns42: GeForce GTX 285 ● codesigns43 GeForce GTX 285 ● codesigns46: 2x Tesla C2050 (ssh only)
● AMD GPU ● codesigns44: 1x AMD Radeon HD 6970 + 1x AMD Radeon HD 5870
● ARM GPU ● codesignsXX: 1x Arndaleboard (ARM Mali T604 GPU) ● codesignsXX: 1x Arndaleboard (ARM Mali T604 GPU)
MAP Seminar | Roloff | FAU 3 Hardware
● Tilera ● codesigns35: 1x Tilera TILEPro64
● PLAYSTATION 3 ● codesigni187: PS3 (Cell processor) ● codesigni188: PS3 (Cell processor)
● AMD CPU ● codesigns48: AMD Opteron Quad-Core (48 cores)
MAP Seminar | Roloff | FAU 4 Software
● NVIDIA CUDA 5.0 ● OpenCL 1.1
● AMD APP SDK 2.8 ● OpenCL 1.2
● Android Renderscript ● SDK 17 (Android 4.2.2) ● NDK 8e
● Cell SDK 3.1 ● OpenCL 1.1
● Tilera MDE 3.0 ● Threading Building Blocks 3.0
MAP Seminar | Roloff | FAU 5 Environment CUDA
● Set environment for CUDA ● module load cuda ● CUDA SDK (/opt/cuda/sdk) ● Examples (sources) in /opt/cuda/sdk/C/src ● Binaries in /opt/cuda/sdk/C/bin/linux/release ● Link against CUDA SDK ● Add the following to your Makefile:
# set directory for common.mk CUDA_SDK_PATH ?= /opt/cuda/sdk ROOTDIR := $(CUDA_SDK_PATH)/C/src ROOTBINDIR := bin ROOTOBJDIR := obj include $(CUDA_SDK_PATH)/C/common/common.mk tidy clobber clean: @rm -rf bin obj
MAP Seminar | Roloff | FAU 6 Environment OpenCL
● Set environment for OpenCL on NVIDIA GPUs ● module load cuda ● CUDA SDK (/opt/cuda/sdk) ● Examples (sources) in /opt/cuda/sdk/OpenCL/src ● Binaries in /opt/cuda/sdk/OpenCL/bin/linux/release ● Link against CUDA SDK ● Add the following to your Makefile:
# set directory for common.mk CUDA_SDK_PATH ?= /opt/cuda/sdk ROOTDIR := $(CUDA_SDK_PATH) ROOTBINDIR := bin ROOTOBJDIR := obj include $(CUDA_SDK_PATH)/OpenCL/common/common_opencl.mk tidy clobber clean: @rm -rf bin obj
MAP Seminar | Roloff | FAU 7 Environment Tilera
● Set environment for Tilera ● module load tilera
● Tilera MDE: ● /opt/tilera
MAP Seminar | Roloff | FAU 8 Login
● Each group gets one account (ssh + svn)
● External login only via gateway (codesigns14)
● For svn account, mail me your ssh pubkey
MAP Seminar | Roloff | FAU 9 Tentative Schedule
● Status meetings every two weeks
● Project presentations ● CW 29: 15.07.13 – 19.07.13 ● CW 30: 22.07.13 – 26.07.13
● Project: up to 2 students form a group
● Project presentation: ● Duration: (20+5) min ● Group presentation
● Language: English or German, as you like
MAP Seminar | Roloff | FAU 10 Available Topics Projects
● Each group selects and implements one application: ● Mathematical problems ● N-Queens ● Image processing ● Harris corner detection ● Optical flow calculation ● Viola Jones object detection ● Bilateral grid filter ● Local Laplacian ● Image compression ● JPEG, JPEG 2000 (complex) ● Partial differential equation (PDE) solver
● Suggest own topic, e.g. ● Neural networks, Ant simulation, Pattern matching ● Computational fluid dynamics (CFD)
MAP Seminar | Roloff | FAU 12 Projects
● Free choice of target architecture and programming environment: ● GPU / embedded GPU / Tilera / Cell B.E. / 48-core CPU ● CUDA / OpenCL / Renderscript / TBB / pthreads / Web programming
● Tell us your choice until Wednesday next week (29 May 2013)
MAP Seminar | Roloff | FAU 13