JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP
某所にて
Slide 5
Slide 5 text
JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP
某所にて
Slide 6
Slide 6 text
JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP
某所にて
自分が面白いとおもった
Vector API の一連の JEPs
についてしゃべります
Slide 7
Slide 7 text
JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP
某所にて
Slide 8
Slide 8 text
JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP
某所にて
軽い気持ちで聞いて下さい🙇
Slide 9
Slide 9 text
JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP
なんで、Vector API の話なの?
● Vector API 自体に興味があったから
○ 個人的な興味(Not 業務利用)
● 長い事 Incubator のままだから
○ 8回は JEP の中でも一番長い Incubator
○ JEP 読めば何か分かるかもという好奇心
■ 登壇駆動学習の一端
Slide 10
Slide 10 text
JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP
諸注意
● Vector API の技術的な詳細説明はしないです
● 実装の話もしないです
○ 下の Youtube 観てもらってもいいかも
■ The Vector API in JDK 17
■ Vector API: SIMD Programming in Java
■ Vector API for Java
Slide 11
Slide 11 text
JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP
Vector API とは
● 一言でいうと、SIMD の Java 実装
○ Single Instruction, Multiple Data
○ 一つの命令で複数のデータを同時に処理する技術
● 画像処理、科学計算など大量データの並列処理で効果
● CPU アーキテクチャーによらない実装を目指している
JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP
Alignment with Project Valhalla
Slide 20
Slide 20 text
JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP
Alignment with Project Valhalla
Slide 21
Slide 21 text
JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP
Alignment with Project Valhalla
【意訳】
Vector API ちゃんにとって必要となる機能が、
Project Valhalla くんのプレビュー機能として利用可能になるまで、
複数のリリースにわたってインキュベートのままにしとくね!(`・ω・´)
Slide 22
Slide 22 text
JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP
Alignment with Project Valhalla
【意訳】
そのため、Vector API ちゃんにとって必要となる機能が、
Project Valhalla くんのプレビュー機能として利用可能になるまで、
複数のリリースにわたってインキュベートのままにしとくね!(`・ω・´)
Valhalla 待ちでした!
Slide 23
Slide 23 text
JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP
Alignment with Project Valhalla
【意訳】
そのため、Vector API ちゃんにとって必要となる機能が、
Project Valhalla くんのプレビュー機能として利用可能になるまで、
複数のリリースにわたってインキュベートのままにしとくね!(`・ω・´)
おしまい!
Slide 24
Slide 24 text
JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP
Alignment with Project Valhalla
【意訳】
そのため、Vector API ちゃんにとって必要となる機能が、
Project Valhalla くんのプレビュー機能として利用可能になるまで、
複数のリリースにわたってインキュベートのままにしとくね!(`・ω・´)
おしまい!
もうちっとだけ
続くんじゃ
Slide 25
Slide 25 text
JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP
JEP 448: Vector API (Sixth Incubator)
● https://openjdk.org/jeps/448
● Java 21 でリリース
● あんまし変わりがない
○ History の記載にある変更ぐらい
○ ほかは、細かい表現ぐらい
Slide 26
Slide 26 text
JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP
JEP 460: Vector API (Seventh Incubator)
● https://openjdk.org/jeps/460
● Java 22 でリリース
● あんまし変わりがない
○ History の記載にある変更ぐらい
○ ほかは、細かい表現ぐらい
Slide 27
Slide 27 text
JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP
JEP 469: Vector API (Eighth Incubator)
● https://openjdk.org/jeps/469
● Java 23 でリリース
● あんまし変わりがない
○ History の記載にある変更ぐらい
○ ほかは、細かい表現ぐらい
Slide 28
Slide 28 text
JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP
まとめ(という名の個人の感想)
● 当初からの目標は大きく変わっていない
● 他のプロジェクトとの関係が垣間見えた
○ Panama の FFM API や Valhalla の Value Object
■ ばあさんや、Valhalla はまだかのう。。。
● 本当は実装レベルでの確認はしたかった(今後の課題)
● CPU や低レイヤにも興味が出た(いつ調べるかは知らん)
Slide 29
Slide 29 text
ご清聴いただき
ありがとうございました
Slide 30
Slide 30 text
JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP
参考
● Youtube
○ Vector API: SIMD Programming in Java
○ The Vector API in JDK 17
○ Vector API for Java
● JEPs
○ JEP 338: Vector API (Incubator)
○ JEP 414: Vector API (Second Incubator)
○ JEP 417: Vector API (Third Incubator)
○ JEP 426: Vector API (Fourth Incubator)
○ JEP 438: Vector API (Fifth Incubator)
○ JEP 448: Vector API (Sixth Incubator)
○ JEP 460: Vector API (Seventh Incubator)
○ JEP 469: Vector API (Eighth Incubator)