「AI処理のボトルネックは演算ではなく、メモリアクセスにある」。そんなタイトルでインテル主催の「Intel Connection 2024」で講演を行なったのは、東京大学 特別教授の黒田忠広氏だ。AIの課題である電力消費とボトルネックを解消すべく、インテルのような北米企業と日本の企業、アカデミアはいま何をすべきか。黒田氏は持論を展開した。 GDP比0.6%の第三期成長期に向かうAI時代の半導体産業 Intel Connection 2024のセッションにおいて、スーパーコンピューター富岳プロジェクトのリーダーである松岡聡センター長からマイクを引き継いだのは、東京大学教授で半導体研究者でもある黒田忠広氏だ。最初に説明したのは、半導体産業の成長について。家電で用いられていた程度だった半導体の市場は1990年代はGDP比0.2%程度だったが、PC市場やインターネットが勃興した1995年頃に0.4

仮想空間 仮想アドレス アドレス変換機構 プログラムの配置 オンデマンド 実アドレス空間 実 vs 物理 あとがき 執筆者 : 小田 逸郎 ※ 「OS徒然草」連載記事一覧はこちら 仮想空間 弊社は、Linuxカーネル(等基盤系OSS)の障害解析サービスを提供しています。サービスを提供する相手は、エンドユーザではなく、基盤の運用やサポートを行っている部署の方々となります。そうした方々に障害解析だけでなく、Linuxカーネルの内部構造だとかクラッシュダンプの解析の仕方だとかの勉強会を提供したりすることもあります。そうした方々は、普通のエンジニアに比べれば、コンピュータに詳しいはずなのですが、それでも仮想空間という概念を把握するのには苦労しているように見受けられます。今回は、仮想空間を巡るお話です。仮想空間というものは、OSを語る上で外せないものですので、本稿が、仮想空間を理解するための助けにな

この記事は、みらい翻訳のカレンダー | Advent Calendar2022 - Qiita の13日目です。 こんにちは。プラットフォーム開発部でリードエンジニアをしているchanceです。 今回は コンテナ(AWS ECS on Fargate)上でのJava(JVM) のメモリのお話をします。 概要 先日、商用環境の ECS で試運転させていたJava アプリのコンテナが度々再起動してしまう事象がありました。 幸い、まだリリース前だったためサービス影響はありませんでしたが、原因特定のためさっそく調査を開始しました。 コンテナの停止理由は OutOfMemory だったのですが、Java のログにはそのような出力はされていませんでした。Java ヒープの枯渇ではなく OS のメモリを使い切っていたようです。AWS のコンテナの場合、メモリを使い切るとコンテナが強制終了されるとの

0.はじめに 0.1 今年を振り返って この記事はFujitsu Advent Calendar2023 の24日目の記事です。 なお、本記事は個人の意見に基づくものであり、組織を代表するものではありません。 今年もAdvent Calendarの季節となりましたね。皆様お変わりないでしょうか? 私の方はというと、全体的に多忙ではありましたが、夏には国際学会IEEE NVMSAでの発表、秋から年末にかけて海外出張やOpen Source Summit Japanでの講演など、今年後半は怒涛のように仕事がくる状態になってました。おまけに 「Linus Torvaldsと会談せよ」 というミッションまで降ってきてしまい、正直どうなることかと思いました。人生、何が起こるかわからないものです。学生時代、英語は超苦手だったのに…。 0.2 今年の記事について さて、例年このAdvent Calen

