以下イベントの発表資料です。 https://forkwell.connpass.com/event/273179/
こんにちは、スマートニュースの徳永です。深層学習業界はGANだとか深層強化学習だとかで盛り上がっていますが、今日は淡々と、ニューラルネットワークの量子化の話をします。 TL;DR パラメータだけを量子化するのであれば、ほぼ精度を落とさずに、パラメータのデータ容量は1/16程度にまで削減できる パラメータ、アクティベーション、勾配のすべてを量子化し、推論だけでなく学習までもビット演算だけで実現する研究が進んできている 現在は深層学習 = GPU必須というぐらいの勢いがあるけど、量子化の研究が進むと、今後はどうなるかわからないよ はじめに 情報理論における量子化とは、アナログな量を離散的な値で近似的に表現することを指しますが、本稿における量子化は厳密に言うとちょっと意味が違い、十分な(=32bitもしくは16bit)精度で表現されていた量を、ずっと少ないビット数で表現することを言います。 ニュ
こんにちは。iOS / Mac 開発担当の金内です。 使って幸せなアプリには、サクサクとした動きが欠かせませんね。自分たちで作っているアプリが「サクサク」でなく「もっさり」と言われてしまうと残念な気持ちになりますが、反面「よし。こうなったら超最適化して超サクサクなハイパフォーマンスアプリを目指す!」と誓いを立てるよい機会でもあります。 そんな誓いを立てたあなたにピッタリのツールが Xcode に付属している Instruments(インストゥルメンツ)です。フェンリルのウェブブラウザ Sleipnir for Mac や Sleipnir Mobile for iPhone / iPad の開発でも大活躍しています。 Instruments は、一般的にはプロファイラという種類のツールにあたります。プロファイラは、どのオブジェクトがどれくらいメモリを消費しているとか、どのメソッドにどれくら
技術本部 サービスリライアビリティグループ(SRG)の長谷川 @rarirureluis です👳 #SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。 はじめに Apple M1 で Arm という単語をよく耳にし、そしてその性能に驚いた方も多いと思います。Apple M1 が搭載された Mac のベンチマークはこちら そして Amazon EC2(以下:EC2)にも Arm が搭載されたインスタンスがあります。 https://aws.amazon.com/jp/ec2/graviton/ 今回はとあるサービスの全開発環境の EC2 インスタンスを m5.large から t4g.medium へ移行したら幸せになれたので、この記事を
CPUパフォーマンス比較表(合っている保証はなし, SandyBridgeのTB計算あきらめました…)
Mac派でも、Windows派でも。 今使ってるラップトップが古くなってきたし、そろそろ買い換えようかなあという方。今は新しいコンピューターを買うには最悪のタイミングです。だってあと2ヵ月も待てば、今あるものよりはるかに良いものが買えるようになるんです。 もちろん、少し先伸ばししたら新しいものが出てくるってのは、今に始まったことじゃありません。でも今回は、いつもとはわけが違います。MacでもWindowsでも、その点では同じです。あとほんの数週間で、多くのラップトップに搭載されるIntelのCPU、GPUがいろんな意味で大幅アップグレードされるんです。Intelの新しいアーキテクチャ、Haswellには、以下に挙げるようないろんなメリットがあるんです。 1日中使ってもOKな電力効率 バッテリーライフが重要なのはスマートフォンだけじゃなく、ラップトップにおいても言えることです。特にタブレット
別にグラフィックスに限ったことじゃないし、そもそも論文とか全然関係ないけど。GPU 周りでもたまに話題になるし、自分でもたまにわけわからんくなるから整理しとく。 メインメモリは遅い CPU からメインメモリにデータを読みに行く場合、これはとにかく遅い。例えばレジスタにあるデータを読みに行く場合と比べると、だいたい数倍から数100倍の遅さ。ヤバいからなんとかしよう。もっと早くアクセスできる場所にデータおいとこう。 キャッシュライン CPU がメインメモリからデータを読み出すとき、必ず小さなメモリチャンクをキャッシュ上にロードする。ロード単位はプロセッサによるけど、だいたい 8 ~ 512 バイト。このロード単位をキャッシュラインと呼ぶ。 アクセス対象のデータが既にキャッシュに載ってる場合は、メインメモリじゃなくてキャッシュを読みに行く。ない場合はメインメモリにアクセスするけど、そのデータはも
第1回 CPUは数百本の足を持つトランジスタのかたまり 第一回目は、CPUを物理的・電気的な部品として解説します。パソコンに使用されるCPUの外観は、数百本の足(ソケットに挿すピン)を持ち、1億個を超えるトランジスタを集積したICで、VLSI(大規模集積回路)と呼ばれます。今回は、このCPUを外側から眺めて、物理的な仕組みや電気的な働きを説明します。 CPUの構造 CPUの解説の最初に、CPUの構造を概観します。そのために少し遠回りですが、ICの製造方法に触れておきます。 ICの製造方法 ICの材料にもっとも多く使われるのはシリコンです。土や砂の主成分であり入手しやすい事や、動作が安定していること、その絶縁膜が半導体に適しているという理由からです。 実際に材料として使われるのはシリコンが酸化物と結びついた珪石です。珪石をいくつかの工程を経て、高純度化(純度99.999999999、イレブン
みなさんこんにちは。電通国際情報サービス(ISID) 金融ソリューション事業部の水野です。 これは電通国際情報サービス Advent Calendar 2022の16日目の記事です。 今回は、ISID金融事業部で運用しているスキルマップについてご紹介します。 テックリードとは 実は、ISIDの少なくとも金融事業部にテックリードと言うポジションはありません。 実在するのはチーフアーキテクトと言う職種のみで、各プロジェクトでリードエンジニアやテックリードという仮想的なロールがあるのが実態です。 一時期はフルスタックエンジニアと呼んでいる時期もありましたが、近年このワーディングが好まれない印象なので、大々的に使っていません。 主観ですが、フルスタックエンジニアはインフラ知識/運用系の知識のウェイトが高いエンジニアで、テックリードはソフトウェアアーキテクチャ、Webアプリケーション実装技術寄りのエ
はじめに 時はPlayStation2も そろそろ終わり。 PS2互換機がゲームセンター等で使われていた時代の事です 私は当時 超新人だったんだけどね ただ私は 大学を3ヶ月で光速中退して すぐにフリーランスになった変な経歴持ちです そんな時 ある人物が 掲示板に メモリマネージャやDMA、3DCGについて質問をしていた ちょうどその時期 仕事が楽だったので 光速で回答しました。 メモリマネージャ作りたいっていうので、簡単な方法として、連結リストでAllocateしていくと簡単だよ DMAについては 方向のふらぐがこーであーするだけだよ 3DCGについては DirectXを知識は入れてたので なんとなく回答 すると やり取りから1週間で 仕事してもらえますか? PS2の自社タイトルを作ってます。コアエンジニアが不足しています とメールアドレス宛にメッセージがきたので 請ける事に これがすべ
30 best practices to boost your web application performance - Web User Interface Architect JavaScriptコーディング等を書く上でのパフォーマンス確認事項30。 自分へのインプット&メモがてらにちょっとまとめてみます。 JavaScript DOMの操作は可能な限りやめる eval, new Function() は遅いので可能な限り使わない withステートメントを使わない(使った事ないですが) for-in 文ではなく for 文を使う。 ループの中で try-catch ではなく、try-catchの中にループを置く グローバル変数をなるべく使わない aaa+='AAA';aaa+='BBB'; の方が aaa+='AAA'+'BBB';より速い 複数の文字列連結には、Array で文字列
負荷試験対策ミーティング ここでは、チームメンバーを集めて、システム要件の再確認と、バックエンドのアーキテクチャを再確認をまず行います。すなわち、「求められているもの=要件」と、「提供できるもの=アーキテクチャ」の確認です。ここの認識が揃っていないと、的はずれな負荷試験を実施してしまうことになりかねません。立場や役割にかかわらず、サービス全体として考えるべきです。 負荷試験の目的 負荷試験を行うことによって、何を示したいのか決めます。今回は、以下の目的を定めます。 サービスリリース後、想定されるピーク時のリクエストを受けた場合でも、問題なく稼働を続けられることを確認する システムのスループット限界値を確認する 負荷試験の観点 たいていのWebシステムの場合、昼夜を問わず稼働し続けるものとなるでしょう。今回例にとったシステムも24時間365日、リクエストを受け付けるものとします。この場合、観
ブートローダからカーネルまで これまでの私の ブログ投稿 を読まれた方はご存じかと思いますが、しばらく前から低水準言語を使うようになりました。Linux用x8664アセンブリ言語プログラミングについても書いています。また、同時にLinuxのソースコードにも触れるようになりました。下層がどのように機能しているのか、コンピュータでプログラムがどのように実行されるのか、どのようにメモリに配置されるのか、カーネルがどのように処理や記憶をするのか、下層でネットワークスタックがどのように動くのかなどなど、多くのことを理解しようと意欲が湧いています。これをきっかけに、 **x8664** 版Linuxカーネルについてシリーズを書いてみようと思いました。 私はプロのカーネルプログラマではないことと、仕事でもカーネルのコードを書いていないことをご了承ください。個人的な趣味です。私は下層で何が起きているのかと
”とある外国人向けのページ”が面白かった。「超訳」ですが…。 面白いなぁと思ったのは、エントリの内容もさることながら、むしろ罵倒表現のバラエティについてです。念の為。 最新のインテル「Core 2 Duo」プロセッサ、メモリ2GB、最新のマイクロソフトOS「Windows Vista」を搭載したPCを購入した。10万円以上かけて購入したこの新しいPCは、快適なウェブブラウジング環境を手に入れようと、大金をはたいて購入したものだ。だが、買ってきてセットアップしてみて、私の心はズタボロに切り裂かれることになった。 何よりも驚かなくてはいけなかったのは、その起動時間の遅さだ。Intel社が会社を挙げ、大金を注ぎ込んでできあがったデュアルコアCPUを搭載しているのに、Windowsの起動までに1分以上かかる。一体これはどういうジョークなのだろうか?一流のアメリカンジョークだというのだろうか。 なぜ
Web業界の方に「組み込み系ソフトウェア」「家電系ソフトウェア」という話しをすると途端に表情に?マークが浮かび、会話がかみ合わなくなることがある。先日id:amachangと飲みながらそんな話しをしていたので、組み込みソフトの世界について、Web業界・PC業界の方にもわかりやすく説明してみたい。折しも就職活動が激化する時期でもあるので、組み込みソフトウェア業界ってものがいったい何を指すのかよくわからん、という学生の諸君の参考にでもなればと思う。 そんなものにもOSが 自宅にあるルーターやDVDレコーダー、テレビ、カーナビ。普段なんの気なしに使っているけど、実は中をあけてみると、WindowsだのLinuxだのといったOSが入っていることがほとんど。でも起動するときにWindowsのロゴマークとか出ないのは、単に出ないようにしているだけ。ものすごい極端に言えば、メディアプレイヤーしか使えない
Hi, I’m jQuery++. I am a MIT licensed collection of extremely useful DOM helpers and special events for jQuery 1.8 and later. I’m not a UI project like jQuery UI or jQuery Tools. Instead, I’m all about providing low-level utilities for things that jQuery doesn’t support. If Underscore is jQuery’s functional-programming tie, I am jQuery’s bald-spot covering toupee. Select the plugins you want and c
ここで論じているのは、オーディオアプリの開発者が陥りがちな 4つの間違い 、 より良く開発する方法 、 問題個所の発見方法 です。主に開発者向けの内容ですが、開発者以外の方にも知っておいてもらいたいと思います。ここでは、開発者向けの診断ツールである Realtime Watchdog を紹介し、 人気のあるオーディオライブラリの調査結果 を提示します。 オーディオアプリの開発はとてつもなく楽しいです。やりがいを感じるし、創造力を発揮できる範囲が大きく広がり、ひとたび開発が終われば、 誰かがクリエイティブなツールとして使ってくれるのです! こんな分野は多くないし、この領域で働けるなんて非常に幸運だと自分でも思っています。 しかし、仕事でオーディオアプリを扱う時には深く考えなければならない部分もあります。オーディオアプリの開発者としてユーザに対する責任があるのです。大前提として、ユーザを公共の
Full MySQL Support Sequel Pro is a fast, easy-to-use Mac database management application for working with MySQL databases. Perfect Web Development Companion Whether you are a Mac Web Developer, Programmer or Software Developer your workflow will be streamlined with a native Mac OS X Application! Flexible Connectivity Sequel Pro gives you direct access to your MySQL Databases on local and remote se
最終報告書を読む 九州商船株式会社のWEB予約サービスに対する不正アクセスについて、最終報告書が公開されました。報告書を読ませていただきましたが、その内容に関して大変勉強となることが多く含まれています。 弊社WEB予約サービスに対する不正アクセスに関する最終報告|九州商船 ※ITmediaでニュースにもなっていましたので追記しておきます。 japan.zdnet.com 不正アクセスの目的は、linuxに不正侵入し仮想通貨マイニングを行うというものです。データを盗み出すのではなくマイニングというところが2018年っぽいです。ただCPUが100%に張り付くのですぐに見つかってしまっていますが。 この報告書について考察してみます。 原因についての考察 原因はvsftpdで使っているFTPプロトコルをANYで開けていて、ブルートフォースでパスワードが割れてしまったこと。かつ、OS/ミドルウェアの
概要 学生氏に適当なことを言い過ぎ反省しているので、バックエンドのいま覚えてる良かった記事の共有です。 まっさきにみるやつ Web 系エンジニアの学習ロードマップです。 とりあえずこのロードマップにのってる"紫のチェックマーク"がついたものを順番にこなしていけば良いとおもいます。backend のロードマップを紹介しましたが他にもfrontend やdevops などもあります。しかも毎年更新してくれます。 この記事はこのロードマップ以上の情報は提供できません。おわり。 roadmap.sh その他 エンジニアリングについては雑に調べると歴戦のエンジニア各位が紹介してくださってるので、クラウド系をメインに紹介します。 一般的なやつ タイトルママ。 バックエンドというよりエンジニアリング全般。 japan.googleblog.com 技術記事に特化したキュレーションサービスです。 追いたい
Node.jsは普及しそうに無い: ニュースの社会科学的な裏側 http://anlyznews.blogspot.com/2011/02/nodejs.html という記事があったので、もしかしたらいい感じにNode.jsについてのよくある誤解がここに網羅されてるんじゃないかと思ってエントリを書きます。決して顔真っ赤にして反論してるわけじゃないよ! で、まず 理由は簡単で、Googleがリリースしたアプリケーション・サーバーであるnode.jsが、JavaScriptとその実行エンジンを基本とした構成となっており、その性能が高いからだ。 とありますが、Node.jsはGoogle製ではありません。Node.jsがベースとしているJavaScriptのV8エンジンはGoogle製(のオープンソース)ですが、Node.js自身はJoyentという会社のサポートによって作られています。メインコ
「今、ゲーミングPCを組むなら15万円」――1年前から変わった常識:古田雄介のアキバPick UP!(1/4 ページ) 夏休みはPCパーツの一式買い需要が増える。ただ、2021年の8月は「思っていた予算でゲーミングPCが組めずに涙をのんだ学生さんがいました」という話をちらほら聞いた。 原因は9割方グラフィックスカード――夏休みに涙をのんだ学生さんも 2021年に入ってPCパーツ、特にグラフィックスカードの値上がりが続いており、ゲーミングPCを組むトータルコストが上昇していることが背景にある。あるショップは「1年前は『予算10万円でゲーミング!』と売り出していたんですが、今はほぼ不可能なお題になってしまいましたね」と嘆く。 振り返れば、2020年6月には特別定額給付金(10万円)を元手に自作マシンを組むブームが起きていた。あれから、ゲーミングPCの最低ラインによく挙げられるGeForce G
おれはハッカーだ。 なので、ハッカーではない人種と呑むのが苦手である。 たとえば「ITエンジニア」と自称するような人たちだ。 当然だが、ITエンジニアと自称する人はハッカーではない。 ITエンジニアと言う言葉はスコープが広すぎていちいち細かい説明を聞かなければならない。 これが厄介なところである。 あるとき、友達の家で飲み会をすると言われ、誰が来るの?と聞いたら知らないIT関連会社のエンジニアたちだという。 エンジニアと呑むと喧嘩しちゃうので断ったのだが、いろいろあっていくことになってしまった。 するとやっぱりこんなはなしをしていた。 「やっぱ私もRubyみたいなスクリプト言語なんか卒業してコンパイル言語やんなきゃ。処理速度がね…」 「コンパイル言語って?」 「TypeScriptとかJavaとかC#とか」 「それ、中間コード言語じゃねえか。なんの意味があるんだ。YARV知らないのか」 ま
今日会社の開発サーバでhitode君と遊んでて、動いているプロセスを調べていたのでメモ。 動いているプロセスを知りたい 基本的。 ps ax ps auxとかすると、メモリ使用量とかいろいろ見れる。 動いているプロセスの関係も含めて知りたい pstreeコマンドでできる。とりあえずどんな感じに実行されているかサマリーを知りたい時は以下のコマンド。 pstree いろいろ折りたたまれているので、それを展開したい時は-cをつける。 pstree -c コマンドの引数とかも表示したい時は-aつける pstree -ac pidを知りたい時は-pつける pstree -acp 表示してみると{}で囲まれているやつがあるけど、これは多分threadなんだろうと思う。linuxではthreadのidはpidのように管理されているみたい。 メモリやCPUを消費しているプロセスを知る topとかでいろいろ
ゲームなどを作っているとランダムさが必要になることがあるけど、コンピュータは基本的に毎回全く同じように動くので、乱数を作り出すのはそう簡単なことではない。Wi-FiやHTTPSなどの暗号は乱数のランダムさに本質的に依存しているので、高品質な乱数生成は世の中的にも重要な話題である。ここでは乱数生成について話をしてみよう。 ゲームではイベントがプレイヤーに予測不可能であればよいだけなので、真の乱数列ではなく擬似乱数列というものを使うことが多い。擬似乱数列は人間にはランダムにみえるけど、実際は何らかの数式によって順番に生成されているだけの数の列で、初期値を毎回違うものにしておくと、人間には毎回違う数列が生成されるようにみえる。初期値には現在時刻を使うことが多い。現在時刻は普通の用途では毎回違うからだ。 昔のゲーム機は現在時刻の設定がなかったので、ファミコンなどでは、起動してからの経過時間を疑似乱
昨日、iMac 用に HHKP 白買ったつってたら、そのエントリで晒したリアルデスクトップ画像を見た typo さんが、「Synergy 使えばいいじゃん」とひとこと。その Synergy ってのは、複数のマシン間でキーボードとマウスを共有するためのソフトだということなのだけど、過去に使っていた CPU 切換機のことが頭にあったので「ハードウェア無しでそんなことできるのか??」と思ったのですが、各マシンにインストールされたクライアントと、サーバとで通信することにより、キーボードとマウスを共有しちゃうってな仕組みらしいです。かっけー。主な特徴としては、 特別なハードウェアいらない 共有するマシンの OS は、Windows や Mac や各種 UNIX ぽい系、なんでもオケ 複数マシン間でクリップボードも共有できる スクリーンセーバが同期 ってな感じで、まさにキタコレ!さっそく Synerg
米ドル/円 が150円と計算しやすくなり、コスト削減の圧力が日々強まる中、皆様お宝探しと垂れ流し回収の真っ最中でございましょうか。 最近はコスト削減や予算について見ることが多いので、その中で出てきた面白げな話に雑談を加えてとりとめなく書いてみようと思います。 削減余地はある 昨年にご好評いただいた AWSコスト削減とリソース管理 | 外道父の匠 を含め色々な削減施策を試みてきましたが、サクッと成果になる箇所から泥沼に動かない所まで様々あったりします。 ただ、どんなアカウントでもトラフィックや処理負荷には波があり、それに対する余剰リソースを確保して構成しているので、その辺をキュッと絞ることまで含めればやれることは必ず一定以上存在することになります。 そういう大きなお宝ではない小さなお宝だと様々あり、古びたとか退職者が作ったとかで、ほぼ使っていない垂れ流しリソースやデータをかき集めれば、チリツ
[若き日の Steve Jobs] Flash をめぐる紛争についてたいへん刺激的な論考がある。 steve’s blog: “The Genius in Apple’s Vertical Platform” by Steve Cheney: 14 April 2010 * * * 戦略的理由 今週アップルはデベロッパを特定の開発ツール XCode に閉じ込めた。これはアドビの Flash を潰すためだと多くのひとは考えた。たしかに戦術的にはそうだ。しかしもっと大きな戦略的理由があるのだ。アップルは XCode ツールに移行するようデベロッパを促すことにより、アーキテクチャを変更する準備を整えているのだ。 This week Apple confined developers to a specific set of tools (XCode). A lot of peop
by JD Lasica from Pleasanton, CA, US イーロン・マスク氏率いるTwitterが約1万個ものGPUを買い入れて、膨大なツイートで学習した独自のジェネレーティブAIの開発を進めていることが報じられました。マスク氏は、AIが制御不能となり社会と人類に深刻なリスクをもたらすと主張し、最先端のAIプロジェクトの6カ月停止を要求した書簡に署名をしたばかりです。 Elon Musk reportedly bought thousands of GPUs for a Twitter AI project | Engadget https://www.engadget.com/elon-musk-reportedly-bought-thousands-of-gpus-for-a-twitter-ai-project-214535382.html 伝えられるところによると、
コンピュータシステムの理論と実装 をやりきったので、メモを残しておきます。 本の紹介 コンピュータシステムの理論と実装 では、NAND ゲートからはじめて、最終的にはアプリケーションを動作させるところまで、ボトムアップの視点でコンピュータシステムの説明が記載されています。通称「Nand2Tetris」。名前がかっこいいですね。 とてもわかりやすい裏書きの説明は以下 コンピュータを理解するための最善の方法はゼロからコンピュータを作ることで、その構成要素は、ハードウェア、ソフトウェア、コンパイラ、OSに大別できる。本書では、これらの構成要素をひとつずつ組み立てる。具体的には、NANDという電子素子からスタートし、論理ゲート、加算器、CPUを設計。オペレーティングシステム、コンパイラ、バーチャルマシンなどを実装しコンピュータを完成させて、最後にその上でアプリケーション(テトリスなど)を動作させる
先週Microsoft社がP言語に関するブログ記事を公開し一部界隈で話題となった。 P言語くん pic.twitter.com/uULzxIO4ct— Kuntaro Ishiyama (@_iamkuntao) 2017年3月26日 「いまさら一文字言語かよ…」「何個目だ?」といった批判的諦念的なものから、「RustとGoとErlangの間の子みたいなのだなあ」「なんか読みにくい」といった反応が多くこの言語の重要性やインパクトに対して正しく理解しているものがあまりなかった。尊敬しているTD勢ですらあまり重要性が伝わってないようだ 1 2 。上記のブログ記事を読んだり、マニュアルを読んだらすぐ分かるようなことではあるが、日本語で解説しておこうと思う。なおいわゆる言語入門とかそういった類のものではないことをご理解いただきたい。 TL;DR 並行処理や分散システムの形式証明や形式検証はそれ自体
インテルx86マシンの奥深くでは人知れず「MINIX 3」が動作しており、脆弱性を作り出している。Googleらはそれを排除しようとしている インテルのx86プロセッサを用いたシステムでは、その奥深くで人知れずMINIX 3を含む2つほどのカーネルがプロセッサ上で稼働しているOSとは別に作動しており、それが脆弱性を作り出しているとGoogleのエンジニアらが警告し、それを取り除こうという動きを見せています。 それが、10月23日から26日までチェコ共和国のプラハで行われたOpen Source Summit EuropeでGoogleのRonald Minnich氏のセッション「Replace Your Exploit-Ridden Firmware with Linux」(脆弱性にまみれたファームウェアをLinuxで置き換える)のセッションで説明されたことでした。 これを、海外のメディア
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く