Jensen Huang, CUDA, at ang Pag-usbong ng NVIDIA
Introduksyon
Noong itinatag ni Jensen Huang ang NVIDIA kasama ang iba noong 1993, layunin nitong dalhin ang 3D graphics sa mga laro sa computer at multimedia. Ngayon, ginagamit ang mga processor ng parehong kompanya para sanayin at patakbuhin ang mga modelo ng artificial intelligence. Para maunawaan ang pagbabagong iyon, makabubuting magsimula sa background ni Huang sa engineering at sa software platform na itinayo ng NVIDIA, ang CUDA. [1] [1]
1. Ang engineering career ni Huang
Ipinanganak sa Taiwan, nakakuha si Huang ng bachelor's degree sa electrical engineering mula sa Oregon State University noong 1984. Nagtrabaho siya bilang microprocessor designer sa AMD mula 1984 hanggang 1985, pagkatapos ay humawak ng ilang posisyon sa LSI Logic mula 1985 hanggang 1993. Naging direktor siya ng Coreware, ang dibisyong responsable sa estratehiya ng kompanya na pagsamahin ang maraming bahagi ng isang computer system sa iisang chip. Sa panahong iyon, nakakuha rin siya ng master's degree sa electrical engineering mula sa Stanford University noong 1992. [2] [1]
Noong Abril 5, 1993, itinatag ni Huang ang NVIDIA kasama sina Chris Malachowsky at Curtis Priem. Nagsilbi siyang pangulo, chief executive officer, at miyembro ng board mula nang magsimula ang kompanya. Noong 1999, nagsagawa ang NVIDIA ng initial public offering. Sa parehong taon, inilabas nito ang GeForce 256, isang mahalagang yugto sa kasaysayan ng mga graphics processing unit (GPU) ng kompanya. [1] [1]
2. Ano ang CUDA?
Inilabas ng NVIDIA ang CUDA noong 2006 bilang isang software platform at programming model para sa pagpapatakbo ng maraming kalkulasyon nang sabay-sabay sa mga GPU nito. Ang GPU ang hardware na nagsasagawa ng mga kalkulasyon. Ang CUDA ang nagbibigay ng mga programming tool na ginagamit ng mga developer para patakbuhin ang kanilang mga kalkulasyon sa hardware na iyon. Binuksan nito ang mga GPU na ginawa para sa graphics sa mga aplikasyon sa siyentipikong pananaliksik, high-performance computing, at artificial intelligence. [1] [1]
Isipin mong pinapaliwanag mo ang isang imaheng may isang milyong pixel. Ang kalkulasyon para sa isang pixel ay maaaring magpatuloy nang nakapag-iisa sa iba. Ang isang programa ng CUDA ay maaaring hatiin ang gawaing iyon sa mas maliliit na kalkulasyon at patakbuhin ang mga ito sa GPU. Ang function na tumatakbo sa GPU ay tinatawag na kernel. Maraming thread ang nagpapatakbo nito nang sabay-sabay, bawat isa ay gumagawa sa nakatalagang bahagi ng data. Ang parehong prinsipyo ng paghahati ng trabaho sa mga bahaging maaaring tumakbo nang sabay-sabay ay nalalapat sa mga kalkulasyon ng AI tulad ng malalaking matrix multiplication. [3] [1]
3. Paano nakatulong ang CUDA sa industriya ng AI
Kapag nagsasanay ng neural network, ang modelo ay unang gumagawa ng prediksyon. Sinusukat ng proseso ng pagsasanay ang error at ina-update ang mga parameter ng modelo. Inuulit nito ang prosesong ito nang maraming beses. Pinapabilis ng mga GPU ang mga operasyon tulad ng matrix multiplication, na nagbibigay sa mga mananaliksik ng panahon upang magsagawa ng higit pang mga eksperimento at ginagawang praktikal na sanayin ang mas malalaking modelo. Ginagamit din ang mga GPU pagkatapos ng pagsasanay, sa inference, kapag ang isang modelo tulad ng language model ay bumubuo ng sagot para sa isang user. [4] [1]
Nagbigay ang AlexNet ng praktikal na pagpapakita noong 2012. Sinanay sa mga GPU ng NVIDIA, nanalo ito sa ImageNet image classification competition. Ipinakita ng performance nito kung paano ang mga graphics processor na ginagamit para sa mga laro sa computer ay maaari ring magsanay ng mga modelo na kumikilala ng mga imahe. [1] [1]
4. Paano ibinigay ng CUDA sa NVIDIA ang pangmatagalang kalamangan
Nagtayo ang NVIDIA ng mga na-optimize na library at tool para sa mga kalkulasyon na madalas kailangan ng mga developer. Pinapabilis ng cuBLAS ang mga operasyon ng matrix, sinusuportahan ng cuDNN ang mga karaniwang operasyon ng neural network, hinahawakan ng NCCL ang komunikasyon sa pagitan ng mga GPU, at tinutulungan ng TensorRT ang mga sinanay na modelo na tumakbo nang mas mabilis. Sinusuportahan ng mga framework tulad ng PyTorch ang CUDA, kaya magagamit ng mga developer ang mga kakayahang ito nang hindi isinusulat ang bawat operasyon ng GPU mula sa simula. [5] [1]
Konklusyon
Pinatibay ng software ecosystem na iyon ang hardware business ng NVIDIA. Maaaring lumipat ang isang team mula sa isang maliit na eksperimento patungo sa isang sistemang tumatakbo sa maraming GPU habang patuloy na gumagamit ng pamilyar na software at mga tool. Ang pagpapalit ng hardware ay maaaring mag-obliga sa team na suriin ang mga dependency nito sa CUDA, iangkop ang mga bahagi ng software nito, at subukan muli ang performance. Sa pamamagitan ng pamumuhunan sa software kasabay ng hardware sa loob ng maraming taon, may mga handang tool ang NVIDIA para sa mga developer na alam na kung paano gamitin ang mga ito nang lumaki ang pangangailangan para sa AI computing. [1] [1]
Mga Sanggunian
- https://www.nvidia.com/en-us/about-nvidia/corporate-timeline/
- https://s201.q4cdn.com/141608511/files/doc_financials/annual/2013/NVDA_2013AR_Proxy_10K-FINAL.pdf
- https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/writing-cuda-kernels.html
- https://docs.nvidia.com/cuda/cuda-programming-guide/index.html
- https://developer.nvidia.com/machine-learning
Mga tanong tungkol kay Jensen Huang, sa CUDA, at sa pag-usbong ng NVIDIA
Ano ang CUDA at bakit ito itinayo ng NVIDIA?
Ang CUDA ay isang software platform at programming model na inilabas ng NVIDIA noong 2006 para sa pagpapatakbo ng maraming kalkulasyon nang sabay-sabay sa mga GPU nito. Ang GPU ang hardware; ang CUDA ang nagbibigay ng mga programming tool, na nagbukas ng graphics hardware sa siyentipikong pananaliksik, high-performance computing, at AI.
Paano nakatulong ang CUDA sa industriya ng AI?
Ang pagsasanay ng neural network ay nangangahulugang pag-uulit ng prediksyon, pagsukat ng error, at mga pag-update ng parameter nang maraming beses. Pinapabilis ng mga GPU ang mga operasyon tulad ng matrix multiplication, na nagpapahintulot sa mga mananaliksik na magsagawa ng higit pang mga eksperimento at magsanay ng mas malalaking modelo. Ang AlexNet, na sinanay sa mga GPU ng NVIDIA, ay nagpakita nito sa pamamagitan ng pagkapanalo sa ImageNet competition noong 2012.
Bakit nagbibigay ang CUDA sa NVIDIA ng pangmatagalang kalamangan?
Nagtayo ang NVIDIA ng mga na-optimize na library na madalas kailangan ng mga developer – cuBLAS para sa mga operasyon ng matrix, cuDNN para sa mga operasyon ng neural network, NCCL para sa multi-GPU communication, at TensorRT para sa mas mabilis na inference – at sinusuportahan ng mga framework tulad ng PyTorch ang CUDA, kaya ang mga team ay maaaring lumaki mula sa isang maliit na eksperimento hanggang sa maraming GPU nang hindi muling isinusulat ang kanilang software.
Powered By K7
