We may earn an affiliate commission when you visit our partners.
Course image
Chancellor Thomas Pascale

This course will aid in students in learning in concepts that scale the use of GPUs and the CPUs that manage their use beyond the most common consumer-grade GPU installations. They will learn how to manage asynchronous workflows, sending and receiving events to encapsulate data transfers and control signals. Also, students will walk through application of GPUs to sorting of data and processing images, implementing their own software using these techniques and libraries.

Read more

This course will aid in students in learning in concepts that scale the use of GPUs and the CPUs that manage their use beyond the most common consumer-grade GPU installations. They will learn how to manage asynchronous workflows, sending and receiving events to encapsulate data transfers and control signals. Also, students will walk through application of GPUs to sorting of data and processing images, implementing their own software using these techniques and libraries.

By the end of the course, you will be able to do the following:

- Develop software that can use multiple CPUs and GPUs

- Develop software that uses CUDA’s events and streams capability to create asynchronous workflows

- Use the CUDA computational model to to solve canonical programming challenges including data sorting and image processing

To be successful in this course, you should have an understanding of parallel programming and experience programming in C/C++.

This course will be extremely applicable to software developers and data scientists working in the fields of high performance computing, data processing, and machine learning.

Enroll now

What's inside

Syllabus

Course Overview
The purpose of this module is for students to understand how the course will be run, topics, how they will be assessed, and expectations.
Read more
Multiple CPU/GPU Systems
In professional settings, use of one CPU managing one GPU, is not a viable configuration to solve complex challenges. Students will apply CUDA capabilities for allowing multiple CPUs to communicate and manage software kernels on multiple GPUs. This will allow for scaling the size of input data and computational complexity. Students will learn the advantages and limitations of this form of synchronous processing.
CUDA Events and Streams
Students will learn to utilize CUDA events and streams in their programs, to allow for asynchronous data and control flows. This will allow more interactive and long-lasting software, including analytic user interfaces, near live-streaming video or financial feeds, and dynamic business processing systems.
Sorting Using GPUs
The purpose of this module is for students to understand the basis in hardware and software that CUDA uses. This is required to appropriately develop software to optimally take advantage of GPU resources.
Image Processing using Nvidia Programming Primitives
The purpose of this module is for students to understand the principles of developing CUDA-based software.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches use of multiple CPUs and GPUs, which is advanced and used by data scientists and software developers
Taught by Chancellor Thomas Pascale, who is recognized for their work in industry
Explores managing asynchronous workflows, which are used to avoid software lag
Teaches optimal software development for data processing and machine learning, which are common tasks in data science and software development
Develops software for image processing and data sorting, which are foundational skills for data scientists
Requires knowledge of parallel programming, which is a foundational skill for data scientists and software developers

Save this course

Save CUDA at Scale for the Enterprise to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in CUDA at Scale for the Enterprise with these activities:
Review basics of computer science
Brushing up on prerequisite skills such as computer science fundamentals can enhance understanding throughout the course.
Browse courses on Computer Science
Show steps
  • Review programming concepts such as variables, data types, and control flow.
  • Go through basic data structures such as arrays, lists, and dictionaries.
  • Practice implementing simple algorithms.
Review linear algebra concepts
Revisiting linear algebra fundamentals can provide a strong foundation for understanding GPU programming.
Browse courses on Linear Algebra
Show steps
  • Review basic concepts such as vectors, matrices, and matrix operations.
  • Practice solving systems of linear equations.
  • Explore concepts like eigen values and eigen vectors.
Follow tutorials on multithreading
Engaging with tutorials on multithreading can provide practical insights into the concepts covered in the course.
Show steps
  • Find reputable tutorials on multithreading in C/C++.
  • Go through the tutorials and implement the concepts in your own code.
  • Experiment with different multithreading techniques and observe their effects.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Solve coding challenges involving CUDA programming
Engaging in coding challenges specific to CUDA programming can enhance problem-solving skills and reinforce course concepts.
Show steps
  • Find online coding platforms that offer CUDA programming challenges.
  • Attempt to solve the challenges using the techniques learned in the course.
  • Analyze the solutions and identify areas for improvement.
