• 2024-10-14Stanford CS149 -- Assignment 3: A Simple CUDA Renderer
    作业描述及代码参见:CS149-asst3实验环境:WSL2;GeForceMX350;Cuda12.6第一部分:CUDA热身练习1:SAXPY实验结果:相比基于CPU的实现,性能明显下降。这是由于SAXPY属于I/O密集型任务,计算量较小,主要的时间耗费在数据的转移。第二部分:CUDA热身练习2:并行前缀和第三部分:简单
  • 2024-10-14Stanford CS149 -- Assignment 2: Building A Task Execution Library from the Ground Up
    作业描述及代码参见:CS149-asst2PartAStep1只需要实现一个简单的任务系统,在run()的开始生成工作线程,并在run()返回之前从主线程合并这些线程。任务的分配方式采用动态分配,即每个线程每次取一个任务完成,能者多劳。每个线程的核心实现为:while(true){inttaskID=done+
  • 2024-10-14Stanford CS149 -- Assignment 1: Performance Analysis on a Quad-Core CPU
    作业描述及代码参加:CS149-asst1程序1生成view1时加速比与线程数的关系如下:线程数加速比22.0431.6942.5452.5763.2673.5584.11生成view2时加速比与线程数的关系如下:线程数加速比21.7532.2542.6753.146
  • 2022-11-26CS149笔记Cache一致性
    Cache一致性关于Cache,我感觉通过这门课程学习到的内容可能还不够。我现在思考Cache读Memory有点像思考Memory读SSD。Cache每次都需要从Memory读64B,而内存读SSD每次都会
  • 2022-11-25cs149笔记并行图计算
    ParallelProgrammingonGraphs这些课主要讲了关于图并行算法,包括pagerank等算法。PageRankPageRank算法可以见https://en.wikipedia.org/wiki/PageRank#math_2\[R[i
  • 2022-11-04CS149笔记03并行程序性能优化
    Part1:WorkDistributionandScheduling为了高性能优化目标:在所有可执行资源上达到负载均衡降低communication,避免stalls减少额外的overhead负载均衡在assign1
  • 2022-11-04CS149笔记02并行抽象
    ParallelProgrammingAbstractionssingleprogram,multipledataSPMD这个定义还是第一次听到,我在Intelispc的官网找到了这一定义:https://ispc.github.io/ispc.htmlT
  • 2022-11-04CS149笔记01现代多核CPU
    AModernMulti-CoreProcessor一个处理器在做什么?FetchDecode:指令流解码,决定下一条执行的指令ALU:执行单元,执行一条指令,决定如何修改寄存器和计算机内存Context一
  • 2022-10-25cs149-asst1
    Assign1Program1:ParallelFractalGenerationUsingThreads(20points)任务要求修改mandelbrotThread函数使其可以多线程并行描绘Mandelbrot报告多线程对比f