# tiny_gpu_sim **Repository Path**: wujehy/tiny_gpu_sim ## Basic Information - **Project Name**: tiny_gpu_sim - **Description**: tiny gpu 仿真 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-14 - **Last Updated**: 2024-10-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # tiny gpu sim ## 概述 这是一个 基于 tiny gpu 源码进行实现 的 gpu 仿真项目 . 肝了点时间 简单的写一下使用方法。等我把我头上的 “达摩克利斯之剑”拔了再修补剩下的bug 如果感兴趣 向了解gpu 怎么运转的同学可以估计是一个不错的材料~ 因为有很多模块 都是 直接简单粗暴的绘制~ 只有到后期 肝到 大一点的模块线路太复杂 不得不模块化~ 巴拉巴拉~ 省略 n个字~ #### UPDATE 2024.10.08: ​ 抽了点时间完善了一下主要是解决了内存访问顺序 和 内存读写丢数据的问题,所以加了一个 `mem_4c_cache` 模块进行全局内存的控制,虽然像做4块ram的,但是毕竟没有需求要去改,就没有去加更复杂的设计了 ,不过基本 保证正确运行。 ​ 还有就是相对于 预览版 解决了挺多问题的。 ​ ## 运行效果 旧: ![old](assets/image/demo_run.gif) update 20241008: ![](assets/image/demo_run_20241008.gif) ### 如何启动: 主要文件直接打开: [gpu](./gpu.circ) 将 test_demo_1.ram 和 test_demo_1.ram 加载到 rom 和 ram 然后 给个 线程数 和 打开时钟 和 start 开关就可以了 ## 目前存在的bug 1. (已解决)因为时间不充裕,ram 的读取本来是需要 4通道 并行的。 但是“偷工减料”使用一个控制器控制ram 的读写操作, 但是因为过于简单粗暴,使用串行的去实现 ,然后就是当 mem_write_channels 和 mem_read_channels 分配通道的时候 如果恰巧 高位没操作完 低位突然有效的时候,就会出现bug ~ 不过这几天没空去修bug 国庆后有空再实现4通道的控制器控制ram吧~ (/手动狗头) 2. (20241008):上一个问题已经解决 ,但是并行没有去实现, 但是稳定的运行是理论上可以了。 ### 指令集: ![](assets/image/isa.png)