CUDA. Moritz Wild, Jan-Hugo Lupp. Seminar Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg

Größe: px
Ab Seite anzeigen:

Download "CUDA. Moritz Wild, Jan-Hugo Lupp. Seminar Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg"

Transkript

1 CUDA Seminar Multi-Core Architectures and Programming 1

2 Übersicht Einleitung Architektur Programmierung 2

3 Einleitung Computations on GPU 2003 Probleme Hohe Kenntnisse der Grafikprogrammierung nötig Unterschiedliche Terminologie GPGPU (General Purpose Computation on Graphics Processing Unit) wird populärer (z.b. durch BrookGPU) CUDA (Compute Unified Device Architecture) wird 2007 von Nvidia veröffentlicht 3

4 Einleitung CUDA ermöglicht leichten Einstieg in GPGPU Programmierung in C/C++ Hohe Zugänglichkeit Hochleistungsberechnungen mit modernen Grafikkarten 4

5 Einleitung Anwendungsbeispiele: Arithmetische Berechnungen Lineare Algebra Partielle Differentialgleichungen Hohe Bandbreite Sortierungsalgorithmen Visuelle Berechnungen Grafik Bildbearbeitung Tomografie 5

6 Einleitung Peak Performance 6

7 Architektur Bei der GPU wird ein erheblicher Teil der Chipfläche für ALUs genutzt Durch intelligente Speicherorganisation benötigt eine GPU keinen allzu großen Cache 7

8 Architektur Host CPU Device GPU Kernel: Eine vom Host aufgerufene Funktion, die auf dem Device ausgeführt wird. 8

9 Architektur Ein Kernel wird von einem Grid ausgeführt Ein Grid besteht aus mehreren Blöcken Ein Block fasst mehrere Threads zusammen Blöcke werden je nach Ressourcen sequentiell oder parallel verarbeitet ( alter Code auch auf aktuellen GPUs nutzbar) 9

10 Architektur Thread Block Thread ID (2D, 3D) Threads kommunizieren über Shared Memory (nur innerhalb eines Blocks) Ein Thread kann auf Register zugreifen falls diese nicht ausreichen, steht auch Local Memory zur Verfügung 10

11 Architektur Grid of Thread Blocks Block ID (2D) Global, Constant und Texture Memory können vom Host gelesen und beschrieben werden Blöcke (Threads) können in Global Memory schreiben jedoch vom Constant und Texture Memory nur lesen 11

12 Architektur Aufbau eines Multiprozessors 8 Streamprozessoren auf einem Multiprozessor (auf neuesten Architekturen bereits 32) 32 Threads werden als Warp zusammengefasst Blockgröße wird daher normalerweise als vielfaches eines Warps gewählt 12

13 Architektur SIMD Architektur Single Instruction Multiple Data Prozessoren führen in einem Takt den gleichen Befehl aus, jedoch auf unterschiedlichen Daten Multiprozessor kann mehrere Blöcke bearbeiten Device Memory umfasst Global, Local, Constant und Texture Memory 13

14 Programmierung CUDA-API Runtime API: High-level-API Aufrufe werden in Grundbefehle zerlegt und von der Driver API verwaltet Driver API: Low-level-API Komplexer, dafür vielseitiger 14

15 Programmierung Programmierer muss sich für eine der beiden APIs entscheiden, da gleichzeitige Verwendung der APIs nicht möglich Libraries CUBLAS: Grundbausteine für lineare Algebra-Berechnungen auf der GPU CUFFT: Berechnung von Fourier-Transformationen (Signalbearbeitung) 15

16 Programmierung CUDA aus Softwaresicht Mehrere Erweiterungen im C-Sprachstil Normalerweise Programmierung in C, durch Wrapper auch andere Programmiersprachen nutzbar 16

17 Programmierung Funktionstypen in CUDA global : Deklariert eine Funktion als Kernel Wird auf dem Device ausgeführt Nur vom Host aufrufbar device : Wird auf dem Device ausgeführt Nur von Device aufrufbar host : Optionaler Qualifizierer Wird auf dem Host ausgeführt Kann nur vom Host aufgerufen werden 17

18 Programmierung Variablentypen in CUDA device : optional Variable liegt im Global Memory Lebensdauer über die gesamte Programmausführung Steht allen Threads innerhalb eines Grids und dem Host über die Runtime Library zur Verfügung constant : Variable liegt im Constant Memory Lebensdauer und Verfügbarkeit wie bei device shared : Variable liegt im Shared Memory eines Thread Blocks Lebensdauer des Blocks Steht nur den Threads innerhalb des Blocks zu Verfügung 18

19 Programmierung Built-In Variablen griddim : Dimension des Grids griddim.x, griddim.y blockidx : Blockindex innerhalb des Grids blockidx.x, blockidx.y blockdim : Dimension des Blocks blockdim.x, blockdim.y, blockdim.z threadidx : Threadindex innerhalb des Blocks threadidx.x, threadidx.y, threadidx.z warpsize : Größe eines Warps 19

