成AI唯一标准! 15年前的远见成就万亿巨企传奇
文章来源: HK01 于
- 新闻取自各大新闻媒体,新闻内容并不代表本网立场!
就在5月30日,Nvidia跻身成为万亿美元的超级巨企,60岁的黄仁勋成为继亚玛逊(Amazon)的贝索斯(Jeff
Bezos),第二位创下这里程碑的创业者。人工智能的冒起成就了Nvidia跃飞,这也可说是黄仁勋15年前的慧眼,为他带来今天的伟大成就。
在电脑业界中,爱好者会昵称黄仁勋为老黄,一身的皮革战衣是他的标志。
2021年因新冠疫情关系,Nvidia发布会改在线上举行,穿着皮革的老黄在一个厨房烤炉拿出当时最新的高阶显示卡RTX3090——在这张巨型显卡中,搭载了10496个CUDA核心。
CUDA全称统一计算架构,CUDA核心是Nvidia显示卡中,显示核心(GPU)的一个重要组成部分,CUDA应用可想像为利用GPU提供除中央处理器(CPU)外的另一组运算机器,协助和弥补CPU的不足。
2007年,老黄意识道显示卡不仅可以作为图形显示,更可以作为运算工具,他决定建立名为CUDA的新架构,允许工程人员编写程式,让GPU进行多种运算。
CUDA最初应用在绘图加速,早期的突破是在影片上压缩与解码:如Adobe利用CUDA,让GPU可以进行影片压缩上的速度,较传统CPU快5倍以上。
GPU运算并非只有Nvidia独有,但Nvidia大力推进CUDA发展,几乎把旗下所有GPU都搭载CUDA核心,间接推广了CUDA使用。加上2010年近10年期间Nvidia的最大对手,AMD经历一段长时间低潮期,让CUDA逐渐成为GPU运算中的标准配备。
CUDA运算的资料库在这15年间快速增长,衍生出大量运算工具。今天CUDA的运用非常广泛,从3D建模、分析数据、天气模拟、医疗映像呈现等都能使用。
在加密货币掘起之际,CUDA被运用在「掘矿」的运算上;今天的人工智能,AI深度学习与运算,都是依赖CUDA完成。
AMD或其他对手虽然尝试投入AI领域,开发出如GPUFORT让使用者能从Nvidia过渡至AMD的工具,但CUDA的基础已牢不可破。
CUDA广泛地被一些最流行的深度学习框架所支持,如TensorFlow和PyTorch。
简单来说,就是Nvidia的CUDA成为今天AI的唯一使用运算工具。要使用或训练AI,就是要购买Nvidia显示卡。
Stable
Diffusion与ChatGPT的兴起,让Nvidia瞬间跃飞,再因为每张Nvidia的显示卡都搭载CUDA,只要手执Nvidia显示卡,包括中低阶的消费显示卡都可以使用CUDA技术,让AI训练和应用下放至一般使用者也能运用。至于企业可选购Nvidia专为企业设计的AI运算专用GPU。老黄的远见,间接让AI爆红。
-->
`,
"script":[{"type":"text/javascript","src":"//widgets.outbrain.com/outbrain.js","async":"async"}]
}
, "gg_rightside": {
"html":`
`,
"script":[{"type":"text/javascript","src":"//widgets.outbrain.com/outbrain.js","async":"async"}]
}
, "gg_duturandom": {
"html":`
`,
"script":[]
}
, "gg_square": {
"html":`
`,
"script":[]
}
, "gg_topbanner": {
"html":`
`,
"script":[]
}
, "gg_middlesquare": {
"html":`
`,
"script":[]
}
, "gg_dutu": {
"html":`
`,
"script":[]
}
, "gg_botline": {
"html":``,
"script":[]
}
, "gg_dututop": {
"html":`
`,
"script":[]
}
, "gg_shipintop": {
"html":`
`,
"script":[]
}
, "gg_inContent": {
"html":`
`,
"script":[]
}
, "gg_shipinrandom": {
"html":``,
"script":[]
}
, "gg_sideSticky": {
"html":`
`,
"script":[]
}
, "gg_bottombanner": {
"html":`
`,
"script":[{"type":"text/javascript","src":"//widgets.outbrain.com/outbrain.js","async":"async"}]
}
, "gg_marquee": {
"html":`
`,
"script":[]
}
}
const adEnv={
"gg_header": {
"html":``,
"script":[{"type":"text/javascript","exec":` var googletag = googletag || {}; googletag.cmd = googletag.cmd || []; var pbjs = pbjs || {}; pbjs.que = pbjs.que || []; `},{"type":"text/javascript","src":"https://adncdnend.azureedge.net/adn-hb/adn.wnx2.js","async":""},{"type":"text/javascript","src":"https://adncdnend.azureedge.net/adn-video/WenxuecityPlayer.js","async":"async"}]
}
}
const wxcEnv = {
"base":{
"exe":[],
"src":[
{"src": "/news/js/recommendednews.js","defer":"true"},
{"src":"/js/wxcFunc.js","defer":"true"}
]
},
"func":{
"exe":[
//展示评论
'function showMoreComments(){let n = 5;for(let i=0;i
2){dom.hide();}}$("#showallcomment").show();$("#showlesscomment").hide();};hideComments();',
],
"src":[
//图片,搜索,QR code
{"src": "/news/js/view.js?v=05132024"},
//计数器
{"src":"//count.wenxuecity.com/service/count/script/do.php?type=news&id=12345855&n=0&out=jsval","defer":"true"},
]
}
}
function wxcCode(){
wxcEnv.base.exe.forEach(x=>{
let tag = buildAdcode(x);
document.head.append(tag);
})
wxcEnv.base.src.forEach(src => {
let tag = buildSrc(src)
document.head.append(tag);
});
wxcEnv.func.exe.forEach(x=>{
let tag = buildAdcode(x);
document.body.append(tag);
})
wxcEnv.func.src.forEach(src => {
let tag = buildSrc(src)
document.body.append(tag);
});
}
function adcode(){
let adkey = Object.keys(ads);
adkey.forEach(x=>{
let code = ads[x].html;
let div = document.getElementById(x);
if(div)div.innerHTML = code;
ads[x].script.forEach(s=>{
if(Object.keys(s).indexOf('src')===-1){
let tag = buildAdcode(s.exec);
document.body.append(tag);
}else{
let tag = buildSrc(s);
document.body.append(tag);
}
})
})
}
function baseCode(){
let baseKeys = Object.keys(adEnv);
baseKeys.forEach(x=>{
adEnv[x].script.forEach(s=>{
if(Object.keys(s).indexOf('src')===-1){
let tag = buildAdcode(s.exec);
document.head.append(tag);
}else{
let tag = buildSrc(s);
document.head.append(tag);
}
})
})
}
function buildAdcode(script){
let tag = document.createElement('script');
tag.innerHTML = script;
return tag;
}
function buildSrc(obj){
let keys = Object.keys(obj);
let tag = document.createElement("script");
keys.forEach(key=>{
tag.setAttribute(key, obj[key]);
})
return tag ;
}