摘要:
作业描述及代码参见:cs149gpt Warm-Up:访问张量 张量/数组都是按行存储的,四维数组可以看作元素为三维数组的数组,元素大小即为三维数组内元素总数,以此类推。 第 1 部分:简单(但不太高效)的注意力机制实现 主要实现两个矩阵乘法和一个 softmax 运算。 第 2 部分:块矩阵乘法和 阅读全文
摘要:
作业描述及代码参见:CS149-asst3 实验环境:WSL2;GeForce MX350;Cuda 12.6 第一部分:CUDA 热身练习 1:SAXPY 实验结果: 相比基于 CPU 的实现,性能明显下降。这是由于 SAXPY 属于 I/O 密集型任务,计算量较小,主要的时间耗费在数据的转移。 阅读全文
摘要:
作业描述及代码参见:CS149-asst2 Part A Step 1 只需要实现一个简单的任务系统,在run()的开始生成工作线程,并在run()返回之前从主线程合并这些线程。任务的分配方式采用动态分配,即每个线程每次取一个任务完成,能者多劳。 每个线程的核心实现为: while (true) { 阅读全文
摘要:
作业描述及代码参见:CS149-asst1 程序 1 生成 view 1 时加速比与线程数的关系如下: 线程数 加速比 2 2.04 3 1.69 4 2.54 5 2.57 6 3.26 7 3.55 8 4.11 生成 view 2 时加速比与线程数的关系如下: 线程数 加速比 2 1.75 3 阅读全文