User Tools

Site Tools


spo600:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
spo600:start [2025/02/21 12:52] chrisspo600:start [2025/03/14 10:30] (current) chris
Line 14: Line 14:
 |Week 7|February 17|[[#Week 7 - Class I|Project Stage 1]]|[[#Week 7 - Class II|Indirect Functions (IFUNC), Function Multi Versioning (FMV), Automatic Function Multi Versioning (AFMV)]]|[[#Week 7 Deliverables|Project bogging]]| |Week 7|February 17|[[#Week 7 - Class I|Project Stage 1]]|[[#Week 7 - Class II|Indirect Functions (IFUNC), Function Multi Versioning (FMV), Automatic Function Multi Versioning (AFMV)]]|[[#Week 7 Deliverables|Project bogging]]|
 |Reading Week|February 24|Study Week||| |Reading Week|February 24|Study Week|||
-|Week 8|March 3|Project Discussion|Single Instruction Multiple Data (SIMD) and Scalable Vector Extensions (SVE and SVE2)|Project Stage 1, Blog posts group 2| +|Week 8|March 3|[[#Week 8 - Class I|Project Discussion; Single Instructioni Multiple Data (SIMD)]]|[[#Week 8 - Class II|Single Instruction Multiple Data (SIMD) and Scalable Vector Extensions (SVE and SVE2)]]\\ **Part Async**|[[#Week 8 Deliverables|Project Stage 1, Blog posts group 2]]
-|Week 9|March 10|Project Discussion|Profiling and Benchmarking|Project blogging|+|Week 9|March 10|[[#Weel 9 - Class I|Project Discussion]]|[[#Week 9 - Class II|Project Stage II]]\\ **Async**|[[#Weel 9 Deliverables|Project blogging]]|
 |Week 10|March 17|Project Discussion|Algorithm Selection|Project blogging| |Week 10|March 17|Project Discussion|Algorithm Selection|Project blogging|
 |Week 11|March 24|Project Discussion|Paged Memory|Project stage 2, Blog posts group 3| |Week 11|March 24|Project Discussion|Paged Memory|Project stage 2, Blog posts group 3|
Line 330: Line 330:
  
 === Video === === Video ===
-  * Edited summary video pending+{{vimeo>1059089464?full}}
  
-==== Runtime Codepath Selection ====+=== Runtime Codepath Selection ===
  
 1. **IFUNC** - The ifunc capability allows a program to provide multiple implementations of a function, and to use a "resolver function" which is run once at program initialization to determine which implementation will be used. The resolver function returns a pointer to the selected function, which is used from that point on as for the life of the process. This capability is very flexible but requires the programmer to create: 1. **IFUNC** - The ifunc capability allows a program to provide multiple implementations of a function, and to use a "resolver function" which is run once at program initialization to determine which implementation will be used. The resolver function returns a pointer to the selected function, which is used from that point on as for the life of the process. This capability is very flexible but requires the programmer to create:
Line 354: Line 354:
   * any function clones which are fundamentally the same after optimization will be pruned back to a single implementation   * any function clones which are fundamentally the same after optimization will be pruned back to a single implementation
  
-==== Resources ====+=== Resources ===
  
   * [[Building GCC]] guide page on this wiki   * [[Building GCC]] guide page on this wiki
Line 365: Line 365:
     * Note that GCC is [[https://github.com/gcc-mirror/gcc|mirrored]] onto GitHub, but the main activity is conducted in the GCC git repository documented in the link above. The GitHub mirror is provided for the convenience of GitHub users, but the GitHub workflow (including approaches such as forking and pull requests) is not used by the GCC project; instead, they discuss and review patches through an email-based workflow.     * Note that GCC is [[https://github.com/gcc-mirror/gcc|mirrored]] onto GitHub, but the main activity is conducted in the GCC git repository documented in the link above. The GitHub mirror is provided for the convenience of GitHub users, but the GitHub workflow (including approaches such as forking and pull requests) is not used by the GCC project; instead, they discuss and review patches through an email-based workflow.
  
-=== Specifics: IFUNC ===+== Specifics: IFUNC ==
  
 GCC IFUNC documenation: GCC IFUNC documenation:
Line 371: Line 371:
   * [[https://sourceware.org/glibc/wiki/GNU_IFUNC|GCC Wiki]]   * [[https://sourceware.org/glibc/wiki/GNU_IFUNC|GCC Wiki]]
  
-=== Specifics: FMV ===+== Specifics: FMV ==
  
 Current documentation: Current documentation:
Line 404: Line 404:
   * Work on your Project Stage 1 and blog about it.   * Work on your Project Stage 1 and blog about it.
  
 +===== Week 8 =====
 +
 +==== Week 8 - Class I ====
 +
 +=== Video ===
 +
 +**There are some technical issues with camera focus on the video for this week.** My apologies for the low quality!
 +
 +{{vimeo>1063430031?full}}
 +
 +=== SIMD Examples ===
 +
 +The sound volume scaling examples mentioned in the video may be found in the file ''/public/spo600-volume-examples.tgz'' on either of the [[SPO600 Servers]].
 +
 +==== Week 8 - Class II ====
 +
 +=== Video ===
 +
 +{{vimeo>1063482268?full}}
 +
 +=== SVE/SVE2 Examples ===
 +
 +For some SVE/SVE2 example code, see ''/public/spo600-sve-sve2-ifunc-examples.tgz'' on aarch64-001.spo600.cdot.systems. This archive contains:
 +
 +  * ''spo600/examples/sve2-test'' - Example SVE2 code, in vectorizable C, inline assembler, and C with [[Compiler intrinsics|intrinsics]]
 +    * ''spo600/examples/sve2-test/sve-width'' - Example inline assembler code C intrinsic code for determining the width of the SVE/SVE2 vectors on a given system
 +  * ''spo600/examples/ifunc'' - Test/demo code using ifunc with 3 versions of a dummy function (advanced SIMD, SVE, and SVE2)
 +  * (ignore the directory ''spo600/examples/autoifunc'')
 +
 +==== Week 8 Deliverables ====
 +
 +  * Complete your project stage 1, and blog posts group 2, by Sunday night (March 9 at 11:59 pm).
 +
 +===== Week 9 =====
 +
 +==== Week 9 - Class I ====
 +
 +=== Video ===
 +  * Edited summary video pending
 +
 +==== Week 9 - Class II ====
 +
 +=== Project Stage II ===
 +  * Refer to your email for Project Stage I feedback.
 +  * See the [[2025_winter_project#|Project Page]] for Stage II details.
 +
 +==== Week 9 Deliverables ====
 +  * Start on your Project Stage II and blog about your work.
  
 <!-- <!--
spo600/start.1740142359.txt.gz · Last modified: 2025/02/21 12:52 by chris

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki