0% found this document useful (0 votes)
385 views

cs8076 Gpu Architecture and Programming

This document contains a question bank for the subject CS8076 GPU Architecture and Programming for the 8th semester. It is divided into three units. Unit I covers GPU architecture, parallelism, CUDA hardware overview, threads, blocks, grids, warps, scheduling and memory handling. Unit II covers CUDA programming, multi-GPU, optimizing applications by considering problem decomposition, memory, transfers, thread usage and resource contention. The question bank contains multiple choice and descriptive questions to evaluate students' understanding of key GPU and CUDA concepts from different cognitive levels ranging from remember to create.

Uploaded by

Aravind S
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
385 views

cs8076 Gpu Architecture and Programming

This document contains a question bank for the subject CS8076 GPU Architecture and Programming for the 8th semester. It is divided into three units. Unit I covers GPU architecture, parallelism, CUDA hardware overview, threads, blocks, grids, warps, scheduling and memory handling. Unit II covers CUDA programming, multi-GPU, optimizing applications by considering problem decomposition, memory, transfers, thread usage and resource contention. The question bank contains multiple choice and descriptive questions to evaluate students' understanding of key GPU and CUDA concepts from different cognitive levels ranging from remember to create.

Uploaded by

Aravind S
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

SRM VALLIAMMAI ENGINEERING COLLEGE

SRM Nagar, Kattankulathur – 603 203

DEPARTMENT OF
COMPUTER SCIENCE AND ENGINEERING

QUESTION BANK

VIII SEMESTER

CS8076 GPU ARCHITECTURE AND PROGRAMMING

Regulation – 2017

Academic Year 2022 – 2023

Prepared by

Dr.D.KAVITHA, Assistant Professor (Sr.G)/CSE


SRM VALLIAMMAI ENGINEERING COLLEGE
SRM Nagar, Kattankulathur – 603 203.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

QUESTION BANK

SUBJECT : CS8076 GPU ARCHITECTURE AND PROGRAMMING


SEM / YEAR : VIII- Fourth year

UNIT I GPU ARCHITECTURE


Evolution of GPU architectures – Understanding Parallelism with GPU –Typical GPU Architecture – CUDA
Hardware Overview – Threads, Blocks, Grids, Warps, Scheduling – Memory Handling with CUDA: Shared Memory,
Global Memory, Constant Memory and Texture Memory.
PART A
COMPET
Q.NO QUESTIONS LEVEL
ENCE
1. Identify significant milestones in evolution of GPU architecture Remember BTL-1

2. Differentiate Task parallelism and Data parallelism. Understand BTL-2

3. Analyze different components of GPU architecture. Analyze BTL-4

4. How would you evaluate thread and thread block? Evaluate BTL-5

5. List out different scheduling policies. Remember BTL-1

6. What are grid and grid wraps? Apply BTL-3

7. Define shared memory? Remember BTL-1

8. How would you describe the basic functions of Global memory? Remember BTL-1

9. What is constant memory? Explain when to use it. Evaluate BTL-5

10. What is texture memory and when to use it? Remember BTL-1

11. Discuss the need for OLAP. Understand BTL-2

12. Distinguish REMIST and FRFAIR. Understand BTL-2

13. How would you show your understanding to execute CUDA programming? Apply BTL-3

14. Generalize the key abstraction of CUDA parallel programming. Create BTL-6

15. Compare CPU design with GPU design. Analyze BTL-4


16. Compare SIMD with SPMD. Analyze BTL-4

17. List out the key features in GPU architecture. Remember BTL-1

18. Describe CUDA kernel. Understand BTL-2

19. How would you classify the hardware and software view of CUDA programming Apply BTL-3
execution model.
20. Design the streaming multiprocessor. Create BTL-6

PART B
1. What is CPU and GPU? Give the difference between CPU and GPUdesign in detail. Understand BTL-2
(13)
2. Examine the relevant examples discuss evaluation of GPU architecture. (13) Apply BTL-3

3. (i) Explain the concepts of parallelism in GPU. (7) Analyze BTL-4


(ii)Explain the Data parallelism in detail. (6)
4. Describe in brief about GPU architecture and its components in detail (13) Remember BTL-1

5. (i)Explain the steps in building CUDA hardware component. (8) Analyze BTL-4
(ii)Analyze the information needed to support the hardware component in CUDA
(5)
6. (i) Discuss in detail about Thread hierarchy and block hierarchy. (7) understand BTL-2
(ii) Describe in detail about grid and wrap hierarchy? (6)
7. Discuss in detail about different types of memories provided by CUDA. (13) Understand BTL-2

8. (i)Describe the Evolution of different GPU architecture in detail. (7) Remember BTL-1
(ii)Identify the major differences between Task and Data parallelism. (6)
9. (i) Explain in detail about overview of CUDA hardware. (13) Evaluate BTL-5

10. Describe in detail about i) DRAM scheduling policies (7) Remember BTL-1
ii) Memory hierarchy. (6)
11. (i)Compare shared memory with global memory. (7) Evaluate BTL-5
(ii)Summarize the various operations of Texture memory with constant memory.
(6)
12. Describe in detail about GPU architecture related to CPU and GPU design. (13) Remember BTL-1

13. i) Demonstrate in detail about CUDA programming model. (7) Apply BTL-3
ii) Examine in detail about CUDA kernel . (6)
14. (i)Generalize the potential performance of double wrap scheduler Create BTL-6
implementation. (7)
(ii)Design and discuss about scheduling policies in CUDA (6)

PART C

1. Explain the typical Evolution of GPU architectures with necessary Analyze BTL-4
diagrams.(15)
2. Design Typical GPU Architecture and analyze various CUDA Hardware in Create BTL-6
detail. (15)
3. Explain the different types of scheduling in GPU architecture. (15) Create BTL-6

4. Compare various memory handling with CUDA. (15) Evaluate BTL-5

UNIT II CUDA PROGRAMMING


Using CUDA – Multi GPU – Multi GPU Solutions – Optimizing CUDA Applications: Problem Decomposition,
Memory Considerations, Transfers, Thread Usage, Resource Contentions.

PART A
1. Define CUDA design goals. Remember BTL-1

2. List out the benefits of multi GPU programming? Remember BTL-1

3. Compare the different areas where multi GPU are used. Analyze BTL-4

4. Identify the working of APOD cycle. Remember BTL-1

5. How will you Apply the identified performance problem? Apply BTL-3

6. Discuss the CUDA tools that help developer in analyzing application performance. Understand BTL-2

7. Analyze memory consideration that should be thought of while improving Analyze BTL-4
performance.
8. Illustrate the guidelines should be followed while transferring data between host Analyze BTL-4
and device.
9. Analyze what care should be taken while launching kernel Apply BTL-3

10. Describe constraint resource that should be kept in mind during writing Understand BTL-2
application.
11. Analyze design goals of CUDA. Apply BTL-3

12. Summarize in detail about CUDA installation. Create BTL-6

13. Describe the hardware components of GPU. Understand BTL-2

14. Define Math libraries. Remember BTL-1

15. Write a sample program in CUDA . Evaluate BTL-5

16. Formulate the work flow of CUDA programming. Create BTL-6

17. Discuss about device memory management in CUDA. Understand BTL-2

18. Explain the Multiple GPUs. Evaluate BTL-5

19. Define APOD. Remember BTL-1

20. Describe coalesced access to global memory. Remember BTL-1

PART B
1. i) Describe the different libraries provided by CUDA. (10) Remember BTL-1
ii) Describe in detail about image and video libraries. (3)
2. State and Explain the APOD cycle in detail. (13) Analyze BTL-4

3. (i)Explain different memory space available in CUDA along with memory Evaluate BTL-5
constraint. (13)
4. Discuss in detail about recommendations that developers should focus for achieving Understand BTL-2
better performance. (13)
5. Write a C and corresponding CUDA program and explain. (13) Remember BTL-1

