Internships/ProjectIdeas/AVX: Difference between revisions

From QEMU
(Created page with "=== AVX === '''Summary:''' Support for AVX within TCG The target/i386 front end has support for TCG emulation of SSE4.1, but does not have support for later vector extensi...")
 
 
(3 intermediate revisions by 3 users not shown)
Line 1: Line 1:
=== AVX ===
=== AVX ===
'''Status:''' Jan Bobek is working on this project for GSoC.
 
'''Summary:''' Support for AVX within TCG
'''Summary:''' Support for AVX within TCG
   
 
The target/i386 front end has support for TCG emulation of SSE4.1, but does not have support for later vector extensions such as AVX.
QEMU's TCG just-in-time compiler translates target CPU instructions into host CPU instructions so that programs written for other CPU architectures can be run on any host. Modern CPUs features vector processing instruction sets, sometimes called Single Instruction Multiple Data (SIMD) instructions, for performing the same operation on multiple elements of data in just one instruction.  Intel's SSE and AVX instruction set extensions were introduced for x86 CPUs for this purpose.
 
The target/i386 front end has support for TCG emulation of SSE4.1, but does not have support for later vector extensions such as AVX.  Your task is to implement and test AVX instructions that are currently missing in QEMU.


'''Links:'''
'''Links:'''
* http://lists.nongnu.org/archive/html/qemu-devel/2018-12/msg06250.html
* http://lists.nongnu.org/archive/html/qemu-devel/2018-12/msg06250.html
* https://en.wikipedia.org/wiki/Advanced_Vector_Extensions
   
   
'''Details:'''
'''Details:'''
* Skill level: intermediate to advanced
* Skill level: intermediate to advanced
* Language: C
* Language: C
* Mentor: richard.henderson@linaro.org (IRC: rth)
* Mentor: Richard Henderson <richard.henderson@linaro.org> (rth on #qemu IRC)
* Suggested by: Nick Renieris
* Suggested by: Nick Renieris

Latest revision as of 15:16, 17 May 2019

AVX

Status: Jan Bobek is working on this project for GSoC.

Summary: Support for AVX within TCG

QEMU's TCG just-in-time compiler translates target CPU instructions into host CPU instructions so that programs written for other CPU architectures can be run on any host. Modern CPUs features vector processing instruction sets, sometimes called Single Instruction Multiple Data (SIMD) instructions, for performing the same operation on multiple elements of data in just one instruction. Intel's SSE and AVX instruction set extensions were introduced for x86 CPUs for this purpose.

The target/i386 front end has support for TCG emulation of SSE4.1, but does not have support for later vector extensions such as AVX. Your task is to implement and test AVX instructions that are currently missing in QEMU.

Links:

Details:

  • Skill level: intermediate to advanced
  • Language: C
  • Mentor: Richard Henderson <richard.henderson@linaro.org> (rth on #qemu IRC)
  • Suggested by: Nick Renieris