Difference between revisions of "SPO600 Inline Assembler Lab"

From CDOT Wiki
Jump to: navigation, search
(Lab 7)
Line 3: Line 3:
  
 
== Lab 7 ==
 
== Lab 7 ==
 +
 +
=== Part A - Start in Class ===
 +
 +
1. Write a version of the Volume Scaling solution from the [[SPO600 Algorithm Selection Lab|Algorithm Selection Lab]] for AArch64 that uses the SQDMULH or SQRDMULH instructions via inline assembler.
 +
 +
 +
2. Test the performance of your solution and compare it to your previous solution(s).
 +
 +
 +
3. Blog about your results in detail, including your reflections.
 +
 +
 +
=== Part B - Individual ===
  
 
1. Select one of the following open source packages which is not claimed by another person in the class. Put your name beside it in (parenthesis) to claim it.
 
1. Select one of the following open source packages which is not claimed by another person in the class. Put your name beside it in (parenthesis) to claim it.
Line 15: Line 28:
 
* coq
 
* coq
 
* cxxtools
 
* cxxtools
* faad2 (Kenny)
+
* faad2
 
* fawkes
 
* fawkes
* filezilla (DOES NOT HAVE ASM)
 
 
* gauche
 
* gauche
 
* gmime
 
* gmime
* gnash (Yanhao)
+
* gnash
 
* gridengine
 
* gridengine
 
* groonga
 
* groonga
 
* hoard
 
* hoard
 
* iaxclient
 
* iaxclient
* k9copy (Andrei)
+
* k9copy
 
* lame
 
* lame
 
* libfame
 
* libfame
 
* libgcroots
 
* libgcroots
* libmad (Berwout)
+
* libmad
* libmlx4 (Tom)
+
* libmlx4
 
* lightsparc
 
* lightsparc
 
* mediatomb
 
* mediatomb
 
* mjpegtools
 
* mjpegtools
 
* mlt
 
* mlt
* mosh (David)
+
* mosh
 
* mpich2
 
* mpich2
 
* ocaml-zarith
 
* ocaml-zarith
Line 44: Line 56:
 
* picprog
 
* picprog
 
* qlandkartegt
 
* qlandkartegt
* sooperlooper (Nina)
+
* sooperlooper
 
* traverso
 
* traverso
  

Revision as of 20:07, 13 February 2017

Lab icon.png
Purpose of this Lab
This lab is designed to explore the use of inline assembler, and its use in open source software.

Lab 7

Part A - Start in Class

1. Write a version of the Volume Scaling solution from the Algorithm Selection Lab for AArch64 that uses the SQDMULH or SQRDMULH instructions via inline assembler.


2. Test the performance of your solution and compare it to your previous solution(s).


3. Blog about your results in detail, including your reflections.


Part B - Individual

1. Select one of the following open source packages which is not claimed by another person in the class. Put your name beside it in (parenthesis) to claim it.

  • amule
  • ardour
  • avidemux
  • blender
  • bunny
  • busybox
  • chicken
  • cln
  • coq
  • cxxtools
  • faad2
  • fawkes
  • gauche
  • gmime
  • gnash
  • gridengine
  • groonga
  • hoard
  • iaxclient
  • k9copy
  • lame
  • libfame
  • libgcroots
  • libmad
  • libmlx4
  • lightsparc
  • mediatomb
  • mjpegtools
  • mlt
  • mosh
  • mpich2
  • ocaml-zarith
  • openblas
  • opencore-amr
  • openser
  • par2cmdline
  • picprog
  • qlandkartegt
  • sooperlooper
  • traverso


2. Find the assembler in that software, and determine:

  • How much assembley-language code is present
  • Which platform(s) it is used on
  • Why it is there (what it does)
  • What happens on other platforms
  • Your opinion of the value of the assembler code VS the loss of portability/increase in complexity of the code.


3. Blog your results in detail.