6. (i)Analyze in detail about what are the packages are installed while CUDA Apply BTL-3
installation. (7)
(ii) Write down the basic instructions to install CUDA (6)
7. Discuss in detail about CUDA program with an example. (13) Understand BTL-2

8. List and explain the different topologies in multi GPU. (13) Remember BTL-1

9. i) Describe in detail about multi GPU solutions. (7) Remember BTL-1


ii) Describe in detail about design cycle to optimize CUDA applications(6)
10. Discuss in detail about optimizing CUDA application. (13) Understand BTL-2

11. (i)What is problem decomposition? Explain the various problem decomposition Analyze BTL-4
techniques. (7)
(ii)Explain the memory spaces on a CUDA device. (6)
12. Explain in detail about memory considerations on a CUDA device. (13) Apply BTL-3

13. i) Compose in detail about data transfers in CUDA. (7) Create BTL-6
ii) Develop a short note Thread usage in CUDA. (6)
14. Discuss in detail about Resource contentions in CUDA (13) Analyze BTL-4

PART C

1. Explain in detail about multi GPU and Multi GPU solutions with necessary Analyze BTL-4
diagrams. (15)
2. Develop in detail about how to optimize CUDA applications in detail. (15) Create BTL-6

3. Discuss in detail about various memory considerations in CUDA. (15) Create BTL-6

4. Explain in detail about thread usage and Resource contentions. (15) Evaluate BTL-5

UNIT III PROGRAMMING ISSUES


Common Problems: CUDA Error Handling, Parallel Programming Issues, Synchronization, Algorithmic
Issues, Finding and Avoiding Errors.

PART A
1. Define Race hazard. Remember BTL-1

2. Describe the common problems faced by CUDA programmers. Remember BTL-1


3. List the commonly used CUDA error handling APIs. Remember BTL-1

4. Analyze the common mistakes by programmers relating to synchronization. Analyze BTL-4

5. Compare error and fault. Understand BTL-2

6. How would you illustrate the memory leak and what is the common cause of it? Apply BTL-3

7. Analyze the CUDA tools. Analyze BTL-4

8. List the solutions that help developers in debugging and solving CUDA program Remember BTL-1
error.
9. Define divide and conquer error finding strategy. Remember BTL-1

10. Evaluate the CUDA- MEMCHECK tool is used for. Evaluate BTL-5

11. Explain defensive programming. Understand BTL-2

12. How will you Apply assertion techniques? Apply BTL-3

13. Discuss why version control is important. Understand BTL-2

14. Explain how you will handle error functions in CUDA. Analyze BTL-4

15. Give some examples for error checking routines in CUDA. Analyze BTL-2

16. Formulate the issues in parallel programming. Create BTL-6

17. How will you analyze the canonical hazard types in CUDA? Apply BTL-3

18. Explain the synchronization issues in CUDA.? Evaluate BTL-5

19. Summarize on Memory leaks. Create BTL-6

20. Describe the various error types in CUDA. Remember BTL-1

PART B
1. Discuss CUDA error handling APIs and explain how they can be used for error BTL-3
Apply
checking. (13)
2. (i) Explain in detail about parallel programming issues. (7) BTL-5
Evaluate
(ii) Summarize on error types in CUDA. (6)
3. BTL-6
Summarize synchronization problems with suitable solutions (7) Create
4. Discuss in detail about different algorithmic issues and strategies to tackle them . BTL-2
Understand
(13)
5. (i) Compare CUDA tools. (3)
(ii) Explain the issues regarding CUDA tools. (3) BTL-4
Analyze
(iii)Write and explain the techniques are employed in finding and solving CUDA
error.(7)
6. Discuss in detail about what are the common problems in CUDA. (13) BTL-3
Apply
7. i)How would you summarize in detail about CUDA error handling? (6)
Understand BTL-2
ii)Summarize in detail about various kinds of error checking in CUDA.
(7)
8. Describe about parallel programming issues in CUDA. (13) Remember BTL-1

9. Discuss in detail about synchronization issues in CUDA. (13) Remember BTL-1

