30、GPU(上):为什么玩游戏需要使用GPU?

讲完了CPU,我带你一起来看一看计算机里的另外一个处理器,也就是被称之为GPU的图形处理器。过去几年里,因为深度学习的大发展,GPU一下子火起来了,似乎GPU成了一个专为深度学习而设计的处理器。那GPU的架构究竟是怎么回事儿呢?它最早是用来做什么而被...

深入浅出计算机组成原理

31、GPU(下):为什么深度学习需要使用GPU?

上一讲,我带你一起看了三维图形在计算机里的渲染过程。这个渲染过程,分成了顶点处理、图元处理、 栅格化、片段处理,以及最后的像素操作。这一连串的过程,也被称之为图形流水线或者渲染管线。 因为要实时计算渲染的像素特别地多,图形加速卡登上了历史的舞台。通过...

深入浅出计算机组成原理

32、FPGA和ASIC:计算机体系结构的黄金时代

过去很长一段时间里,大家在讲到高科技、互联网、信息技术的时候,谈的其实都是“软件”。从1995年微软发布Windows 95开始,高科技似乎就等同于软件业和互联网。著名的风险投资基金Andreessen Horowitz的合伙人Marc Andree...

深入浅出计算机组成原理

34、理解虚拟机:你在云上拿到的计算机是什么样的?

上世纪60年代,计算机还是异常昂贵的设备,实际的计算机使用需求要面临两个挑战。第一,计算机特别昂贵,我们要尽可能地让计算机忙起来,一直不断地去处理一些计算任务。第二,很多工程师想要用上计算机,但是没有能力自己花钱买一台,所以呢,我们要让很多人可以共用...

深入浅出计算机组成原理

33、解读TPU:设计和拆解一块ASIC芯片

过去几年,最知名、最具有实用价值的ASIC就是TPU了。各种解读TPU论文内容的文章网上也很多。不过,这些文章更多地是从机器学习或者AI的角度,来讲解TPU。 上一讲,我为你讲解了FPGA和ASIC,讲解了FPGA如何实现通过“软件”来控制“硬件”,...

深入浅出计算机组成原理

35、存储器层次结构全景:数据存储的大金字塔长什么样?

今天开始,我们要进入到计算机另一个重要的组成部分,存储器。 如果你自己组装过PC机,你肯定知道,想要CPU,我们只要买一个就好了,但是存储器,却有不同的设备要买。比方说,我们要买内存,还要买硬盘。买硬盘的时候,不少人会买一块SSD硬盘作为系统盘,还会...

深入浅出计算机组成原理

36、局部性原理:数据库性能跟不上,加个缓存就好了?

平时进行服务端软件开发的时候,我们通常会把数据存储在数据库里。而服务端系统遇到的第一个性能瓶颈,往往就发生在访问数据库的时候。这个时候,大部分工程师和架构师会拿出一种叫作“缓存”的武器,通过使用Redis或者Memcache这样的开源软件,在数据库前...

深入浅出计算机组成原理

37、高速缓存(上):“4毫秒”究竟值多少钱?

在这一节内容开始之前,我们先来看一个3行的小程序。你可以猜一猜,这个程序里的循环1和循环2,运行所花费的时间会差多少?你可以先思考几分钟,然后再看我下面的解释。 12345678910int[] arr = new int[64 * 1024 * 1...

深入浅出计算机组成原理

38、高速缓存(下):你确定你的数据更新了么?

在我工作的十几年里,写了很多Java的程序。同时,我也面试过大量的Java工程师。对于一些表示自己深入了解和擅长多线程的同学,我经常会问这样一个面试题:“volatile这个关键字有什么作用?”如果你或者你的朋友写过Java程序,不妨来一起试着回答一...

深入浅出计算机组成原理

39、MESI协议:如何让多核CPU的高速缓存保持一致?

你平时用的电脑,应该都是多核的CPU。多核CPU有很多好处,其中最重要的一个就是,它使得我们在不能提升CPU的主频之后,找到了另一种提升CPU吞吐率的办法。 不知道上一讲的内容你还记得多少?上一节,我们讲到,多核CPU里的每一个CPU核,都有独立的属...

深入浅出计算机组成原理