Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JEPs の変遷から眺める Vector API / Tracking the Progres...

JEPs の変遷から眺める Vector API / Tracking the Progress of Vector API via JEPs

mackey0225

July 30, 2024
Tweet

More Decks by mackey0225

Other Decks in Programming

Transcript

  1. JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP 自己紹介 名前:浅野 正貴 所属:BABY JOB

    株式会社 最近は AWS や SRE がメイン X: @mackey0225 Java についてしゃべるのが久しぶりです
  2. JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP なんで、Vector API の話なの? •

    Vector API 自体に興味があったから ◦ 個人的な興味(Not 業務利用) • 長い事 Incubator のままだから ◦ 8回は JEP の中でも一番長い Incubator ◦ JEP 読めば何か分かるかもという好奇心 ▪ 登壇駆動学習の一端
  3. JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP 諸注意 • Vector API

    の技術的な詳細説明はしないです • 実装の話もしないです ◦ 下の Youtube 観てもらってもいいかも ▪ The Vector API in JDK 17 ▪ Vector API: SIMD Programming in Java ▪ Vector API for Java
  4. JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP Vector API とは •

    一言でいうと、SIMD の Java 実装 ◦ Single Instruction, Multiple Data ◦ 一つの命令で複数のデータを同時に処理する技術 • 画像処理、科学計算など大量データの並列処理で効果 • CPU アーキテクチャーによらない実装を目指している
  5. JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP JEP 338: Vector API

    (Incubator) • https://openjdk.org/jeps/338 • すべてのはじまり • Java 16 でリリース • 当初の Component は hotspot / compiler ◦ 2nd 以降は core-libs になっている • 多かれ少なかれ、大体は大きな変更は見えない(JEP 上)
  6. JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP JEP 414: Vector API

    (Second Incubator) • https://openjdk.org/jeps/414 • Java 17 でリリース • 1st 比べてあまり変わりない ◦ Summary の記載がちょっと変わった ◦ Component が core-libs になった
  7. JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP JEP 417: Vector API

    (Third Incubator) • https://openjdk.org/jeps/417 • Java 18 でリリース • 1st, 2nd と比べて全体的に記載の変更があった ◦ 全体的に文体が変わった ◦ History セクションの追加 ◦ Description の記載構成が変わった
  8. JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP JEP 426: Vector API

    (Fourth Incubator) • https://openjdk.org/jeps/426 • Java 19 でリリース • 3rd との比較 ◦ History が長い ▪ FFM API (JEP 424) の活用 など
  9. JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP JEP 438: Vector API

    (Fifth Incubator) • https://openjdk.org/jeps/438 • Java 20 でリリース • 機能的には大きな変更はない • 本論ではないが、このタイミングでドメインが変わる ◦ @openjdk.java.net → @openjdk.org • Goals に Project Valhalla に関する記載が追加
  10. JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP JEP 438: Vector API

    (Fifth Incubator) • https://openjdk.org/jeps/438 • Java 20 でリリース • 機能的には大きな変更はない • 本論ではないが、このタイミングでドメインが変わる ◦ @openjdk.java.net → @openjdk.org • Goals に Project Valhalla に関する記載が追加
  11. JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP Alignment with Project Valhalla

    【意訳】 Vector API ちゃんにとって必要となる機能が、 Project Valhalla くんのプレビュー機能として利用可能になるまで、 複数のリリースにわたってインキュベートのままにしとくね!(`・ω・´)
  12. JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP Alignment with Project Valhalla

    【意訳】 そのため、Vector API ちゃんにとって必要となる機能が、 Project Valhalla くんのプレビュー機能として利用可能になるまで、 複数のリリースにわたってインキュベートのままにしとくね!(`・ω・´) Valhalla 待ちでした!
  13. JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP Alignment with Project Valhalla

    【意訳】 そのため、Vector API ちゃんにとって必要となる機能が、 Project Valhalla くんのプレビュー機能として利用可能になるまで、 複数のリリースにわたってインキュベートのままにしとくね!(`・ω・´) おしまい!
  14. JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP Alignment with Project Valhalla

    【意訳】 そのため、Vector API ちゃんにとって必要となる機能が、 Project Valhalla くんのプレビュー機能として利用可能になるまで、 複数のリリースにわたってインキュベートのままにしとくね!(`・ω・´) おしまい! もうちっとだけ 続くんじゃ
  15. JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP JEP 448: Vector API

    (Sixth Incubator) • https://openjdk.org/jeps/448 • Java 21 でリリース • あんまし変わりがない ◦ History の記載にある変更ぐらい ◦ ほかは、細かい表現ぐらい
  16. JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP JEP 460: Vector API

    (Seventh Incubator) • https://openjdk.org/jeps/460 • Java 22 でリリース • あんまし変わりがない ◦ History の記載にある変更ぐらい ◦ ほかは、細かい表現ぐらい
  17. JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP JEP 469: Vector API

    (Eighth Incubator) • https://openjdk.org/jeps/469 • Java 23 でリリース • あんまし変わりがない ◦ History の記載にある変更ぐらい ◦ ほかは、細かい表現ぐらい
  18. JEPs の変遷から眺める Vector API #kanjava #25YearsOfJCP まとめ(という名の個人の感想) • 当初からの目標は大きく変わっていない •

    他のプロジェクトとの関係が垣間見えた ◦ Panama の FFM API や Valhalla の Value Object ▪ ばあさんや、Valhalla はまだかのう。。。 • 本当は実装レベルでの確認はしたかった(今後の課題) • CPU や低レイヤにも興味が出た(いつ調べるかは知らん)
  19. 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)