Solve coding challenges involving multithreading
Solving coding challenges can reinforce the understanding of multithreading concepts and improve problem-solving skills.
Show steps
  • Find online coding platforms that offer multithreading challenges.
  • Attempt to solve the challenges using the concepts learned in the course.
  • Analyze the solutions and identify areas for improvement.
Develop a multithreaded application
Creating a multithreaded application provides hands-on experience in applying the concepts learned in the course.
Show steps
  • Design and plan the architecture of the multithreaded application.
  • Implement the application using C/C++ and appropriate multithreading libraries.
  • Test and debug the application to ensure it meets the desired functionality.
Participate in a coding competition focused on multithreading
Participating in coding competitions can push the limits of understanding and showcase the application of multithreading skills.
Show steps
  • Find coding competitions that focus on multithreading.
  • Prepare for the competition by practicing and refining multithreading skills.
  • Compete in the coding competition and aim for a high ranking.

Career center

Learners who complete CUDA at Scale for the Enterprise will develop knowledge and skills that may be useful to these careers:
Machine Learning Engineer
Machine Learning Engineers build and deploy machine learning models. They work with data to train models that can learn from data and make predictions. This course can help Machine Learning Engineers learn how to use GPUs to accelerate their training and inference tasks. The course will also teach Machine Learning Engineers how to use CUDA events and streams to create asynchronous workflows, which can help improve the performance of their applications.
Data Analyst
Data Analysts use data to identify patterns and trends, and then develop models to predict future outcomes. This course can help Data Analysts learn how to use GPUs to accelerate their data processing and modeling tasks. The course will also teach Data Analysts how to use CUDA events and streams to create asynchronous workflows, which can help improve the performance of their applications.
Data Scientist
Data Scientists use data to solve business problems. They work with data to identify patterns and trends, and then develop models to predict future outcomes. This course can help Data Scientists learn how to use GPUs to accelerate their data processing and modeling tasks. The course will also teach Data Scientists how to use CUDA events and streams to create asynchronous workflows, which can help improve the performance of their applications.
Software Engineer
Software Engineers design, develop, and maintain software applications. They work with stakeholders to understand business needs and translate them into technical solutions. This course can help Software Engineers learn how to use GPUs and CPUs to scale their solutions to meet the growing demands of the business. The course will also teach Software Engineers how to use CUDA events and streams to create asynchronous workflows, which can help improve the performance of their applications.
Business Analyst
Business Analysts work with stakeholders to understand business needs and translate them into technical solutions. This course can help Business Analysts learn how to use GPUs and CPUs to scale their solutions to meet the growing demands of the business. The course will also teach Business Analysts how to use CUDA events and streams to create asynchronous workflows, which can help improve the performance of their applications.
Cloud Architect
Cloud Architects design, build, and manage cloud computing solutions. They work with stakeholders to understand business needs and translate them into technical solutions. This course can help Cloud Architects learn how to use GPUs and CPUs to scale their solutions to meet the growing demands of the business. The course will also teach Cloud Architects how to use CUDA events and streams to create asynchronous workflows, which can help improve the performance of their applications.
Enterprise Architect
Enterprise Architects design, build, and maintain the technology infrastructure that supports an organization’s business goals. They work with stakeholders across the enterprise to understand business needs and translate them into technical solutions. This course can help Enterprise Architects learn how to use GPUs and CPUs to scale their solutions to meet the growing demands of the business. The course will also teach Enterprise Architects how to use CUDA events and streams to create asynchronous workflows, which can help improve the performance of their applications.
DevOps Engineer
DevOps Engineers work to bridge the gap between development and operations. They work to ensure that software is developed and deployed quickly and reliably. This course can help DevOps Engineers learn how to use GPUs and CPUs to improve the performance of their development and deployment pipelines. The course will also teach DevOps Engineers how to use CUDA events and streams to create asynchronous workflows, which can help improve the efficiency of their pipelines.
Network Administrator
Network Administrators manage and maintain computer networks. They work with stakeholders to understand network needs and then design and implement network solutions. This course can help Network Administrators learn how to use GPUs and CPUs to improve the performance of their networks. The course will also teach Network Administrators how to use CUDA events and streams to create asynchronous workflows, which can help improve the efficiency of their networks.
Database Administrator
Database Administrators manage and maintain databases. They work with stakeholders to understand data needs and then design and implement database solutions. This course can help Database Administrators learn how to use GPUs and CPUs to improve the performance of their databases. The course will also teach Database Administrators how to use CUDA events and streams to create asynchronous workflows, which can help improve the efficiency of their databases.
Project Manager
Project Managers plan, execute, and close projects. They work with stakeholders to define project scope, timelines, and budgets. This course can help Project Managers learn how to use GPUs and CPUs to scale their projects to meet the growing demands of the business. The course will also teach Project Managers how to use CUDA events and streams to create asynchronous workflows, which can help improve the efficiency of their projects.
Information Security Analyst
Information Security Analysts protect computer systems and networks from unauthorized access, use, disclosure, disruption, modification, or destruction. They work with stakeholders to identify and mitigate security risks. This course can help Information Security Analysts learn how to use GPUs and CPUs to improve the performance of their security measures. The course will also teach Information Security Analysts how to use CUDA events and streams to create asynchronous workflows, which can help improve the efficiency of their security measures.
Technical Writer
Technical Writers create documentation for software and hardware products. They work with engineers and other stakeholders to understand the product and then write clear and concise documentation. This course can help Technical Writers learn how to use GPUs and CPUs to improve the performance of their documentation. The course will also teach Technical Writers how to use CUDA events and streams to create asynchronous workflows, which can help improve the efficiency of their documentation.
Systems Administrator
Systems Administrators manage and maintain computer systems. They work to ensure that systems are running smoothly and that data is secure. This course can help Systems Administrators learn how to use GPUs and CPUs to improve the performance of their systems. The course will also teach Systems Administrators how to use CUDA events and streams to create asynchronous workflows, which can help improve the responsiveness of their systems.
Quality Assurance Analyst
Quality Assurance Analysts test software and hardware products to ensure that they meet quality standards. They work with engineers and other stakeholders to identify and fix defects. This course can help Quality Assurance Analysts learn how to use GPUs and CPUs to improve the performance of their testing. The course will also teach Quality Assurance Analysts how to use CUDA events and streams to create asynchronous workflows, which can help improve the efficiency of their testing.