10. Describe in detail about algorithmic issues and memory leaks in CUDA. (13)
Remember BTL-1
11. (i) Examine in detail about finding and avoiding errors. (7)
Remember BTL-1
(ii)Describe in detail about CUDA-MEMCHECK. (6)
12. (i)Describe in detail about Error handling and error checking in CUDA?(13)
Understand BTL-2
13. Explain in brief about Race hazard in CUDA ? (13)
Analyze BTL-4
14. (i)Explain in brief about atomic operations in CUDA? (6)
Analyze BTL-4
(ii)Explain what are the common problems faced in CUDA ? (7)
PART C
1. Compare the synchronization issue with parallel programming issues in CUDA Analyze BTL-4
(15)
2. Summarize the various Error handling methods and error avoiding methods in Evaluate BTL-5
CUDA? (15)
3. Analyze the various common problems faced in CUDA (15) Analyze BTL-4

4. Generalize how parallel programming and synchronization issues are solved in Create BTL-6
CUDA (15)

UNIT IV OPENCL BASICS


OpenCL Standard – Kernels – Host Device Interaction – Execution Environment – Memory Model – Basic
OpenCL Examples.

PART A
1. Identify what is OpenCL. Remember BTL-1

2. Formulate the role of Kernel in parallel programming . Create BTL-6

3. Evaluate the context in OpenCL. Evaluate BTL-5

4. Define Global memory. Remember BTL-1

5. Explain what is pipe memory object. Analyze BTL-4

6. Explain what are the open source software tools that enable OpenCL. Analyze BTL-4

7. What is NVIDIA GPUs? Analyze BTL-4


8. Discuss about OpenCL components. Understand BTL-2

9. Classify the features of Intel. Understand BTL-2

10. Discuss the features of AMD Processor. Understand BTL-2

11. How would you evaluate the execution model of OpenCL? Evaluate BTL-5

12. Discuss OpenCL memory hierarchy. Remember BTL-1

13. Define device memory. Remember BTL-1

14. Illustrate the various memory objects. Apply BTL-3

15. How would you show your understanding about Image Format Descriptor? Apply BTL-3

16. Discuss image channel Data Types. Understand BTL-2

17. What inference can you formulate with Filling Image Objects? Create BTL-6

18. Demonstrate the functions in mapping image objects. Apply BTL-3

19. Define clGetImageInfo with its parameters. Remember BTL-1

20. How do you explain the Pipe Object Queries? Remember BTL-1

PART B

1. (i)Analyze the components in OpenCL. (8) Analyze BTL-4


ii) Point out the desirable properties of Global Memory. (5)
2. (i)Write the difference between various memory components in OpenCL. (8) Understand BTL-2
(ii)Discuss the different methods in Image Format Descriptor. (5)
3. What is Kernel? Describe in detail about the features of Kernel programming model Remember BTL-1
(13)
4. Discuss in detail about OpenCL memory hierarchy. (13) Apply BTL-3

5. (i)What isMemory? What are the features of memory object buffer. (8) Evaluate BTL-5
(ii)Explain how would you evaluate the execution model of OpenCL . (5)

6. i) How would you discuss the OpenCL standards in detail? (7) Understand BTL-2
ii) Discuss in detail about OpenCL standard history. (6)
7. (i)Examine in detail about OpenCL objective with examples. (4) Remember BTL-1
(ii)Describe in detail about OpenCL components. (9)
8. (i) Discuss the NVIDA and Intel architecture in detail. (5) Understand BTL-2
(ii)Interpret following Processor (8)
1. 1. ARM Mail GPUs
2. 2. AMD.
9. (i)Demonstrate in detail about Host Device interaction. (7) Apply BTL-3
(ii)Illustrate the concepts (6)
1. Kernel language extension
2. Execution model
10. Generalize the kernel programming model in detail. (13) Create BTL-6

11. i)Explain the memory object queries? (7) Analyze BTL-4


ii) Explain in detail about the parameter names by clGetMemObjectInfo (6)
12. (i)Define OpenCL. With an example program explain the OpenCL program with Remember BTL-1
example. (7)
(ii) What are the techniques for creating kernel from source code? (6)
13. (i)Explain the main steps to execute a simple OpenCL application (13) Analyze BTL-4
.
14. i) Describe in detail about the following. Remember BTL-1
(a) serial vector addition. (6)
(b) kernel execution. (7)
.

PART C

1. Develop an OpenCL architecture with programming model specifications?(15) Create BTL-6

2. Explain in detail about OpenCL components with related to hardware and software Analyze BTL-4
vendors (15)
3. Discuss in detail about Kernel and host device interaction (15) Evaluate BTL-5

4. Explain in detail about OpenCL device memory model (15) Create BTL-6

UNIT V ALGORITHMS ON GPU

Parallel Patterns: Convolution, Prefix Sum, Sparse Matrix – Matrix Multiplication – Programming Heterogeneous
Cluster.

PART A

1. Define common parallel execution patterns. Remember BTL-1

2. List the types of parallelism. Remember BTL-1

3. Describe GPU streams. Remember BTL-1

4. Analyze convolutions Analyze BTL-4

5. How will you apply parallel prefix sum operation? Apply BTL-3

6. Summarize the Task based parallelism. Evaluate BTL-5


7. Define the term MPI. Remember BTL-1

8. Demonstrate Data based parallelism. Apply BTL-3

9. How will you apply Loop based patterns? Apply BTL-3

10. Summarize the Fragment streams. Create BTL-6

11. Explain the procedure for texture streams. Create BTL-6

12. Analyze GPU kernel memory access. Analyze BTL-4

13. Discuss the use of GPU parallel algorithm. Understand BTL-2

14. Define convolution neural network. Remember BTL-1

15. Classify various convolution algorithms. Understand BTL-2

16. Differentiate serial convolution with parallel convolution. Understand BTL-2

17. Evaluate the use of parallel scan algorithm. Evaluate BTL-5

18. Discuss MPI Synchronization . Understand BTL-2

19. Define heterogeneous cluster. Remember BTL-1

20. Analyze code fragments using non blocking send and receive. Analyze BTL-4

PART B

1. Explain in detail about task parallelism and data parallelism. (13) Analyze BTL-4

2. Define convolution. Give the importance of convolution parallel algorithm. (13) Remember BTL-1

(i)3. (i)Describe the steps involved in Loop based patterns (7) Remember BTL-1
(ii) (ii)Examine in detail about types of parallelism. (6)
4. Analyze the CSR format for sparse matrix. (13) Analyze BTL-4

(i)5. (i)Define Fork. And explain the functions of Fork and Join pattern. (7) Remember BTL-1
(ii) (ii)Describe the function of Data parallelism. (6)
6. Explain how you will apply the sparse matrix multiplication algorithm in detail.(13) Apply BTL-3

(i)7. (i)Compare Data parallelism with Task parallelism. (7) Apply BTL-3
(ii) (ii)Describe the functions of several Streams in GPU. (6)
(i)8. (i)Describe the mathematical foundation for convolution. (7) Understand BTL-2
(ii) (ii)Interpret the various applications of convolution. (6)
9. Summarize the MPI communication on GPU. (13) Evaluate BTL-5

10. Develop in detail about the working of convolution Algorithm. (13) Create BTL-6
11. Distinguish the various real world interpretations of convolution. (13) Understand BTL-2

12. Summarize the source code for the image convolution host program. (13) Understand BTL-2

13. Give in detail about the working of parallel scan algorithm. (13) Analyze BTL-4

14. Define double buffer and explain the Double buffer version algorithm and Hills and Remember BTL-1
Steele algorithm. (13)

PART C

1. Analyze the procedure for improving algorithm efficiency in detail.(15) Analyze BTL-4

2. Evaluate the use of prefix sum algorithm and explain the sparse matrix Create BTL-6
multiplication model. (15)
3. Conclude the use of cuSPARSE library and explain Load balancing problem. (15) Evaluate BTL-5

(i)4. (i)Formulate the importance of parallelization of spMM. (8) Create BTL-4


(ii) (ii)Explain in detail about Heterogeneous Clusters. (7)

You might also like