20 Programmierung Programmbeispiel : Quadrieren jedes Elements eines Arrays int main() { Code für CPU int i = 0; float *zahlen_host; const int anzahl=1024; // Speicher reservieren zahlen_host = (float*)malloc( anzahl *sizeof(float) ); // Zahlen quadrieren for( i=0 ; i<anzahl ; i++ ) zahlen_host[i]=(float)i * (float)i; // Speicher freigeben free( zahlen_host); } 20

21 Programmierung global void quadrieren(float*zahlen){ int idx = blockidx.x * blockdim.x + threadidx.x; // Zahl quadrieren zahlen[idx] = zahlen[idx] * zahlen[idx]; } Code für GPU int main() { int i = 0; float *zahlen_host, *zahlen_device; const int anzahl = 1024; // Speicher auf dem Host reservieren und ablegen zahlen_host = (float*)malloc( anzahl *sizeof(float) ); for( i=0 ; i < anzahl ; i++ ) zahlen_host[i] = (float)i; // Speicher auf dem Device reservieren und kopieren der Zahlen zum Device cudamalloc( (void**) &zahlen_device, anzahl *sizeof(float) ); cudamemcpy( zahlen_device, zahlen_host, anzahl *sizeof(float), cudamemcpyhosttodevice); 21

22 Programmierung Code für GPU // Dimensionierung von Grid und Block dim3 griddim (16,1); dim3 blockdim (64,1,1); // Quadrieren der Zahlen auf dem Device quadrieren<<<griddim,blockdim>>>( zahlen_device ); // Kopieren der Zahlen zum Host cudamemcpy( zahlen_host, zahlen_device, anzahl *sizeof(float), cudamemcpydevicetohost); } // Speicher freigeben free( zahlen_host ) ; cudafree( zahlen_device); 22

23 Programmierung Kompilierung Der NVCC trennt Device Code von Host Code und kompiliert den Device Code Der Host Code wird als C-Code ausgegeben, der dann mit einem C- Compiler kompiliert werden kann Mit einem C-Compiler werden dann die beiden Dateien zusammen gelinkt CPU Code CUDA C-Code kompilieren linken Ausführbare Datei GPU Code 23

24 Noch Fragen?? 24

Programmierung von Graphikkarten

Programmierung von Graphikkarten Programmierung von Graphikkarten Stefan Lang Interdisziplinäres Zentrum für Wissenschaftliches Rechnen Universität Heidelberg INF 368, Raum 532 D-69120 Heidelberg phone: 06221/54-8264 email: Stefan.Lang@iwr.uni-heidelberg.de

Mehr

Programmierbeispiele und Implementierung. Name: Michel Steuwer E-Mail: michel.steuwer@wwu.de

Programmierbeispiele und Implementierung. Name: Michel Steuwer E-Mail: michel.steuwer@wwu.de > Programmierbeispiele und Implementierung Name: Michel Steuwer E-Mail: michel.steuwer@wwu.de 2 > Übersicht > Matrix Vektor Multiplikation > Mandelbrotmenge / Apfelmännchen berechnen > Kantendetektion

Mehr

Parallele Programmierung mit GPUs

Parallele Programmierung mit GPUs Parallele Programmierung mit GPUs Jutta Fitzek Vortrag im Rahmen des Moduls Parallele Programmierung, WS12/13, h_da Agenda GPUs: Historie GPU Programmierung Konzepte Codebeispiel Generelle Tipps & Tricks

Mehr

Compute Unified Device Architecture (CUDA)

Compute Unified Device Architecture (CUDA) Compute Unified Device Architecture (CUDA) Thomas Koller 12. Februar 2012 Zusammenfassung Diese Ausarbeitung beschäftigt sich mit der Programmierung von Grafikkarten mittels CUDA. Bei bestimmten Berechnungen

Mehr

GPGPU mit NVIDIA CUDA

GPGPU mit NVIDIA CUDA 01.07.12 GPGPU mit NVIDIA CUDA General-Purpose on Formatvorlagecomputing des Graphics Processing durch Units Untertitelmasters mit KlickenCompute bearbeiten NVIDIA Unified Device Architecture Gliederung

Mehr

GPGPU Programming nvidia CUDA vs. AMD/ATI Stream Computing. Seminar HWS 08/09 by Erich Marth

GPGPU Programming nvidia CUDA vs. AMD/ATI Stream Computing. Seminar HWS 08/09 by Erich Marth Computing 1 Inhalt Einführung nvidia CUDA AMD Stream Computing CUDA vs. Stream Computing - Warum, Vorteile, Motivation - Überblick, API - Details, Beispiele - Überblick, API - Details, Beispiele - wesentliche

Mehr

Übersicht 1. Anzeigegeräte 2. Framebuffer 3. Grundlagen 3D Computergrafik 4. Polygongrafik, Z-Buffer 5. Texture-Mapping/Shading 6. GPU 7. Programmierbare Shader 1 LCD/TFT Technik Rotation der Licht-Polarisationsebene

Mehr

OpenCL. Seminar Programmiersprachen im Multicore-Zeitalter Universität Siegen Tim Wiersdörfer tim.wiersdoerfer@student.uni-siegen.

OpenCL. Seminar Programmiersprachen im Multicore-Zeitalter Universität Siegen Tim Wiersdörfer tim.wiersdoerfer@student.uni-siegen. OpenCL Seminar Programmiersprachen im Multicore-Zeitalter Universität Siegen Tim Wiersdörfer tim.wiersdoerfer@student.uni-siegen.de Abstract: In diesem Dokument wird ein grundlegender Einblick in das relativ

Mehr

GPU-Computing im Rahmen der Vorlesung Hochleistungsrechnen

GPU-Computing im Rahmen der Vorlesung Hochleistungsrechnen GPU-Computing im Rahmen der Vorlesung Hochleistungsrechnen Universität Hamburg Scientific Visualization and Parallel Processing Übersicht Hintergrund und Entwicklung von GPGPU Programmierumgebungen & Werkzeuge

Mehr

GPU-Computing. Michael Vetter

GPU-Computing. Michael Vetter GPU-Computing Universität Hamburg Scientific Visualization and Parallel Processing @ Informatik Climate Visualization Laboratory @ Clisap/CEN Übersicht Hintergrund und Entwicklung von GPGPU Programmierumgebungen

Mehr

Algorithmen für moderne Rechnerarchitekturen

Algorithmen für moderne Rechnerarchitekturen Jörn Fischer j.fischer@hs-mannheim.de Willkommen zur Vorlesung Algorithmen für moderne Rechnerarchitekturen Vorstellung Zu meiner Person... 2 ALR - Jörn Fischer - j.fischer@hs-mannheim.de Büro: A113a Überblick

Mehr

Multicore Herausforderungen an das Software-Engineering. Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010

Multicore Herausforderungen an das Software-Engineering. Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010 Multicore Herausforderungen an das Software-Engineering Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010 Inhalt _ Motivation _ Herausforderung 1: Hardware _ Herausforderung 2: Software-Partitionierung

Mehr

Aktuelle Trends und Herausforderungen in der Finite-Elemente-Simulation

Aktuelle Trends und Herausforderungen in der Finite-Elemente-Simulation Aktuelle Trends und Herausforderungen in der Finite-Elemente-Simulation Kai Diethelm GNS Gesellschaft für numerische Simulation mbh Braunschweig engineering software development Folie 1 Überblick Vorstellung

Mehr

Untersuchungen zur Abstraktion der GPU-Programmierung in Java am Beispiel Fluid-Simulation

Untersuchungen zur Abstraktion der GPU-Programmierung in Java am Beispiel Fluid-Simulation Masterarbeit Fakultät Informatik Untersuchungen zur Abstraktion der GPU-Programmierung in Java am Beispiel Fluid-Simulation Matthias Klaÿ Kleiberweg 4 86199 Augsburg Tel: 0821 431552 E-Mail: matthias.klass

Mehr

http://www.uniregensburg.de/edv/kurs_info/brf09510/hpc/cuda/cuda.pdf 27. Januar 2016

http://www.uniregensburg.de/edv/kurs_info/brf09510/hpc/cuda/cuda.pdf 27. Januar 2016 Cuda - Compute Unied Device Architecture Dipl. Math. F. Braun Universität Regensburg Rechenzentrum http://www.uniregensburg.de/edv/kurs_info/brf09510/hpc/cuda/cuda.html http://www.uniregensburg.de/edv/kurs_info/brf09510/hpc/cuda/cuda.pdf

Mehr

GPGPU Architectures - Compiler Techniques and Applications SS 2012

GPGPU Architectures - Compiler Techniques and Applications SS 2012 Seminar on GPGPU Architectures - Compiler Techniques and Applications SS 2012 Embedded Systems Group Department of Computer Science University of Kaiserslautern Preface The widespread use of so-called

Mehr

Optimierung eines neuen Logarithmic-Search-Verfahrens zum Image Mosaicing unter Einsatz des CUDA-Frameworks

Optimierung eines neuen Logarithmic-Search-Verfahrens zum Image Mosaicing unter Einsatz des CUDA-Frameworks Fachhochschule Köln, Campus Gummersbach Optimierung eines neuen Logarithmic-Search-Verfahrens zum Image Mosaicing unter Einsatz des CUDA-Frameworks 03.06.2009 Eugen Sewergin, B. Sc. Erstprüfer: Prof. Dr.

Mehr

Grundlagen der Parallelisierung

Grundlagen der Parallelisierung Grundlagen der Parallelisierung Philipp Kegel, Sergei Gorlatch AG Parallele und Verteilte Systeme Institut für Informatik Westfälische Wilhelms-Universität Münster 3. Juli 2009 Inhaltsverzeichnis 1 Einführung

Mehr

Masterarbeit. Implementation eines CUDA basierten Kalman-Filters zur Spurrekonstruktion des ATLAS-Detektors am LHC

Masterarbeit. Implementation eines CUDA basierten Kalman-Filters zur Spurrekonstruktion des ATLAS-Detektors am LHC Fachhochschule Münster Masterarbeit Implementation eines CUDA basierten Kalman-Filters zur Spurrekonstruktion des ATLAS-Detektors am LHC Rene Böing, B.Sc. rene.boeing@fh-muenster.de Matrikelnummer: 618384

Mehr

Seminar GPU-Programmierung/Parallelverarbeitung

Seminar GPU-Programmierung/Parallelverarbeitung Seite iv Literaturverzeichnis 1) Bengel, G.; et al.: Masterkurs Parallele und Verteilte Systeme. Vieweg + Teubner, Wiesbaden, 2008. 2) Breshears, C.: The Art of Concurrency - A Thread Monkey's Guide to

