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/03/07 05:44] chrisspo600:start [2025/03/28 13:20] (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|[[#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)]]|[[#Week 8 Deliverables|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|[[#Week 9 - Class I|Project Stage II]]|[[#Week 9 - Class II|Project Stage I results]]|[[#Weel 9 Deliverables|Project blogging]]
-|Week 10|March 17|Project Discussion|Algorithm Selection|Project blogging| +|Week 10|March 17|[[#Week 10 - Class I|Project Discussion]]|[[#Week 10 - Class II|Benchmarking & Profiling]]\\ **Part Async**|[[#Week 10 Deliverables|Project blogging]]
-|Week 11|March 24|Project Discussion|Paged Memory|Project stage 2, Blog posts group 3+|Week 11|March 24|[[#Week 11 - Class I|Paged Memory Systems]]|[[#Week 11 - Class II|Advanced Memory Concepts]]\\ **Part Async**|[[#Week 11 Deliverables|Project blogging]]
-|Week 12|March 31|Project Discussion|Advanced Memory Concepts|Project blogging|+|Week 12|March 31|Project Discussion|Advanced Memory Concepts|Project Stage 2, Blog posts group 3|
 |Week 13|April 7|Project Discussion|Project Recommendations|Project blogging| |Week 13|April 7|Project Discussion|Project Recommendations|Project blogging|
 |Week 14|April 14|Course Wrap-Up|//No class//|Project Stage 3, Blog posts group 4| |Week 14|April 14|Course Wrap-Up|//No class//|Project Stage 3, Blog posts group 4|
Line 413: Line 413:
  
 {{vimeo>1063430031?full}} {{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 ==== ==== Week 8 - Class II ====
Line 418: Line 422:
 === Video === === Video ===
  
-  Edited summary video pending+{{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 ==== ==== Week 8 Deliverables ====
  
-  * Complete your project stage 1, and blog posts group 2, by Sunday night (11:59 pm).+  * 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 === 
 +{{vimeo>1066891620?full}} 
 + 
 +==== Week 9 - Class II ==== 
 + 
 +=== Project Stage II === 
 +  * Refer to your email for Project Stage I feedback. 
 +  * See the [[2025_winter_project#project_stage_2clone-pruning_analysis_pass|Project Page]] for Stage II details. 
 + 
 +==== Week 9 Deliverables ==== 
 +  * Start on your [[2025_winter_project#project_stage_2clone-pruning_analysis_pass|Project Stage II]] and blog about your work. 
 + 
 +===== Week 10 ===== 
 + 
 +==== Week 10 - Class I ==== 
 + 
 +=== Video === 
 +{{vimeo>1067796062?full}} 
 + 
 +=== Code Sample === 
 + 
 +Here is some of the code that was discussed in the lecture; this is the ''execute()'' method from a pass: 
 + 
 +<code c++> 
 +unsigned int 
 +pass_ctyler::execute (function *fun) 
 +  { 
 + 
 +    basic_block bb; 
 + 
 +    if (dump_file) { 
 + 
 + 
 +      fprintf(dump_file, "--------------------------------------------------------------------\n"); 
 +      fprintf(dump_file, "Function: %s\n", IDENTIFIER_POINTER(DECL_NAME(fun->decl)) ); 
 +      fprintf(dump_file, "--------------------------------------------------------------------\n"); 
 + 
 +      FOR_EACH_BB_FN(bb, fun) { 
 +          for (gimple_stmt_iterator gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) { 
 +              gimple *stmt = gsi_stmt(gsi); 
 + 
 +              print_gimple_stmt(dump_file, stmt, 0, TDF_NONE); 
 + 
 +              fprintf(dump_file, "\n  Gimple code:       %d\n", gimple_code(stmt) ); 
 +              fprintf(dump_file, Gimple code name:  %s\n", gimple_code_name[gimple_code(stmt)] ); 
 + 
 +              fprintf(dump_file, "--------------------------------------------------------------------\n"); 
 + 
 +          } 
 + 
 +          fprintf (dump_file, "\n\n#### End ctyler diagnostics, start regular dump of current gimple ####\n\n\n"); 
 +      } 
 + 
 +    } 
 + 
 +    return 0; 
 + 
 +  } 
 +</code> 
 + 
 +==== Week 10 - Class II ===== 
 + 
 +==== Video ==== 
 + 
 +{{vimeo>1068056744?full}} 
 + 
 +==== Week 10 Deliverables ==== 
 +  * Work on your [[2025_winter_project#project_stage_2clone-pruning_analysis_pass|Project Stage II]] and blog about your work. 
 + 
 + 
 +===== Week 11 ===== 
 + 
 +==== Week 11 - Class I ==== 
 + 
 +=== Video === 
 +{{vimeo>1069809933?full}} 
 + 
 +==== Week 11 - Class II ==== 
 + 
 +=== Video === 
 +{{vimeo>1070319430?full}} 
 + 
 +==== Week 11 Deliverables ==== 
 +  * Continue your project work (stage II) and blog as you go.
  
 <!-- <!--
spo600/start.1741326241.txt.gz · Last modified: 2025/03/07 05:44 by chris

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki