QEMU-Devel Archive on lore.kernel.org
 help / color / Atom feed
* [Qemu-devel] [GSOC] Support for AVX within TCG: Work Product Submission
@ 2019-08-25 19:30 Jan Bobek
  2019-08-27 10:45 ` Stefan Hajnoczi
  0 siblings, 1 reply; 2+ messages in thread
From: Jan Bobek @ 2019-08-25 19:30 UTC (permalink / raw)
  To: qemu-devel; +Cc: Alex Bennée, Richard Henderson, Stefan Hajnoczi

[-- Attachment #1.1: Type: text/plain, Size: 3399 bytes --]

Hi folks,

those of you who have been keeping up with Google Summer of Code
this year might know that it's nearly over -- meaning that it's
time for me to summarize all the work that I have done as a
participant. Without further ado, you can find the summary
attached below.

Huge thanks to everyone who made this possible!

Best,
-Jan Bobek

----

GSOC WORK PRODUCT SUBMISSION

TITLE: Support for AVX within TCG
DATE: 08/25/2019
AUTHOR: Jan Bobek <jan.bobek@gmail.com>
MENTOR: Richard Henderson <richard.henderson@linaro.org>

I. SUMMARY

The goal of this GSoC project was to implement support for AVX
instructions in the i386 TCG front-end. The project was effectively
split up into two parts:

  - extending RISU [1] with the ability to generate and test x86
    instruction streams (to properly test the new AVX implementation);

  - the actual work on AVX instructions in the i386 TCG front-end.

II. RISU CHANGES

There have been two patch series with changes to RISU:

  - The first one [2] adds support for testing x86 instruction
    sequences, and has been merged as early as June 7, 2019.

  - The second series [3] implements generation of x86 instruction
    streams using vector instructions up to AVX2; its latest iteration
    has not been merged yet due to several more or less minor issues
    raised during code review.

Despite the second series not being merged yet, the implemented
functionality was considered sufficient and a decision was made to
proceed to the next stage of the project [4].

III. QEMU CHANGES

All QEMU changes related to this project are included in a single
extensive patch series [5]; previous iterations can be found at [6],
[7] and [8].

The series features:

  - brand-new infrastructure for instruction decoding;

  - support for decoding vector instructions up to AVX2.

Work that remains to be done includes:

  - rewrite of old ad-hoc helpers into gvec-style helpers;

  - implementation of helpers for previously unsupported AVX
    instructions (e.g. VGATHER et al.)

IV. FINAL NOTES

Even though I could not completely finish the project in the allotted
time, I had a great time working on it, and I am planning to do the
rest of the work in my free time over the coming weeks. Needless to
say, I learned a lot in the process (especially about the x86 ISA),
and I am very thankful to the GSoC program for making it all possible.

Last but definitely not least, I would like to thank my mentor,
Richard Henderson, for his support and assistance throughout this
project. Your insights during code reviews have been indispensable,
and I would not have been able to make as much progress on this
project without your guidance.

Thank you, Richard!

REFERENCES

  1. http://git.linaro.org/people/peter.maydell/risu.git/
  2. https://lists.nongnu.org/archive/html/qemu-devel/2019-05/msg05720.html
  3. https://lists.nongnu.org/archive/html/qemu-devel/2019-07/msg02916.html
  4. https://lists.nongnu.org/archive/html/qemu-devel/2019-07/msg04758.html
  5. https://lists.nongnu.org/archive/html/qemu-devel/2019-08/msg04412.html
  6. https://lists.nongnu.org/archive/html/qemu-devel/2019-08/msg02616.html
  7. https://lists.nongnu.org/archive/html/qemu-devel/2019-08/msg01790.html
  8. https://lists.nongnu.org/archive/html/qemu-devel/2019-07/msg07041.html


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [Qemu-devel] [GSOC] Support for AVX within TCG: Work Product Submission
  2019-08-25 19:30 [Qemu-devel] [GSOC] Support for AVX within TCG: Work Product Submission Jan Bobek
@ 2019-08-27 10:45 ` Stefan Hajnoczi
  0 siblings, 0 replies; 2+ messages in thread
From: Stefan Hajnoczi @ 2019-08-27 10:45 UTC (permalink / raw)
  To: Jan Bobek; +Cc: Alex Bennée, Richard Henderson, qemu-devel

[-- Attachment #1: Type: text/plain, Size: 682 bytes --]

On Sun, Aug 25, 2019 at 03:30:49PM -0400, Jan Bobek wrote:
> Hi folks,
> 
> those of you who have been keeping up with Google Summer of Code
> this year might know that it's nearly over -- meaning that it's
> time for me to summarize all the work that I have done as a
> participant. Without further ado, you can find the summary
> attached below.
> 
> Huge thanks to everyone who made this possible!
> 
> Best,
> -Jan Bobek

Thanks for your contributions, Jan!

If you have the opportunity to attend KVM Forum 2019 in Lyon, France it
would allow you to meet many members of the QEMU community:
https://events.linuxfoundation.org/events/kvm-forum-2019/

Stefan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, back to index

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-25 19:30 [Qemu-devel] [GSOC] Support for AVX within TCG: Work Product Submission Jan Bobek
2019-08-27 10:45 ` Stefan Hajnoczi

QEMU-Devel Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/qemu-devel/0 qemu-devel/git/0.git
	git clone --mirror https://lore.kernel.org/qemu-devel/1 qemu-devel/git/1.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 qemu-devel qemu-devel/ https://lore.kernel.org/qemu-devel \
		qemu-devel@nongnu.org qemu-devel@archiver.kernel.org
	public-inbox-index qemu-devel


Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.nongnu.qemu-devel


AGPL code for this site: git clone https://public-inbox.org/ public-inbox