9
Home Exam 1: Video Encoding on Intel x86 using Streaming SIMD Extensions (SSE) September 2 nd 2013 INF5063: Programming heterogeneous multi-core processors … because the OS-course is just to easy! Håkon Kvale Stensland

Home Exam 1 : Video Encoding on Intel x86 using Streaming SIMD Extensions (SSE)

  • Upload
    drago

  • View
    36

  • Download
    0

Embed Size (px)

DESCRIPTION

INF5063: Programming heterogeneous multi-core processors. … because the OS-course is just to easy!. Home Exam 1 : Video Encoding on Intel x86 using Streaming SIMD Extensions (SSE). September 2 nd 2013. Håkon Kvale Stensland. Video Encoding. - PowerPoint PPT Presentation

Citation preview

Page 1: Home Exam 1 :  Video Encoding  on Intel x86 using Streaming SIMD Extensions (SSE)

Home Exam 1: Video Encoding on Intel x86 using Streaming SIMD Extensions

(SSE)

September 2nd 2013

INF5063: Programming heterogeneous multi-core processors

… because the OS-course is just to easy!

Håkon Kvale Stensland

Page 2: Home Exam 1 :  Video Encoding  on Intel x86 using Streaming SIMD Extensions (SSE)

INF5063, Pål Halvorsen, Carsten Griwodz, Håvard Espeland, Håkon StenslandUniversity of Oslo

Video Encoding• Pål wants to encode some videos on his computer…

• Pål wants to spend all his budget on a new PowerPoint 2013 license, so new hardware or a H.264 licence is out of the question!

• It is therefore your task to make the encoder as efficient as possible on a single core (the rest of the cores are occupied with running PowerPoint animations).

Page 3: Home Exam 1 :  Video Encoding  on Intel x86 using Streaming SIMD Extensions (SSE)

INF5063, Pål Halvorsen, Carsten Griwodz, Håvard Espeland, Håkon StenslandUniversity of Oslo

Codec63• Codec63 is basically MJPEG with intra-frame

dependencies.

• It adds Motion Estimation and Motion Compensation from the MJPEG example.

• It has a more efficient DCT implementation (1D vs. 2D)

• Will be the basis for all three home exams in the course.

• The precode that is handed out today is a basic single threaded Codec63 encoder and decoder written in C.

Page 4: Home Exam 1 :  Video Encoding  on Intel x86 using Streaming SIMD Extensions (SSE)

INF5063, Pål Halvorsen, Carsten Griwodz, Håvard Espeland, Håkon StenslandUniversity of Oslo

Precode• You are not allowed to change out the Motion Estimation,

Motion Compensation or DCT algorithms.

• You are not allowed to paste code from other projects / encoders.

• You can use your own machines for this assignment, but you have to make sure that the code works on the gpu-5, gpu-6, gpu-7 or gpu-8 machines at the Simula network

• You only need to optimize the Codec63 encoder!

• Your implementation is supposed to be single threaded, and optimized to use the instruction level parallelism available in a single x86 core.

Page 5: Home Exam 1 :  Video Encoding  on Intel x86 using Streaming SIMD Extensions (SSE)

INF5063, Pål Halvorsen, Carsten Griwodz, Håvard Espeland, Håkon StenslandUniversity of Oslo

Your task• Utilize the instruction level parallelism (ILP), CPU vector unit and

other tricks to get the most performance out of a single core.

• Start by profiling the encoder to see which parts of the encoder that are the bottlenecks.

• Remember, after optimizing one part of the code, more profiling might be needed to find new bottlenecks.

• Write a scientific report with details on which parts of the encoding process that benefited from your optimizations. The report should also explain how your code works.

• Remember to also report on optimization that did not work as you expected!

Page 6: Home Exam 1 :  Video Encoding  on Intel x86 using Streaming SIMD Extensions (SSE)

INF5063, Pål Halvorsen, Carsten Griwodz, Håvard Espeland, Håkon StenslandUniversity of Oslo

How are you evaluated?• Make sure that your implementation compiles and

run, and that it can produce correct video output (we also check the motion prediction).

• The use of the parallelization potential (SIMD) in a x86 CPU for: Motion Estimation, Motion Compensation and DCT/iDCT.

• Quality of the report. Is profiling of the code done between the different steps and how are the different optimization attempts documented and discussed in the report.

• Presentation of your solution is required to pass the exam!

Page 7: Home Exam 1 :  Video Encoding  on Intel x86 using Streaming SIMD Extensions (SSE)

INF5063, Pål Halvorsen, Carsten Griwodz, Håvard Espeland, Håkon StenslandUniversity of Oslo

Formal Information Deadline: Wednesday September 25th –

12:00

The assignment will be graded, and count 33% of the final grade.

Deliver your code and report to: https://devilry.ifi.uio.no/

Prepare a short (5 - 10 minutes) presentation for the class on the Thursday September 26th.

Page 8: Home Exam 1 :  Video Encoding  on Intel x86 using Streaming SIMD Extensions (SSE)

INF5063, Pål Halvorsen, Carsten Griwodz, Håvard Espeland, Håkon StenslandUniversity of Oslo

Last but not least!

Codec63 precode available for download in git. Clone the repository and work on you own local version.

git clone https://bitbucket.org/mpg_code/inf5063-codec63.git

Bugs in the code can be reported in Bitbucket’s issue tracking system, or on e-mail (inf5063 at ifi.uio.no)

Page 9: Home Exam 1 :  Video Encoding  on Intel x86 using Streaming SIMD Extensions (SSE)

Good Luck!

PS! Start early!