High Performance Computing Center
  • ABOUT US
    • Mission
    • Contacts
    • Team
    • How to reference us?
  • NEWS
  • HPC
    • What is HPC?
    • HPC infrastructure
    • HPC software
      • Full list
      • Comsol Multiphysics/HPC
      • CUDA Toolkit/HPC
      • Gromacs/HPC
      • Intel Parallel Studio/HPC
      • Matlab/HPC
      • OpenFoam/HPC
      • OpenMPI/HPC
      • Python/HPC
    • HPC manual
      • Getting access
      • General guidelines
      • Technical description
      • HPC software
      • User interfaces
      • Getting started
      • Job management
      • Usage accounting
      • Useful links
      • Annex
        • Parallel commands
        • Running containers
        • Conda/Anaconda environment
    • Services
      • HPC access
      • CFD simulations
      • Software development
      • Prices
      • Finansial support
    • Our HPC users
    • Apply for HPC
  • SOFTWARE
    • Catalogue
      • Adams
      • Altium Designer
      • Ansys
      • ArcGIS
      • Autodesk (AutoCAD)
      • COMSOL
      • Infolytica
      • Intel Parallel Studio
      • Mathcad
      • MATLAB
      • OriginPro
      • RETScreen
      • Rocscience
      • SolidWorks
      • SPSS Statistics
    • Open source and scientific software
    • For students
    • Apply for scientific software
  • TRAINING
    • Consultations related to HPC
    • Courses
      • CUDA course
      • MATLAB course
      • Introduction to SolidWorks
    • Other courses
    • Apply for courses
  • SCIENCE
    • Projects
      • FF4EuroHPC
      • CoE RAISE
      • CERN Tier-2
      • EUROCC
      • VPP Covid-19
      • Open Source Initiative
      • EOSC Nordic
      • BalticGrid-II
      • Baltic Grid
    • HPC use in science
      • Publications (RTU)
      • Submit your publication
      • PhD thesis
      • Lectures
    • Conferences
      • 4th Baltic HPC and Cloud Conference
    • Cooperation organizations
  • Search
  • Menu Menu
You are here: Home1 / TRAINING2 / CUDA course
  • I PART “INTRODUCTION TO HIGH-PERFORMANCE COMPUTING TECHNOLOGY CUDA”

  • II PART “APPLIED USE OF THE HIGH-PERFORMANCE COMPUTING TECHNOLOGY CUDA”

  • Massively Parallel GPU Computing with CUDA: Introduction

  • Accelerating Machine Learning with CUDA

I part “Introduction to high-performance computing technology CUDA”

This course covers the theoretical and practical principles of massively parallel approach to high-performance computing using multiprocessing systems and/or combination of GPU hardware and specialised software environment. The seminar gives an overview of the types of high-performance computing hardware and software architecture, computing algorithms, application libraries and tools. More attention is paid to the applied interdisciplinary use of GPU-based parallel computing platform CUDA, e.g., analysis of large data amount, image processing, and machine learning tasks. Along with theoretical information, there is also a possibility to acquire basic skills in developing IT solutions using CUDA.

Day 1

CUDA architecture (30 min):

  • History of GPU development
  • Types of GPU architecture supported by CUDA

CUDA programming (30 min):

  • CUDA programming model
  • Basic principles of CUDA programming
  • Concepts of threads and blocks
  • GPU and CPU data exchange

Parallel algorithms in CUDA environment (30 min):

  • Parallel reduction
  • Sum of prefixes

Practical task: exercises in developing simple CUDA programs (2 h)

Day 2

CUDA memory hierarchy (30 min):

  • Memory levels
  • Register file, constant memory
  • Global memory
  • Shared memory
  • Texture memory
  • Unified memory

CUDA libraries (20 min):

  • CUBLAS
  • CURAND
  • CUFFT
  • CUSPARSE

CUDA interaction with computer graphics (20 min):

  • OpenGL interoperability
  • Image filter

CUDA application in machine learning (20 min):

  • Deep Neural Network Library cuDNN
  • Machine learning library TensorFlow

Practical task: exercises in using CUDA development tools (2 h):

  • data processing using CUBLAS and CURAND
  • image processing in GPU environment

II part “Applied use of the high-performance computing technology CUDA”

This course continues the previous “Introduction to high-performance computing technology CUDA” by focusing on CUDA implementation on multiprocessor graphical systems and CUDA cloud computing possibilities in a remote server environment, in particular. At the end, CUDA practical exercises will be offered on the RTU HPC cluster.

Day 1

Efficient use of CUDA memory (30 min):

  • Textures, arrays and possibilities of using them
  • Sharing of CUDA memory
  • CUDA unified memory

CUDA streams and events (30 min):

  • Streams and events for parallel execution
  • Asynchronous data copying
  • Parallel core execution and data exchange

Debugging and profiling of CUDA software (30 min):

  • Performance evaluation and metrics
  • Overview of Nvidia Nsight tool for debugging and profiling
  • Debugging of CUDA software
  • Profiling of CUDA performance

Practical task: exercises in developing applied CUDA programs (2 h):

  • Interaction among Nbodies
  • Interactive fluid simulation
  • Implementation of normalised correlation algorithm in image processing

Day 2

CUDA graphics in multiprocessor systems (30 min):

  • Data exchange between GPUs
  • Synchronisation of execution

CUDA in a remote server environment (1 h):

  • CUDA as a cloud computing service
  • Operation principles and architecture of HPC cluster
  • Parallel execution of CUDA jobs on the RTU HPC cluster

Practical task: exercises in developing applied CUDA programs (2 h):

  • CUDA exercises on the RTU HPC cluster
  • Photorealistic rendering in CUDA environment
APPLY FOR COURSES

Contacts

Riga Technical University
HPC Center
12 Azenes Street, room 409, Riga, LV -1048, Latvia
+371 67089453
hpc@rtu.lv

Our social media

linkedin

Links

RTU

ORTUS

©2023 Copyright - High Performance Computing Center
Scroll to top

This site uses cookies. By continuing to browse the site, you are agreeing to our use of cookies.

OKLearn more

Cookie and Privacy Settings



How we use cookies

We may request cookies to be set on your device. We use cookies to let us know when you visit our websites, how you interact with us, to enrich your user experience, and to customize your relationship with our website.

Click on the different category headings to find out more. You can also change some of your preferences. Note that blocking some types of cookies may impact your experience on our websites and the services we are able to offer.

Essential Website Cookies

These cookies are strictly necessary to provide you with services available through our website and to use some of its features.

Because these cookies are strictly necessary to deliver the website, refuseing them will have impact how our site functions. You always can block or delete cookies by changing your browser settings and force blocking all cookies on this website. But this will always prompt you to accept/refuse cookies when revisiting our site.

We fully respect if you want to refuse cookies but to avoid asking you again and again kindly allow us to store a cookie for that. You are free to opt out any time or opt in for other cookies to get a better experience. If you refuse cookies we will remove all set cookies in our domain.

We provide you with a list of stored cookies on your computer in our domain so you can check what we stored. Due to security reasons we are not able to show or modify cookies from other domains. You can check these in your browser security settings.

Other external services

We also use different external services like Google Webfonts, Google Maps, and external Video providers. Since these providers may collect personal data like your IP address we allow you to block them here. Please be aware that this might heavily reduce the functionality and appearance of our site. Changes will take effect once you reload the page.

Google Webfont Settings:

Google Map Settings:

Google reCaptcha Settings:

Vimeo and Youtube video embeds:

Accept settingsHide notification only