Mehr

Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn 07.12.2010 1

Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn 07.12.2010 1 Ein kleiner Einblick in die Welt der Supercomputer Christian Krohn 07.12.2010 1 Vorschub: FLOPS Entwicklung der Supercomputer Funktionsweisen von Supercomputern Zukunftsvisionen 2 Ein Top10 Supercomputer

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

OpenCL Implementierung von OpenCV Funktionen

OpenCL Implementierung von OpenCV Funktionen Multi-Core Architectures and Programming OpenCL Implementierung von OpenCV Funktionen julian.mueller@e-technik.stud.uni-erlangen.de Hardware/Software Co-Design August 18, 2011 1 Table of content 1 OpenCL

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

BACHELORARBEIT. Herr Mario Gienapp. GPGPU Computing - Parallele Programmierung mit CUDA und OpenCL

BACHELORARBEIT. Herr Mario Gienapp. GPGPU Computing - Parallele Programmierung mit CUDA und OpenCL BACHELORARBEIT Herr Mario Gienapp GPGPU Computing - Parallele Programmierung mit CUDA und OpenCL 2012 Fakultät Elektro- und Informationstechnik BACHELORARBEIT GPGPU Computing - Parallele Programmierung

Mehr

Johann Wolfgang Goethe-Universität

Johann Wolfgang Goethe-Universität Flynn sche Klassifikation SISD (single instruction, single data stream): IS IS CU PU DS MM Mono (Mikro-)prozessoren CU: Control Unit SM: Shared Memory PU: Processor Unit IS: Instruction Stream MM: Memory

