Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
プログラミング言語 Tlangの開発
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
tkclimb
May 05, 2020
Technology
0
640
プログラミング言語 Tlangの開発
2020年のGWハッカソンで発表した内容です。
tkclimb
May 05, 2020
Tweet
Share
More Decks by tkclimb
See All by tkclimb
コンピューティングの基礎と高速化入門
tkclimb
17
9.5k
Other Decks in Technology
See All in Technology
クレジットカード決済基盤を支えるSRE - 厳格な監査とSRE運用の両立 (SRE Kaigi 2026)
capytan
6
2.8k
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
680
StrandsとNeptuneを使ってナレッジグラフを構築する
yakumo
1
120
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
140
AIエージェントに必要なのはデータではなく文脈だった/ai-agent-context-graph-mybest
jonnojun
0
110
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
200
OpenShiftでllm-dを動かそう!
jpishikawa
0
130
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
260
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
68k
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.4k
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
3
450
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
280
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
430
Raft: Consensus for Rubyists
vanstee
141
7.3k
The browser strikes back
jonoalderson
0
390
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
120
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
67
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Transcript
ϓϩάϥϛϯάݴޠ Tlangͷ։ൃ Takato Yamada
͍͖ͳΓͰ͕͢ɺ ϓϩάϥϜΛߴԽେมͰ͢
΅͔͠ॲཧ (ߴԽͳ͠)
΅͔͠ॲཧ (खͰߴԽ)
΅͔͠ॲཧ (HalideͰߴԽ)
΅͔͠ॲཧ (HalideͰߴԽ) ·ͩਓखͰߴԽ (εέδϡʔϦϯά)͕ඞཁ
Tlang (Tensor language) ͱ • ΞϓϦέʔγϣϯࢥߟͳςϯιϧϕʔεɺϓϩάϥϛϯάݴޠ • ΞϧΰϦζϜͱεέδϡʔϦϯάΛͯ͠ॻ͚Δ • εέδϡʔϦϯάΛࣗಈͰߦ͑Δ
(ͪΖΜखॻ͖Ͱ͖Δ) • ϔςϩδχΞεͳڥͰಈ͖ɺϢʔβࠩҟΛҙࣝ͠ͳͯ͘ྑ͍ • ϞμϯͳϓϩάϥϛϯάݴޠͰ࣮͢Δ͜ͱͰՄಡੑɺ։ൃޮΛվળ • هड़ՄೳͳυϝΠϯΛը૾ॲཧσΟʔϓϥʔχϯά͚ͩͰͳͯ͘ɺ HPC·Ͱ͍͛ͨ
ࠩผԽ • Tlang: ։ൃݴޠ͕Ϟμϯ(Swift, Rust)ɺϧʔϓൖґଘ͕هड़ՄೳͳϧʔϓϨϕϧDSL ΦʔτνϡʔχϯάΛࡌ ࢄܭࢉܭࢉΧʔωϧͷඇಉظ࣮ߦʹରԠ͢Δ (શͯئ) • Tensorflow,
Pytorch: ։ൃݴޠ͕C++ ɺϧʔϓϨϕϧهड़Ͱ͖ͳ͍ (XLAՄೳ?) • Halide: ։ൃݴޠ͕C++ɺϧʔϓൖґଘ͕ॻ͚ͳ͍(ϑϩϯτΤϯυͰ)ɺ Φʔτνϡʔχϯάͦ͜·Ͱڧ͘ͳ͍ɺࢄܭࢉͰ͖ͳ͍ • TVM: ։ൃݴޠ͕C++ͱPythonɺϧʔϓൖґଘ͕ॻ͚ͳ͍ɺࢄܭࢉͰ͖ͳ͍ • Tiramisu: ։ൃݴޠ͕C++ɺΦʔτνϡʔχϯά͕ͳ͍
• Tlang: ։ൃݴޠ͕Ϟμϯ(Swift, Rust)ɺϧʔϓൖґଘ͕هड़ՄೳͳϧʔϓϨϕϧDSL ΦʔτνϡʔχϯάΛࡌ ࢄܭࢉܭࢉΧʔωϧͷඇಉظ࣮ߦʹରԠ͢Δ (શͯئ) • Tensorflow, Pytorch:
։ൃݴޠ͕C++ ɺϧʔϓϨϕϧهड़Ͱ͖ͳ͍ (XLAՄೳ?) • Halide: ։ൃݴޠ͕C++ɺϧʔϓൖґଘ͕ॻ͚ͳ͍(ϑϩϯτΤϯυͰ)ɺ Φʔτνϡʔχϯάͦ͜·Ͱڧ͘ͳ͍ɺࢄܭࢉͰ͖ͳ͍ • TVM: ։ൃݴޠ͕C++ͱPythonɺϧʔϓൖґଘ͕ॻ͚ͳ͍ɺࢄܭࢉͰ͖ͳ͍ • Tiramisu: ։ൃݴޠ͕C++ɺΦʔτνϡʔχϯά͕ͳ͍ ࠩผԽ (স) ݸਓͰશͯΛ࣮͢Δ͜ͱ΄΅ෆՄೳ. ݁ہͷॴͳʹ͔࡞Γ͍͚ͨͩস
ϥ ϯ λ Π Ϝ ߏ ؔܕελΠϧ ϑϩϯτΤϯυ ίʔυੜ LLVM
ݴޠϑϩϯτΤϯυ ߴϨϕϧ IR ࠷దԽػ 1 Ϩϕϧ IR ࠷దԽػ 2 GPU CPU ࢄ ୯Ұ ࣗಈ࠷దԽػ ϥ Π ϒ ϥ Ϧ
ؔܕελΠϧ ϑϩϯτΤϯυ ίʔυੜ ݴޠϑϩϯτΤϯυ ߴϨϕϧ IR ࠷దԽػ 1 Ϩϕϧ IR
࠷దԽػ 2 ࣗಈ࠷దԽػ ߏ ϥ ϯ λ Π Ϝ ϥ Π ϒ ϥ Ϧ LLVM GPU CPU ࢄ ୯Ұ
ϥ ϯ λ Π Ϝ ϥ Π ϒ ϥ Ϧ
ؔܕελΠϧ ϑϩϯτΤϯυ ίʔυੜ ݴޠϑϩϯτΤϯυ ߴϨϕϧ IR ࠷దԽػ 1 Ϩϕϧ IR ࠷దԽػ 2 ࣗಈ࠷దԽػ ͜͜ΛՃ͍ͨ͠! ݟੵΓ LLVM GPU CPU ࢄ ୯Ұ
ϥ ϯ λ Π Ϝ ϥ Π ϒ ϥ Ϧ
ؔܕελΠϧ ϑϩϯτΤϯυ ίʔυੜ ݴޠϑϩϯτΤϯυ ߴϨϕϧ IR ࠷దԽػ 1 Ϩϕϧ IR ࠷దԽػ 2 ࣗಈ࠷దԽػ ͕͜͜ݮͬͨ ݁Ռ LLVM GPU CPU ࢄ ୯Ұ
• ࢀߟϓϩδΣΫτΛॻ͖͍ͯͨ͠ॴɺDeep copy͕Ͱ͖ͳ͍͜ͱ ͕͔ͬͨ →ίϯύΠϥͷIRϥϕϧ͖༗ޮάϥϑͰද͞Ε͍ͯΔ͕ɺάϥ ϑΛίϐʔ͢ΔͨΊʹɺઌߦΛશͯίϐʔ͠ͳ͍ͱ͍͚ͳ͍… • ϊʔυͷछྨ͕ଟ͍͠ɺࠓޙ૿͑Δͷख࣮େม ࣗಈͰੜͯ͠Ζ͏! ͑ͬͳʹͬͯͨͷʁ
• ࢀߟϓϩδΣΫτΛॻ͖͍ͯͨ͠ॴɺDeep copy͕Ͱ͖ͳ͍͜ͱ ͕͔ͬͨ →ίϯύΠϥͷIRϥϕϧ͖༗ޮάϥϑͰද͞Ε͍ͯΔ͕ɺάϥ ϑΛίϐʔ͢ΔͨΊʹɺઌߦΛશͯίϐʔ͠ͳ͍ͱ͍͚ͳ͍… • ϊʔυͷछྨ͕ଟ͍͠ɺࠓޙ૿͑Δͷख࣮େม ࣗಈͰੜͯ͠Ζ͏! ͑ͬͳʹͬͯͨͷʁ
ѱເͷ࢝·Γ
ͱΓ͋͑ͣਐḿ D {Add(C[Var(i), Var(j)], {C {Add(A[Var(i), Var(j)], {Input(A)}, B[Var(i), Var(j)],
{Input(B)})}}, IntConst(3))}
ίʔυΛੜ͢ΔͨΊͷίʔυ(ίϯύΠϥ)Λ ੜ͢ΔίʔυΛॻ͘৬ਓʹͳΓ·ͨ͠ ݁