十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

3步跑通tinygrad深度学习框架

3步跑通tinygrad深度学习框架 3步跑通tinygrad深度学习框架【免费下载链接】tinygradYou like pytorch? You like micrograd? You love tinygrad! ❤️项目地址: https://gitcode.com/GitHub_Trending/tiny/tinygrad你用PyTorch写了几年但某个kernel慢了想查生成代码时只能看黑盒报错想在AMD卡或Mac的Metal上跑却得等社区适配。tinygrad是个完整的深度学习框架张量、自动求导、编译器、JIT全自带且整个代码库小到能一个周末读完、随便改。它到底能干什么✅ PyTorch风格的Tensor API.backward()、nn.Linear、训练循环写法都眼熟✅ 内置编译器连续的算子自动融合成一个kernel再用beam搜索BEAM逐参数试出最快组合挑最优版本✅ 多后端CPU、AMD、NV/CUDA、OpenCL、METAL、QCOM、WebGPU都有新设备只要实现约25个底层op就能接入✅ 训练和推理的完整示例都在 examples/MNIST、YOLOv8、Stable Diffusion、LLM推理✅ 编译器可读可改从计算图、kernel参数优化到生成的汇编每一层都是明码4步跑通第一个训练git clone https://gitcode.com/GitHub_Trending/tiny/tinygrad cd tinygrad python3 -m pip install -e . python3 examples/beautiful_mnist.py最后一条命令默认训练MNIST官方README写着约5秒达到98%。跑完顺手确认一下默认后端python3 -c from tinygrad import Device; print(Device.DEFAULT)7个最常改的环境变量参数默认值干什么用的DEV自动选指定后端如DEVCPU、DEVAMD、DEVNV:CUDADEBUG01-7级2每个kernel耗时4生成kernel代码7汇编JIT10关1开2开JIT但不用图执行BEAM-kernel参数搜索的beam数越大搜得越多VIZ01打开计算图可视化页面DEFAULT_FLOATFLOAT32默认浮点类型可设HALF、BFLOAT16等FLOAT1601图像相关计算走半精度一次backward背后的4个阶段建图Tensor算子全部惰性x.linear(w).relu()只是往计算图里记一笔不执行触发调.realize()或.numpy()时schedule把图切成若干kernel中间张量去重优化BEAM搜索给每个kernel试块大小、展开等参数组合留最快的渲染执行renderer把kernel翻译成C、LLVM、PTX、OpenCL、Metal等目标代码并编译JIT1时整个图被捕获后续调用直接重放不再重建3个按需打开的开关看生成的kernel代码→DEBUG4 python3 xxx.py判断算子有没有融合成想要的样子可视化计算图→VIZ1 python3 xxx.py逐op查看图结构加速重复前向→ 给前向加TinyJit装饰器参考 examples/beautiful_mnist.py注意JIT不支持变长输入和非tinygrad算子踩坑速查5个高频问题Q我怎么知道这次跑的是哪个后端python3 -c from tinygrad import Device; print(Device.DEFAULT)或直接用DEVCPU强制指定做对照。Q为什么第一次跑特别慢BEAM搜索首轮会对kernel做参数遍历BEAM越大越慢。推理场景保持JIT默认开启捕获后的重放会快很多。Q和torch结果对不上怎么办先DEBUG4看生成的kernel代码再换DEVCPU对照同形状算子库还没到1.0个别算子有已知差异测试目录里用expectedFailure标着。Q能加载PyTorch训好的权重吗标准格式是safetensorstinygrad/nn/state.py 里有safe_load/load_state_dictextra/models/ 里多数模型带load_from_pretrained底层是PyTorch权重需要装torch。Q为什么没有原地索引赋值load/store op原生不支持多后端移植太复杂跨熵这类操作用arange掩码等价实现日常模型基本遇不到。适合谁不适合谁适合想搞懂深度学习框架内部机制、还想自己改编译器的人硬件不是NVIDIA卡的AMD、Apple Silicon Metal、OpenCL、嵌入式QCOM、浏览器WebGPU教学与读码核心库不大autograd加调度全程可通读不适合需要稳定成熟的生产流水线官方明说还没1.0需要完整的vmap/pmap功能集已深度绑定PyTorch生态、没有换框架动机的继续深入跑通MNIST后examples/ 里的YOLO、Stable Diffusion、LLM推理可以直接照着跑完整参数表在 docs/env_vars.md完整的训练走查教程在 docs/quickstart.md。【免费下载链接】tinygradYou like pytorch? You like micrograd? You love tinygrad! ❤️项目地址: https://gitcode.com/GitHub_Trending/tiny/tinygrad创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表