まあ後半のインテルのモデルになると同じCPUでも熱設計で性能が大きく変わったり、ブースト時の性能だったり、いろいろあるのであくまでも数字は目安ですが、無視できないほど大きくなっているのがわかります。特に、Ryzenが元気なここ5-6年の競争による進化がすごいです。 なぜ5-6倍も性能が上がったのか、というのをすぐに言葉できちんと説明できる人はあまりいないと思います。最近、更新がなくなってしまい、Facebook(なぜか友達にしていただいた)上でも活動がみられなくて、悲しいのですが、後藤弘茂のWeekly海外ニュースの連載をずっと読んでいた人であれば、「命令デコーダーが増えたのね」とかなんとなく強くなった部分のイメージがつくとは思いますが、そのなぜ、というのに、実験付きで数値の根拠も含めてわかりやすく説明してくれているのが本書です。CPU実験がおもしろい本書は、豊富な図で(LambdaNo

ビデオカードのメモリが増設できない理由について、昔この業界に関わったことがある俺が説明してみる。理由は2つで、技術的ハードルが高い点と需要が無いという点である。 その1技術的ハードルについて現在主流となっているビデオカードのメモリはGDDR6という規格である。こいつは16Gbpsでデータを転送できるんだが、1bitのデータのやりとりに使えるのはわずか62.5ピコ秒しかないということだ。これってメチャクチャやばい話で、僅か数mmの配線長の違いでも信号のタイミングのずれに影響してしまう。PC系のニュースサイトでビデオカードからクーラーを外した写真がよく掲載されているので試しに見てほしいのだが、タイミングずれが起きないようにGPUの周りを囲むように等距離になる位置にメモリが配置されているのがわかるだろうか?また、このような配置には、配線距離が短くなるメリットもあるのだ。 一方、PCに使われるメ

Introduction (This article is also available in form of a video.) In 2021, Adobe, together withChrome engineering, brought a version of Photoshop to the web. The software makes innovative use ofWebAssembly with features likeSIMD, high performance storage in the origin private file system, the P3 color space for canvas, and Web Components with Lit. In this article, we want to focus on how Adobe
この記事の狙い この記事は、端的に言えば この図が言わんとしていることを理解できるようになるための解説を目指しています。 昨今のプログラミング環境において、メモリの管理方法やその実態は、詳細を知らずとも目的を達成できるようになっています。といっても、実際にはメモリは無尽蔵に使えません。制約が厳しい環境下で動かさねばならないプログラムもありますし、多少潤沢に使える環境であっても、無駄に浪費するよりは、必要最低限のメモリで効率よく動作するプログラムの方が、多くの場面においては良いプログラムと言えるでしょう。 メモリのことなど知らなくてもプログラムを書けるのは一つの理想ではありますが、現実的にはその裏に隠されている(抽象化されている)仕組みを知っておいたほうが有利です。また、昨今のレトロゲームにおけるタイムアタックで駆使されるメモリ書き換えのテクニックなども、何故そういったことが可能なのかを知る

Google、訂正不可能なメモリエラーによるクラッシュを回避する「Memory Poisoning Recovery」をGoogle Cloudで提供へ ずっと安定して稼働していたシステムが、ある日突然エラーでクラッシュ。調べても原因が分からないので、「何らかのノイズや放射線などの影響でメモリエラーが起きたのでは?」という推測を顧客に報告した、なんて経験を持つベテランのITエンジニアは少なくないのではないでしょうか。 実際のところ、2009年のGoogleの調査では同社の本番システムにおいて、1年間で8%以上のDIMMモジュールにメモリエラーが発生していたと報告されています。想像以上にメモリエラーというのは起きているのですね。 ただし、現代のメモリとCPUなどではエラー訂正機能を備えているため、多くのメモリエラーは訂正され、システムの動作に影響を与えないようになっています。 しかし訂正しき

最近趣味や仕事の Web アプリケーションでメモリリークに遭遇して、頑張ってメモリリークの原因を突き止めて修正する、ということがあった。その過程でメモリリークについて色々調べて知見が溜まったので、学習資料の紹介という形でアウトプットしてみる *1。 前置き 紹介する記事がかなり偏っていることに注意 冒頭で触れたメモリリークを解決するために読んだ記事をまとめただけなので、内容にそれなりの偏りがある 例えば id:mizdra が遭遇したメモリリークは全てブラウザ上で発生していたものだったので、これから紹介する内容も主にブラウザにおけるメモリリークに焦点を当てたものになる GC がどうメモリをどう解放しているか、何故メモリリークが発生するのかは全てカット 調べれば色々な記事が出てくるので、必要に応じて読んでください 基本的な知識を抑える まずメモリリークとメモリ撹拌の違いを学ぼう どちらも同じ
PHPとPythonとRubyの連想配列のデータ構造がそれぞれ4〜5年ほど前に見直され、ベンチマークテストによっては倍以上速くなったということがありました。具体的には以下のバージョンで実装の大変更がありました。PHP 7.0.0 HashTable高速化 (2015/11)Python 3.6.0 dictobject高速化 (2016/12)Ruby 2.4.0 st_table高速化 (2016/12) これらのデータ構造はユーザーの利用する連想配列だけでなく言語のコアでも利用されているので、言語全体の性能改善に貢献しています1。 スクリプト言語3つが同時期に同じデータ構造の改善に取り組んだだけでも面白い現象ですが、さらに面白いことに各実装の方針は非常に似ています。独立に改善に取り組んだのに同じ結論に至ったとすれば興味深い偶然と言えるでしょう2。本稿では3言語の連想配列の従来実

by renatomitraLinuxの開発者のリーナス・トーバルズ氏が、技術コミュニティの「Real WorldTech」内で「IntelはECCを死に至らせている」と発言し、IntelのECCに対する姿勢を厳しく批判しています。 Real WorldTechnologies - Forums - Thread: Ryzen 9 5000 series processor https://www.realworldtech.com/forum/?threadid=198497&curpostid=198647Linus Torvalds On The Importance Of ECC RAM, Calls Out Intel's "Bad Policies" Over ECC - Phoronix https://www.phoronix.com/scan.php?page=n

はじめに 最近バズった以下の記事について、補足のようなものを書きたくなったので書きます。note.com 上記の記事に対して「模様って何…?」のようなコメントが散見されましたので、カーネルのメモリダンプ解析経験が数年ある筆者が、わたしの理解できる範囲でメモリの模様とはどんなものかについて書きます。なお、模様とはあくまで感覚的なものなので、上記記事で扱われているかたの定義とわたしの定義は違うかもしれませんのであしからず。また、LinuxカーネルやCPUについてのある程度の知識が必要な表現や用語が出てきますが、本記事ではそれらについての説明は割愛します。 メモリのさまざまな模様 メモリの模様とは(少なくとも私にとっては)16進バイナリの文字列の特定パターンです。ここでいうパターンとは正規表現マッチングできるようなパターンのことを指します。その中の代表的なパターンを見てみましょう。 ポインタ
OOMKillerの殺意 顧客EC2のTomcatがアクセスの無い早朝にもかかわらずOOMKillerに突然殺されてしまったので、調査した顛末をたぶん同じような問題に直面されている方もおられるかと思いますので備忘録として記載します。Javaヒープのチューニングにも多少役立つかと思います。 (この記事はJava8が対象となります。) OOMKillerとはOut of Memory時に、サーバ全体を守るためにメモリーを消費しているプロセスを停止するLinuxの標準機能です。 そのOOMKillerになんとTomcatが突然殺害されてしまいました。 問答無用の辻斬り状態です。 早朝ですのでアクセスログには何も記録されておらず、catalina.outには OpenJDK 64-Bit Server VM warning: Setting LargePageSizeInBytes has no

複数のApple 製品で使用している SecureROM には解放済みメモリ使用 (use-after-free) の脆弱性が存在します。 プロセッサチップ A5 から A11 を搭載する次の製品iPhones 4s からiPhone X までiPad 第 2 世代から 第 7 世代までiPad Mini 第 2 世代および 第 3 世代iPadAir およびiPadAir 2iPad Pro 10.5 インチ および 12.9 インチ 第 2 世代Apple Watch Series 1 から Series 3 までApple TV 第 3 世代 および 4k iPod Touch 第 5 世代 から 第 7 世代 脆弱性に該当するプロセッサチップを利用している製品であれば、上記以外の製品も影響を受けます。 なお、 A12 以降のプロセッサチップを使用している i
NetflixのシニアパフォーマンスアーキテクトであるBrendan Gregg氏による、Linuxサーバにログインして60秒でまず調べることのまとめ。 パフォーマンス問題でLinuxサーバーにログインしたとして、最初の1分で何を調べますか?Netflixには、多数のEC2Linuxからなるクラウドがあり、そのパフォーマンスを監視したり調査したりするための数々のパフォーマンス分析ツールがあります。その中には、クラウド全体にわたる監視を行うAtlasや、オンデマンドにインスタンスの分析を行うVectorがあります。これらのツールは多くの問題を解決する手助けをしてくれますが、各インスタンスにログインし、標準的なLinuxパフォーマンスツールを実行する必要がある場合もあります。 この記事では、すぐ使えるはずの標準的Linuxツールを使いコマンドラインにおいて、最適化されたパフォーマンス調査を
とかやると思いますが、このmallocで帰ってくるメモリがどこから来るか答えられる人は居ますか?バッチリ答えられるという人、glibcのソースコードを読んだことある人は帰っていただいて大丈夫です。メモリは天から降ってくる恵みだと思っている人、学校では習った気がするけど実はよく知らないという方はこの記事を読むとよいと思います。 C言語でプログラムを書かないから関係ないという方も一読してみてください。C++でプログラムを書いたとしても、new演算子で動的にメモリを確保する際には内部でmallocが使われています。他の言語で書いている場合でも動的なメモリの確保の際、密かにmallocのお世話になっているのです。少しでもメモリの気持ちがわかることで、メモリに優しいプログラム、メモリ不足でクラッシュしにくいプログラムを書くことができるようになります。 なお、malloc関数はシステムコールではなくラ

ハードウェアのエラーでメモリの内容が化けてしまうことが稀にある。大抵のDRAMエラーはせいぜいプログラムがクラッシュする結果になるだけだが、データ破壊になることもありえるし、悪意のある使い方をすればセキュリティ破りに使うこともできてしまう。ここではメモリエラーとセキュリティの話をしようと思う。 メモリのエラー率は意外なほど高い。データセンターで大規模なマシン群を対象に実際に観測したところ、1年間に1回以上のエラーが発生したDIMMモジュールは全体の8%にのぼったそうだ。DIMM 1枚に数百億個のメモリセルが実装されているといっても、このエラー率はちょっとびっくりするくらい大きな数字ではないだろうか? サーバでは普通はエラー訂正付きのDIMMを使うので1ビットのエラーは問題にならないが、エラー訂正のないコンシューマ機器ではこれは実際的な問題になりえる。 メモリエラーを利用したセキュリティ破り


さくらインターネット Advent Calendar最終日は、硬派にLinuxのメモリに関する基礎知識についてみてみたいと思います。 最近はサーバーを意識せずプログラミングできるようになり、メモリの空き容量について意識することも少なくなりましたが、いざ低レイヤーに触れなければいけないシチュエーションになった際に、OSを目の前に呆然とする人が多いようです。 基本的にLinux のパフォーマンスについて、メモリをたくさんつめばいいとか、スワップさせないほうが良い とか、このあたりは良く知られたことだと思います。 ただ、なんとなく ps コマンドや free コマンド などの結果を見るだけでなく、もう少しメモリのことについて掘り下げてみてみたいと思います。 メモリとキャッシュLinux におけるメモリの状態を大きく分けると「使用中のメモリ」「キャッシュ」「空きメモリ」「スワップ」の 4 つに分

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く