Reading list

We've selected eight books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in CUDA at Scale for the Enterprise.
Comprehensive guide to CUDA programming, covering the basics of CUDA as well as advanced topics such as performance optimization and debugging. It valuable resource for anyone who wants to learn more about CUDA programming, regardless of their level of experience.
Provides a comprehensive overview of parallel programming, with a focus on CUDA programming. It valuable resource for anyone who wants to learn more about parallel programming, regardless of their level of experience.
Provides a comprehensive overview of high performance scientific computing. It valuable resource for anyone who wants to learn more about high performance scientific computing, regardless of their level of experience.
Classic reference on numerical methods. It valuable resource for anyone who wants to learn more about numerical methods, regardless of their level of experience.
Provides a comprehensive overview of parallel computing. It valuable resource for anyone who wants to learn more about parallel computing, regardless of their level of experience.
Classic reference on computer architecture. It valuable resource for anyone who wants to learn more about computer architecture, regardless of their level of experience.
Classic reference on operating systems. It valuable resource for anyone who wants to learn more about operating systems, regardless of their level of experience.
Comprehensive guide to deep learning. It valuable resource for anyone who wants to learn more about deep learning, regardless of their level of experience.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to CUDA at Scale for the Enterprise.
Create Your First Multithreaded Application in Java
Most relevant
MATLAB Parallel programming on GPUs, Cores and CPUs
Most relevant
Introduction to Parallel Programming with CUDA
Introduction to AI in the Data Center
AI Application Boost with NVIDIA RAPIDS Acceleration
Algorithms and Data Structures - Part 2
Getting Started with Reactive Programming Using RxJS
Asynchronism using .NET Core: Implement a banking system
Java 8 Fundamentals: Asynchronous Programming Using...
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser