You are on page 1of 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