タグ

ブックマーク / blog.cybozu.io (7)

  • 【RxSwift】Singleton で DisposeBag を使うことの考察 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。モバイル開発チームに所属している小島です。 弊社のプロダクトでもようやく RxSwift を使い始めています。今回は RxSwift の Disposable について思うところがあったので、メモしておきます。 Disposable と DisposeBag Observable を subscribe すると、Disposable を返してきます。 Disposable は、subscribe したものを unsubscribe するための仕組みで、これを無視すると subscribe した処理が永遠に解放されずにメモリリークやリソースリークに繋がる恐れがあります。 なので、とりあえず DisposeBag に入れておけばいいよというのはよく見かけます。 class SomeClass { private let disposeBag = DisposeBag() priva

    【RxSwift】Singleton で DisposeBag を使うことの考察 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • MKL-DNNで学ぶIntel CPUの最適化手法 - Cybozu Inside Out | サイボウズエンジニアのブログ

    初めに サイボウズ・ラボの光成です。 DNN(deep neural network : 深層学習)といえばGPUや専用プロセッサを使うのが主流です。 しかしIntelはCPUで高速にDNNをするためのライブラリ MKL-DNN を提供しています。 MKL-DNNはIntelの最新CPUに対応したオープンソースソフトウェアなのでコードを見ると勉強になります。 ここではMKL-DNNで使われているテクニックをいくつか紹介します。 概要 MKL-DNNの紹介 Xbyakの紹介 呼び出し規約 圧縮displacement ReLU exp 内積 vpdpbusd キャッシュコントロール 想定読者 C++11とx64 CPUのアセンブリ言語の知識をある程度仮定します。 機械学習についてはその知識がなくても最適化手法が理解できるよう、最小限の説明をします。 MKL-DNNの特長 まずMKL-DNNの

    MKL-DNNで学ぶIntel CPUの最適化手法 - Cybozu Inside Out | サイボウズエンジニアのブログ
    u_wot_m8
    u_wot_m8 2019/04/16
  • ざっくりわかった気になるモダンGC入門 - Cybozu Inside Out | サイボウズエンジニアのブログ

    どうも!@yokotaso です! 2018/05/26のJJUG CCC 2018で「ざっくりわかった気になるモダンGC入門」というタイトルで登壇させていただきました。 現在開発中の新しいGCアルゴリズムをざっくり理解することをテーマに発表しました。 発表練習用に作ったカンペの内容を公開します。ブックマークコメントでもツイートでも感想を書いていただけると喜びます! 発表資料は、speakerdeck にあります。はじまり〜はじまり〜 はじめに 今日はざっくりわかった気になるモダンGC入門というお話をさせていただきます。 現在開発中のGCアルゴリズムの全体像を理解してもらうことを目的としたセッションです。よろしくおねがいします。 さて今日のアジェンダですが、まず簡単にこれまでのGCを復習した後に新しいGCが必要になってきた背景について少し話します。 次にShenandoahGC、ZGC、E

    ざっくりわかった気になるモダンGC入門 - Cybozu Inside Out | サイボウズエンジニアのブログ
    u_wot_m8
    u_wot_m8 2018/05/29
  • Kubernetesで利用可能な分散ストレージのOpenEBSを探求してみた - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、アプリケーション基盤チームの池添(@zoetro)です。 サイボウズでは、cybozu.comのアーキテクチャ刷新プロジェクトNecoプロジェクト)を実施しています。 アーキテクチャ刷新プロジェクトNeco」の紹介 運用部長を退任して Neco プロジェクトに専念します Necoプロジェクトでは、現在以下のようなテーマに取り組んでいます。 ハードウェアプロビジョニングの容易化・自動化 障害に強く、スケールするネットワークアーキテクチャの検討 Kubernetesクラスタの構築 高耐久性・高可用性ストレージアーキテクチャの調査 今回は、Kubernetesで利用可能な分散ストレージのOpenEBSを調査したので、その結果を報告したいと思います。 TL; DR OpenEBSのアーキテクチャを解説 設計がシンプルで使い勝手はよさそうだが、耐久性を担保するための機能がやや不足

    Kubernetesで利用可能な分散ストレージのOpenEBSを探求してみた - Cybozu Inside Out | サイボウズエンジニアのブログ
  • @lestrrat 氏に Kubernetes を教えてもらいました - Cybozu Inside Out | サイボウズエンジニアのブログ

    @ymmt2005 こと山です。SRE とかやってます。 サイボウズでは「Neco」という、クラウド基盤のアーキテクチャを刷新するプロジェクトを進めているのですが、今回は @lestrrat こと牧大輔さんをお招きして Kubernetes の導入を検討しはじめた話です。 当日の牧さんの資料は以下で公開されています。 Kubernetes in 30 minutes (2017/03/10) from lestrrat 現状のシステム サイボウズのクラウド基盤は 1,000 台規模の物理サーバーと数千台の仮想マシンの上で動作する数々のサービス群で構成されています。どのサービスをどのサーバー・VM で動作させるかは現状人手による暖かみのある管理方式で、規模の増大に伴い工数も増えています。 多数の物理サーバーを保有しているので遊休リソースも相当あります。画像変換処理などで遊休リソースを有効活

    @lestrrat 氏に Kubernetes を教えてもらいました - Cybozu Inside Out | サイボウズエンジニアのブログ
  • 最速の du を作ってみる - Cybozu Inside Out | サイボウズエンジニアのブログ

    個人ブログはどれもこれも三日坊主な山泰宇です。 チームブログはいいですね、誰かが日々記事を書いてくれるので、暇を見つけて自分も書こうという気になれます。 さて、今回はネタ記事です。タイトルからしてネタですよね。du というのはあるディレクトリ以下のディスク使用量を計算するプログラムなんですが、ディスクアクセスで律速される du に最速もくそもあるか!と。 それはわかってるんですが、「du 速くできない?」と言われたときに、ふと以下のようなことを考えてしまったんです。 Linux では readdir はライブラリコールなので、getdents 使うと少しいいかも i-node 番号から直接ファイルサイズを求められれば、stat より速いかも i-node 番号を直接指定できるシステムコールはないのですが、ext2/3/4 ファイルシステムなら debugfs コマンドでできるということが

    最速の du を作ってみる - Cybozu Inside Out | サイボウズエンジニアのブログ
    u_wot_m8
    u_wot_m8 2016/06/13
  • x86/x64最適化勉強会7 レポート - Cybozu Inside Out | サイボウズエンジニアのブログ

    サイボウズ・ラボの光成です。 今回は3月15日に開催された「x86/x64最適化勉強会7」の模様についてお伝えします。前回から約1年半振りと久しぶりの開催です。 今回の発表内容は浮動小数点数周りの話が2件、CSSパーサ周りの話が1件、暗号関係の話が3件でした。 以下、それぞれの発表内容について簡単に解説します。 浮動小数点数関係 @ksmakotoさんの発表は「非正規化数のFZ(FTZ)とDAZの違い」(動画1)でした。 浮動小数点数には正しい精度で扱える最小の正の数DBL_MIN(約2.225074e-308)があります。 0とDBL_MINの間の数は精度は落ちるけれども扱うことはでき、非正規化数と呼ばれます。 非正規化数を扱うのはなかなか難しく、ハードウェアやソフトウェアによってはサポートしていなかったり、していてもとても遅かったりすることがあります。そのため非正規化数を0と見なすこと

    x86/x64最適化勉強会7 レポート - Cybozu Inside Out | サイボウズエンジニアのブログ
    u_wot_m8
    u_wot_m8 2015/03/18
  • 1