大家好呀,我是飞鱼。
一般说到显卡,大多人的第一反应是,这不是给打游戏的用的吗?
其实显卡的GPU还可以作为AI芯片使用的。
在GPU火之前,提到最多的就是CPU,那么二者有什么区别呢?
GPU的计算单元数量比CPU多得多。
以英伟达H100 GPU为例,它包含超过1.8万个核心,而顶级的Intel I9 CPU只有24个核心,GPU的核心数是CPU的700多倍。
所以,CPU 擅长 快速完成单个运算,适合需要逐一执行的程序。
GPU 擅长 并行处理大量运算,即使单个运算速度较慢,但可以同时处理多个任务。
相当于请两个专家写一万份小学作业和请一万个小学生写一万份作业的区别。
那AI训练为什么用GPU而不用CPU呢?
因为AI训练任务通常具有简单、重复和计算量大的特点,而GPU可以并行运算,可充分释放计算效率。
讲得更专业一点就是:
- CPU是基于数据流的串行计算,GPU是基于多变量的矩阵运算,后者更适合神经网络算法为基础的AI计算。
为进一步加快训练速度,处理更大AI模型(例如ChatGPT)。
研发者可将许多数据中心GPU汇集到一起形成超级计算机。
或者创建一个非常大规模的加速器。
最近卖显卡的英伟达NIVDIA超越苹果、微软成为世界市值最高的公司,背后是全世界对AI的算力竞赛。
微软,买了48.5万张GPU,全球第一买家。
字节跳动,买了23万张GPU,全球第二买家。
腾讯,大约买了23万张GPU,全球第三买家。
英伟达几乎垄断电脑领域的显卡后,在AI领域又几乎达到全球垄断级别。
有啥其他补充的内容,欢迎在评论区留言讨论。
每日一题
题目描述
统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。
请注意,你可以假定字符串里不包括任何不可打印的字符。
示例:
复制输入: "Hello, my name is John" 输出: 5 解释: 这里的单词是指连续的不是空格的字符,所以 "Hello," 算作 1 个单词。
解题思路
我们可以从前往后处理字符串 s 并进行计数,对于是空格的字符进行跳过(不计数)。
而对于非空格字符,则在遍历完一个完整单词(连续一段)后进行一次计数。
代码实现
Java代码:
复制class Solution { public int countSegments(String s) { int n = s.length(); int ans = 0; for (int i = 0; i < n; ) { if (s.charAt(i) == ' ' && i++ >= 0) { continue; } while (i < n && s.charAt(i) != ' ') { i++; } ans++; } return ans; } }