SpeedGo Computing Courses/Workshops
We provide the following courses or workshops:
*Limited period: Free one week on-site consultation service.
*Limited period: Free one week on-site consultation service.
Why is it important?
Multi-core CPU is becoming commodity, however, software does not utilize all the cores automatically. OpenMP is an industrial standard for software developers to express parallelism incrementally to existing code base, taking full advantage of the multiple cores in a chip. OpenMP is also an effective entry point to parallel programming for new software developers.
Who should enroll?
Software developers and software managers who would be involving in the development of parallel software.
What will you learn?
Why is parallel programming difficult? What are the issues? Why can't auto-parallelization software be effective? How to write OpenMP programs? How to measure the performance of a parallel program? How to minimize the overhead of parallelization? Examine whether parallelization is beneficial?
Course outline
  1. Introduction to Parallel Computing
  2. Performance Tuning and Code Optimization
  3. Hands-on for 64bit Programming and Optimization
  4. Introduction to Parallel Programming - Basic Ideas
  5. Introduction to OpenMP Programming
  6. Hands-on for OpenMP Programming
  7. Parallel Programming Issues
  8. Parallel Performance and Optimization
  9. Case Study - Parallelizing Matrix Multiplication
  10. Hands-on for Applying OpenMP
Why is it important?
The performance of multi-core CPU is still limited. GPU programming is a practical way to surpassing the performance of a CPU. GPU offers much higher FLOPS counts and memory bandwidth, breaking the limits of a CPU. As higher performance could save budget, reduce overhead in many different ways, it's certainly a rewarding effort.
Who should enroll?
Software developers and software managers who use Nvidia or ATI GPU to boost the performance of their software.
What will you learn?
What kinds of computations are suitable to execute on a GPU? What are the issues? How to write CUDA or OpenCL programs? How to measure the performance of a parallel program? How to optimize the performance of a CUDA or OpenCL program?
Course outline
  1. Introduction to GPU Computing
  2. Introduction to Nvidia GPU architecture
  3. CUDA Programming and Execution Model
  4. Introduction to CUDA Programming
  5. Hands-on for CUDA Programming
  6. CUDA Memory Model
  7. Case Study - Parallelizing Matrix Multiplication
  8. GPU Performance Optimization Highlight
  9. Using CUDA Performance Profiler
  10. Advanced CUDA Programming
  11. Hands-on for Advanced CUDA Programming
  12. Introduction to OpenCL Programming - OpenCL vs CUDA
  13. Hands-on for OpenCL Programming