Mehr

CUDA Nvidia s Parallel Programming Language

CUDA Nvidia s Parallel Programming Language CUDA Nvidia s Parallel Programming Language Zusammengetragen und Erstellt von Christian Wirth und Peter Schroeder Im Rahmen der Vorlesung Serious Games Ausarbeitung abgegeben von Christian Wirth Peter

Mehr

Smartphone Entwicklung mit Android und Java

Smartphone Entwicklung mit Android und Java Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter

Mehr

Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP

Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Dipl. Inf. Thorsten Blaß Programming Systems Group Martensstraße 3 91058 Erlangen Ausblick Motivation Einführung Java/OpenMP (JaMP) JaMP Sprache

Mehr

Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden:

Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden: 3 Grundlagen 3.1 Starten eines C++ Programms Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden: 1. Programme, die vom Interpreter der Programmiersprache Zeile für Zeile interpretiert

Mehr

Computational Biology: Bioelektromagnetismus und Biomechanik

Computational Biology: Bioelektromagnetismus und Biomechanik Computational Biology: Bioelektromagnetismus und Biomechanik Implementierung Gliederung Wiederholung: Biomechanik III Statische Elastomechanik Finite Elemente Diskretisierung Finite Differenzen Diskretisierung

Mehr

Programming Models for Cell BE

Programming Models for Cell BE Hauptseminar MAP08 Programming Models for Cell BE Hannes Stadler, Sebastian Graf HannesStadler@gmx.de, sebgr@gmx.net Betreuung: Matthias Hartl, Hritam Dutta, Frank Hannig Hardware-Software-Co-Design Universität

Mehr

Die beste Infrastruktur ist nur so schnell, wie der Code der darauf läuft. Fallbeispiel Wettervorhersage

Die beste Infrastruktur ist nur so schnell, wie der Code der darauf läuft. Fallbeispiel Wettervorhersage Die beste Infrastruktur ist nur so schnell, wie der Code der darauf läuft Fallbeispiel Wettervorhersage VPE Swiss Workshop, HSR 24. Januar 2013 David Müller, Tobias Gysi Vision trifft Realität. Supercomputing

Mehr

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl PROGRAMMIEREN MIT C Allgemeine hinweise Alles was hier beschrieben wird, soll auch ausprobiert werden. Warum C? Weil die coolen Dinge mit C am einfachsten gehen. Das werden wir in den folgenden Übungen

Mehr

Stream Processing und High-Level GPGPU Sprachen

Stream Processing und High-Level GPGPU Sprachen Seminar: Programmierung von Grafikkarten Stream Processing und High-Level GPGPU Sprachen Jens Breitbart brietbar@student.uni-kassel.de Abstract Die Leistung aktueller Prozessoren erhöht sich sehr viel

Mehr

Propädeutikum. Dipl.-Inf. Frank Güttler

Propädeutikum. Dipl.-Inf. Frank Güttler Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) guettler@informatik.uni-leipzig.de Universität Leipzig Institut für Informatik Technische Informatik

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

Projektseminar Parallele Programmierung

Projektseminar Parallele Programmierung HTW Dresden WS 2014/2015 Organisatorisches Praktikum, 4 SWS Do. 15:00-18:20 Uhr, Z136c, 2 Doppelstunden o.g. Termin ist als Treffpunkt zu verstehen Labore Z 136c / Z 355 sind Montag und Donnerstag 15:00-18:20

Mehr

Parallelrechner (1) Anwendungen: Simulation von komplexen physikalischen oder biochemischen Vorgängen Entwurfsunterstützung virtuelle Realität

Parallelrechner (1) Anwendungen: Simulation von komplexen physikalischen oder biochemischen Vorgängen Entwurfsunterstützung virtuelle Realität Parallelrechner (1) Motivation: Bedarf für immer leistungsfähigere Rechner Leistungssteigerung eines einzelnen Rechners hat physikalische Grenzen: Geschwindigkeit von Materie Wärmeableitung Transistorgröße

Mehr

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

Hochschule Darmstadt

Hochschule Darmstadt Hochschule Darmstadt - Fachbereich Informatik - Implementierung exemplarischer, paralleler, numerischer Verfahren aus dem CFD-Bereich auf Grafikkarten unter Verwendung von OpenCL Abschlussarbeit zur Erlangung

Mehr

Protected User-Level DMA in SCI Shared Memory Umgebungen

Protected User-Level DMA in SCI Shared Memory Umgebungen Protected User-Level DMA in SCI Shared Memory Umgebungen Mario Trams University of Technology Chemnitz, Chair of Computer Architecture 6. Halle Chemnitz Seminar zu Parallelverarbeitung und Programmiersprachen

Mehr

Leistungs- und Geschwindigkeitssteigerung. Dipl.-Ing. Sebastian F. Kleinau Applikationsingenieur

Leistungs- und Geschwindigkeitssteigerung. Dipl.-Ing. Sebastian F. Kleinau Applikationsingenieur Leistungs- und Geschwindigkeitssteigerung von LabVIEW-Projekten Dipl.-Ing. Sebastian F. Kleinau Applikationsingenieur Agenda 1. Einführung 2. Hilfreiche Werkzeuge zur Codeanalyse 3. Benchmarks für LabVIEW-VIs

Mehr

Automatisches Multi-GPU Scheduling in OpenCL

Automatisches Multi-GPU Scheduling in OpenCL Automatisches Multi-GPU Scheduling in OpenCL vorgelegt von Dipl.-Math. Wolfgang Welz Diplomarbeit am Fachgebiet Kommunikations- und Betriebssysteme Prof. Dr. Hans-Ulrich Heiß Institut für Telekommunikationssysteme

Mehr

Highspeed Videoverarbeitung

Highspeed Videoverarbeitung IMVS Fokus Report 2011 33 Highspeed Videoverarbeitung Hochgeschwindigkeitskameras werden oft zur Überwachung sehr schneller, vollautomatisierter, industrieller Prozesse eingesetzt. Im Zuge der Marktanforderung,

Mehr

Moderne parallele Rechnerarchitekturen

Moderne parallele Rechnerarchitekturen Seminar im WS0708 Moderne parallele Rechnerarchitekturen Prof. Sergei Gorlatch Dipl.-Inf. Maraike Schellmann schellmann@uni-muenster.de Einsteinstr. 62, Raum 710, Tel. 83-32744 Dipl.-Inf. Philipp Kegel

Mehr

Effiziente Auslagerung der IPsec-Verschlüsselung auf Grafikkarten

Effiziente Auslagerung der IPsec-Verschlüsselung auf Grafikkarten Effiziente Auslagerung der IPsec-Verschlüsselung auf Grafikkarten Georg Schönberger, BSc MASTERARBEIT eingereicht am Fachhochschul-Masterstudiengang Sichere Informationssysteme in Hagenberg im Mai 2011

Mehr

Implementierung und Evaluierung von Video Feature Tracking auf moderner Grafik Hardware

Implementierung und Evaluierung von Video Feature Tracking auf moderner Grafik Hardware Implementierung und Evaluierung von Video Feature Tracking auf moderner Diplomarbeit vorgelegt von Sebastian Heymann Betreut von Prof. Dr. Bernd Fröhlich Bauhaus Universität t Dr. Aljoscha Smolic Fraunhofer

Mehr

Mobile Application Development

Mobile Application Development Mobile Application Development Android: Einführung Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Lernziele Der/die Kursbesucher/in kann

Mehr

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Microcontroller Kurs 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Was ist ein Microcontroller Wikipedia: A microcontroller (sometimes abbreviated µc, uc or MCU) is a small computer on a single integrated

Mehr

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme wwwnet-texde Proseminar Rechnerarchitekturen Parallelcomputer: Multiprozessorsysteme Stefan Schumacher, , PGP Key http://wwwnet-texde/uni Id: mps-folientex,v

Mehr

Staff. Tim Conrad. Zeitplan. Blockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester 2013. Tim Conrad

Staff. Tim Conrad. Zeitplan. Blockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester 2013. Tim Conrad Blockseminar: Verteiltes Rechnen und Parallelprogrammierung Sommer Semester 2013 Tim Conrad Staff Tim Conrad AG Computational Proteomics email: conrad@math.fu-berlin.de Telefon: 838-51445 Büro: Raum 138,

Mehr

Current and Emerging Architectures Multi-core Architectures and Programming

Current and Emerging Architectures Multi-core Architectures and Programming Current and Emerging Architectures Multi-core Architectures and Programming Adel El-Rayyes Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg 9. Mai 2012 Inhalt Überblick über

Mehr

Der Goopax Compiler GPU-Programmierung in C++ ZKI AK-Supercomputing, Münster, 27.03.2014, Ingo Josopait

