# 智能计算系统

## 课程简介

- 所属大学：中国科学院大学
- 先修要求：体系结构，深度学习
- 编程语言：Python, C++, BCL
- 课程难度：🌟🌟🌟
- 预计学时：100 小时+

智能计算系统是智能的核心物质载体，每年全球要制造数以十亿计的智能计算系统（包括智能手机、智能服务器、智能可穿戴设备等），需要大量的智能计算系统的设计者和开发者。智能计算系统人才的培养直接关系到我国智能产业的核心竞争力。因此，对智能计算系统的认识和理解是智能时代计算机类专业学生培养方案中不可或缺的重要组成部分，是计算机类专业学生的核心竞争力。

国内的陈云霁老师开的课，在其他若干个大学也都有开对应的课程。这门课用一个个实验带大家以一个完整的视野理解人工智能的技术栈。从上层的深度学习框架，到用底层语言编写算子，再到硬件中 MLU 的设计，让大家形成系统思维，体会自上而下，融会贯通的乐趣。

我做了其中的 2,3,4,5 这几个实验，其中综合实验和硬件实验没有做，如果有做了的同学欢迎大家补上你的链接。

个人体会是第三章实现算子的实验让我对深度学习框架的了解加深了很多。第五章的实验BCL语言编写算子如果了解 CUDA 的话会感觉很熟悉。

推荐去买一本教材看一看，会让我们理解整体的技术栈。熟悉深度学习的同学可以直接从第五章开始看，看看深度学习框架底层到底是什么样的。

我因为这门课的启发，参考一本书（书名在仓库中）写了一个简易的[深度学习框架](https://github.com/ysj1173886760/PyToy)。在这个框架里可以看到智能计算系统实验中的一些影子。同时受到 build-your-own-x 系列的启发，我也打算写一下教程，教大家写一个自己的深度学习框架。代码用 Python 写的，代码量较少，适合有一定基础的同学阅读。之后打算添加更多的算子，有望实现一个较为全面的框架，并希望移植到 C++ 中，以兼顾性能与开发效率。

## 课程资源

- 课程网站：[官网](https://novel.ict.ac.cn/aics/)
- 课程视频：[bilibili](https://space.bilibili.com/494117284)
- 课程教材：智能计算系统（陈云霁）
- 课程作业：6 个实验(包括编写卷积算子，为 TensorFlow 添加算子，用 BCL 编写算子并集成到 TensorFlow 中等)(具体内容在官网可以找到)
- 实验手册：[实验 2.0 指导手册](https://forum.cambricon.com/index.php?m=content&c=index&a=show&catid=155&id=708)
- 学习笔记：<https://sanzo.top/categories/AI-Computing-Systems/>，参考实验手册总结的笔记

## 资源汇总

@ysj1173886760 在学习这门课中用到的所有资源和作业实现都汇总在 [ysj1173886760/Learning: ai-system - GitHub](https://github.com/ysj1173886760/Learning/tree/master/ai-system) 中。