Der Goopax Compiler GPU-Programmierung in C++ ZKI AK-Supercomputing, Münster, 27.03.2014, Ingo Josopait Der Goopax Compiler GPU-Programmierung in C++ AMD R9 290X: 5.6 TFLOPS (SP MulAdd) Programmierung ~10000 Threads Entwicklungsumgebungen Entwicklungsumgebungen CUDA, OpenCL Compiler: kernel GPU Maschinencode

Mehr

MULTICORE- UND GPGPU- ARCHITEKTUREN

MULTICORE- UND GPGPU- ARCHITEKTUREN MULTICORE- UND GPGPU- ARCHITEKTUREN Korbinian Pauli - 17. November 2011 Seminar Multicore Programmierung, WS11, Universität Passau 2 Einleitung Klassisches Problem der Informatik: riesige Datenmenge! Volkszählung

Mehr

Informationsverarbeitung im Bauwesen

Informationsverarbeitung im Bauwesen 1/23 Informationsverarbeitung im Bauwesen Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2010/2011 Vorlesung 6

Mehr

Blockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester 2015. Tim Conrad

Blockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester 2015. Tim Conrad Blockseminar: Verteiltes Rechnen und Parallelprogrammierung Sommer Semester 2015 Tim Conrad Staff Tim Conrad AG Medical Bioinformatics email: conrad@math.fu-berlin.de Telefon: 838-51445 Büro: Raum 138,

Mehr

Modulare Programmierung und Bibliotheken

Modulare Programmierung und Bibliotheken Modulare Programmierung und Bibliotheken Proseminar-Vortrag am 24.06.2011 von Ludwig Eisenblätter Ludwig Eisenblätter 1 von 25 Modulare Programmierung und Bibliotheken Inhaltsübersicht Motivation / Einleitung

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 1 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2015 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan

Mehr

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()

Mehr

Linux-Cluster mit Raspberry Pi. Dr. René Richter Sächsische Studienakademie Dresden rene.richter@ba-dresden rene.richter@namespace-cpp.

Linux-Cluster mit Raspberry Pi. Dr. René Richter Sächsische Studienakademie Dresden rene.richter@ba-dresden rene.richter@namespace-cpp. Linux-Cluster mit Raspberry Pi Dr. René Richter Sächsische Studienakademie Dresden rene.richter@ba-dresden rene.richter@namespace-cpp.de Lange Nacht der Wissenschaften 2013 Moore s Law Moore s Law (1965)

Mehr

Programmierung von Many-Cores. Seminar: Software Engineering für Exascale Computing

Programmierung von Many-Cores. Seminar: Software Engineering für Exascale Computing Programmierung von Many-Cores Seminar: Software Engineering für Exascale Computing Patrizia Peller April 18, 2013 Programmierung von Many-Cores Hardware-Architekturen Anforderungen an Programmiersprachen

Mehr

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Name: Matrikel-Nr: Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Bitte schreiben Sie leserlich und antworten Sie kurz und präzise. 1. Zeichnen Sie das Schichten-Modell eines Computersystems und markieren

Mehr

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition)

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Ein Prozess kann unmittelbar vom Zustand 1. Running in den Zustand Ready 2. Running in den Zustand Blocked 3. Ready in den Zustand Running Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Der Adressraum

Mehr

OpenGL. (Open Graphic Library)

OpenGL. (Open Graphic Library) OpenGL (Open Graphic Library) Agenda Was ist OpenGL eigentlich? Geschichte Vor- und Nachteile Arbeitsweise glscene OpenGL per Hand Debugging Trend Was ist OpenGL eigentlich? OpenGL ist eine Spezifikation

Mehr

Sicheres C Programmieren in Embedded Systemen ARM II (ARM7TMDI [1] ) Wintersemester 2010-2011

Sicheres C Programmieren in Embedded Systemen ARM II (ARM7TMDI [1] ) Wintersemester 2010-2011 Sicheres C in Embedded Systemen ARM II (ARM7TMDI [1] ) Wintersemester 2010-2011 Dipl. Ing. (FH) Ebrecht Roland, Infineon Technologies AG M.Eng (Electronic Systems) Güller Markus, Infineon Technologies

Mehr

ARM Cortex-M Prozessoren. Referat von Peter Voser Embedded Development GmbH

ARM Cortex-M Prozessoren. Referat von Peter Voser Embedded Development GmbH ARM Cortex-M Prozessoren Referat von Peter Voser Embedded Development GmbH SoC (System-on-Chip) www.embedded-development.ch 2 Instruction Sets ARM, Thumb, Thumb-2 32-bit ARM - verbesserte Rechenleistung

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik

Mehr

Aufbau und Funktionsweise eines Computers

Aufbau und Funktionsweise eines Computers Aufbau und Funktionsweise eines Computers Thomas Röfer Hardware und Software von Neumann Architektur Schichtenmodell der Software Zahlsysteme Repräsentation von Daten im Computer Hardware Prozessor (CPU)

Mehr

Compilerbau mit Phoenix

Compilerbau mit Phoenix Übersicht 2 Was ist ein Compiler? Frontend Analyse Backend Synthese Compiler-Pässe 3 Was ist ein Compiler? Frontend (Eingabesprache) Analyse Backend (Ausgabesprache) Synthese 4 Was ist ein Compiler? Frontend

Mehr

User Level Device Driver am Beispiel von TCP

User Level Device Driver am Beispiel von TCP September 17, 2004 Einleitung Motivation für Userlevel Device Driver Probleme von Userlevel Device Driver Motivation für Userlevel Device Driver Modularität, leichterer Austausch/Erneuerung von Komponenten.

Mehr

Eine Einführung in C-Funktionen

Eine Einführung in C-Funktionen Eine Einführung in C-Funktionen CGK-Proseminar 2014 Philip Gawehn 04.07.2014, Hamburg Inhaltsverzeichnis 1 Einleitung 2 2 Grundlagen 2 2.1 Der Aufbau einer Funktion....................... 2 2.2 Schlüsselwörter.............................

Mehr

Embedded-Linux-Seminare. Toolchains

Embedded-Linux-Seminare. Toolchains Embedded-Linux-Seminare Toolchains http://www.embedded-linux-seminare.de Diplom-Physiker Peter Börner Spandauer Weg 4 37085 Göttingen Tel.: 0551-7703465 Mail: info@embedded-linux-seminare.de Kopier-Rechte

Mehr

Multi-Core Architectures and Programming. Android Programming Models. C. Kugler und E. Sert 16.05.2013

Multi-Core Architectures and Programming. Android Programming Models. C. Kugler und E. Sert 16.05.2013 Multi-Core Architectures and Programming Android Programming Models C. Kugler und E. Sert 16.05.2013 Gliederung Gliederung Motivation Android SDK Allgemeines Homogene Parallelisierung Android NDK Allgemeines

Mehr

Eine Einführung in die Architektur moderner Graphikprozessoren

Eine Einführung in die Architektur moderner Graphikprozessoren Eine Einführung in die Architektur moderner Graphikprozessoren Seminarvortrag von Sven Schenk WS 2005/2006 Universität Mannheim, Lehrstuhl für Rechnerarchitektur Inhalt Historische Eckpunkte Einführung

Mehr

CONCURRENCY MODELS. Auf der Suche nach dem heiligen Gral der ManyCores Peter Sturm. (c) Peter Sturm, Universität Trier

CONCURRENCY MODELS. Auf der Suche nach dem heiligen Gral der ManyCores Peter Sturm. (c) Peter Sturm, Universität Trier CONCURRENCY MODELS Auf der Suche nach dem heiligen Gral der ManyCores Peter Sturm 1 AUTOVERKEHR 61.5 Millionen zugelassene Autos (Anfang 2014) Quelle: Statistisches Bundesamt 2 3 SPERRGRANULAT Die Zeit

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

Seminar "Ausgewählte Themen in Hardwareentwurf und Optik" im HS 2007. Transactional Memory. Vortrag von Erdin Sinanović

Seminar Ausgewählte Themen in Hardwareentwurf und Optik im HS 2007. Transactional Memory. Vortrag von Erdin Sinanović Seminar "Ausgewählte Themen in Hardwareentwurf und Optik" im HS 2007 Transactional Memory Vortrag von Erdin Sinanović Übersicht Was ist Transactional Memory (TM)? Wie programmiert man mit TM? Software

Mehr

Parallele Algorithmen mit OpenCL. Universität Osnabrück, Henning Wenke, 2013-05-08

Parallele Algorithmen mit OpenCL. Universität Osnabrück, Henning Wenke, 2013-05-08 Parallele Algorithmen mit OpenCL Universität Osnabrück, Henning Wenke, 2013-05-08 Aufräumen Ressourcen in umgekehrter Abhängigkeitsreihenfolge freigeben Objekte haben Reference-Count (RC), initial 1 clrelease

Mehr

COMPUTERKLASSEN MULTICOMPUTER und SPEZIALANWENDUNGSSYSTEME

COMPUTERKLASSEN MULTICOMPUTER und SPEZIALANWENDUNGSSYSTEME D - CA - XIX - CC,M&SPC - 1 HUMBOLDT-UNIVERSITÄT ZU BERLIN INSTITUT FÜR INFORMATIK Vorlesung 19 COMPUTERKLASSEN MULTICOMPUTER und SPEZIALANWENDUNGSSYSTEME Sommersemester 2003 Leitung: Prof. Dr. Miroslaw

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include

Mehr

Tag der Umweltmeteorologie 12.05.2015. Michael Kunz

Tag der Umweltmeteorologie 12.05.2015. Michael Kunz Tag der Umweltmeteorologie 12.05.2015 Michael Kunz Beschleunigung von Ausbreitungsmodellen durch Portierung auf Grafikkarten Einleitung Das GRAL/GRAMM-System Cuda-GRAL Ergebnisse Vergleich der Modellergebnisse

Mehr

Impulse C. Seminar Ausgewählte Themen in Hardwareentwurf und Optik. Steffen Liebscher, HWS 2009/2010. Steffen Liebscher

Impulse C. Seminar Ausgewählte Themen in Hardwareentwurf und Optik. Steffen Liebscher, HWS 2009/2010. Steffen Liebscher Impulse C Seminar Ausgewählte Themen in Hardwareentwurf und Optik, HWS 2009/2010 Inhalt Was ist Impulse C? Anwendungsgebiete Impulse C in der Praxis Beispiel und Benchmark Ausblick Zusammenfassung 2 Was

Mehr

Cloud-Computing. 1. Definition 2. Was bietet Cloud-Computing. 3. Technische Lösungen. 4. Kritik an der Cloud. 2.1 Industrie 2.

Cloud-Computing. 1. Definition 2. Was bietet Cloud-Computing. 3. Technische Lösungen. 4. Kritik an der Cloud. 2.1 Industrie 2. Cloud Computing Frank Hallas und Alexander Butiu Universität Erlangen Nürnberg, Lehrstuhl für Hardware/Software CoDesign Multicorearchitectures and Programming Seminar, Sommersemester 2013 1. Definition

Mehr

GPU-basierte Beschleunigung von MapReduce am Beispiel von OpenCL und Hadoop

GPU-basierte Beschleunigung von MapReduce am Beispiel von OpenCL und Hadoop am Beispiel von OpenCL und Masterseminar Hochschule für Technik, Wirtschaft und Kultur Leipzig Leipzig, 02.11.2011 Gliederung 1 Grundlagen 2 3 Gliederung 1 Grundlagen 2 3 Was ist? Clustersystem zur verteilten

Mehr

Windows CE. Process Control and Robotics. Fabian Garagnon

Windows CE. Process Control and Robotics. Fabian Garagnon Windows CE Process Control and Robotics Fabian Garagnon 14.01.2009 Agenda 3 Geschichte & Timeline Echtzeit & Multithreading Architektur Memory Management & Context Switch Entwicklung unter CE Interrupts

Mehr

Computergrafik 1 Übung, Wintersemester 2011. Eclipse Hands-On. C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10.

Computergrafik 1 Übung, Wintersemester 2011. Eclipse Hands-On. C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10. Computergrafik 1 Übung, Wintersemester 2011 Eclipse Hands-On C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10.12 1 Eclipse - Die IDE 1. Entwicklungsumgebung (IDE) herunterladen / installieren

Mehr

SSDs und Flash Memory. Matthias Müller 16.Juni 2010 Institut für Verteilte Systeme

SSDs und Flash Memory. Matthias Müller 16.Juni 2010 Institut für Verteilte Systeme SSDs und Flash Memory Matthias Müller 16.Juni 2010 Institut für Verteilte Systeme Seite 2 Inhalt Motivation Aufbau und Funktionsweise NAND vs NOR SLC vs MLC Speicherorganisation Vergleich mit konventionellen

Mehr

Unterprogramme, Pointer und die Übergabe von Arrays

Unterprogramme, Pointer und die Übergabe von Arrays Unterprogramme, Pointer und die Übergabe von Arrays Unterprogramme Wie schon im Abschnitt über Funktionen erwähnt, versteht man unter einem Unterprogramm im engeren Sinn eine Prozedur, welche die Werte

Mehr

Entwurfstechniken für Parallelisierung Auf MPSoC-Plattformen

Entwurfstechniken für Parallelisierung Auf MPSoC-Plattformen Anwendungen 2 Entwurfstechniken für Parallelisierung Auf MPSoC-Plattformen MINF 2, SoSe2011 Anwendungen 2 23.06.2011 Betreuer: Prof. Dr. Schwarz Übersicht 1. Einleitung 2. Vergleichbare Arbeiten 3. Zusammenfassung

Mehr

Storage Area Networks im Enterprise Bereich

Storage Area Networks im Enterprise Bereich Storage Area Networks im Enterprise Bereich Technologien, Auswahl & Optimierung Fachhochschule Wiesbaden Agenda 1. Was sind Speichernetze? 2. SAN Protokolle und Topologien 3. SAN Design Kriterien 4. Optimierung

Mehr

IPETRONIK TESTdrive SDK V02.00

IPETRONIK TESTdrive SDK V02.00 TESTdrive SDK V02.00 Übersicht Kundenspezifische Erweiterungen möglich Unabhängige Entwicklungen von TESTdrive-Kernsystem (Releases) Eigenständige Erweiterungen durch den Kunden selbst Nutzung von bestehenden

Mehr

Grafiktreiber im Linuxkernel - die Außenseiter -

Grafiktreiber im Linuxkernel - die Außenseiter - Grafiktreiber im Linuxkernel - die Außenseiter - Creative Commons by-nc-nd Grundlagen Was ist eine Grafikkarte? Grundlagen Was ist eine Grafikkarte? Ausgabelogik Grundlagen Was ist eine Grafikkarte? Ausgabelogik

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 20.11.2013 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Wdhlg.: Attributinformationen in

Mehr

1. Übung zu "Numerik partieller Differentialgleichungen"

1. Übung zu Numerik partieller Differentialgleichungen 1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:

Mehr

Mac OS X und ios. Softwarearchitekturen SS 2011. Von Pawel Wall

Mac OS X und ios. Softwarearchitekturen SS 2011. Von Pawel Wall Mac OS X und ios Softwarearchitekturen SS 2011 Von Pawel Wall Inhalt UNIX-Kategorien Kernel und Kerneltypen Die Vorgeschichte von Mac OS X Die Architektur von Mac OS X Die Architektur von ios Fazit Unix-Kategorien

Mehr

Implementierung der Jikes Research Virtual Machine

Implementierung der Jikes Research Virtual Machine Fakultät Informatik Institut für technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Implementierung der Jikes Research Virtual Machine Hauptseminar Technische Informatik

Mehr