kivantium活動日記

プログラムを使っていろいろやります

Ubuntu 16.04でADS-1500Wを使う

増え続ける紙資料を電子化して保管するためにスキャナーを買いました。購入時には大きさと価格を考慮して以下の3つを検討しましたが、無線LAN機能がついていることとLinux用ドライバーが公式で配布されていることを理由にADS-1500Wを買いました。 BROTHER ド…

画像処理で大腸菌のコロニー数を数えたかった話 その2

kivantium.hateblo.jp の続編です。前回は先行研究を一切調べずに適当にやったので今回は少し先行研究調査をして前回よりはまともな方法を実装したいと思います。 先行研究 Google検索したところ 細胞画像の分析を専門にするグループがカーネギーメロン大学…

RNNによるツイートの自動生成

授業で「Deep Learningを使って何か作る」という課題を与えられました。チーム開発なのですが、知らないうちにテーマがツイートの自動生成に決まっていたので実装をやりました。発表内容は以下のスライドを見てください。RNNによるツイートの自動生成 / kiva…

AWSのGPUで機械学習した話(Torch編)

TL; DR AWSは初期状態でGPUインスタンスを立てられない設定になっていることがあるから気をつけましょう 学校で「ディープラーニングを使って何かを作れ」という課題が出たのでGenerative Adversarial Text-to-Image Synthesisを動かそうと思ったのですが、…

2016年に読んだ本

2016年最後の日なので今年読んだ本を振り返ってみたいと思います。 まんがタイムKRコミックス 今年もたくさんのきららコミックスを読みました。 NEW GAME! NEW GAME! (4) (まんがタイムKRコミックス)作者: 得能正太郎出版社/メーカー: 芳文社発売日: 2016/07…

アセンブリ言語 その2

この記事はkivantium Advent Calendarの19日目です。前回は最初のCPUの設計に使う命令セットを紹介しました。 今回はこの命令を使っていろいろなプログラムを書いてみます。 SPIM ここではMIPSのシミュレータとして有名なSPIM (MIPSを逆から読んだ名前) を使…

アセンブリ言語 その1

この記事はkivantium Advent Calendarの18日目です。 CPUを設計する際に重要な要素の一つが命令セットアーキテクチャ (ISA) です。 これから設計する簡単なCPUのISAとして、分かりやすく参考文献も多いMIPSを採用することにしました。 MIPS ISA の詳細は htt…

いろいろなCPU

この記事はkivantium Advent Calendarの17日目の記事です。昨日まででCPUを作る部品の解説は一通り終わったのでついにCPUの作成に入る準備ができました。 実際に作成に入る前に過去の偉人に学ぶべく独断と偏見で選んだ歴史上のCPUたちを一言ずつ紹介していき…

浮動小数点数の除算

この記事はkivantium Advent Calendarの16日目です。昨日は浮動小数点数の加減算を扱いました。 今日は演算器シリーズの最終回として浮動小数点数の除算を取り上げます。 基本原理 浮動小数点数の演算を行うには符号部・指数部・仮数部を決める必要がありま…

浮動小数点数の加減算

この記事はkivantium Advent Calendarの15日目です。このページは移動しました。https://kivantium.net/cpu-faddを見てください。

バレルシフタ

この記事はkivantium Advent Calendarの14日目です。昨日は浮動小数点数の乗算をやりました。 今日は浮動小数点数の加減算をするのに必要な部品であるバレルシフタを紹介します。 シフトの使い道 シフト演算は高速なのでビット演算テクニックとしてよく使わ…

きんモザ・ごちうさ聖地巡礼記

この記事はまんがタイムきらら Advent Calendar 2016、きんいろモザイク Advent Calendar 2016、ごちうさ Advent Calendar 2016の14日目です。(さすがに欲張りすぎた)9月にきんいろモザイクの聖地であるイギリスと、ご注文はうさぎですか?の聖地とされる…

浮動小数点数の乗算

この記事はkivantium Advent Calendarの13日目です。昨日は浮動小数点数のフォーマットについて説明しました。 今日は浮動小数点数の乗算をやります。 仕組み 浮動小数点数は仮数と指数で表されるので 指数の和を取る 仮数の積を取る 仮数を丸めてフォーマッ…

浮動小数点数

この記事はkivantium Advent Calendarの12日目です。昨日までで整数の四則演算のやり方を紹介しました。 今日からは浮動小数点数の使い方を紹介します。 IEEE-754 浮動小数点数の表し方はコンピュータの歴史の中で何種類かありましたが、現在主流となってい…

除算器 その2

この記事はkivantium Advent Calendarの11日目です。昨日は回復法を用いた除算器の設計を説明しました。回復法は符号付き整数を扱えないという欠点がありました。今日はこれを克服する非回復法を説明します。 非回復法(引き放し法) 回復法では引き算の結果…

除算器 その1

この記事はkivantium Advent Calendarの10日目です昨日までで四則演算のうち3つが揃ったので今日からは最難関の割り算をやります 回復法(引き戻し法) 話を簡単にするため、まずは符号なし整数の割り算を考えます。 割り算の場合も基本の考え方は筆算です。…

乗算器 その3

この記事はkivantium Advent Calendarの9日目です。昨日はWallaceツリーを用いた乗算器の構成を紹介しました。 昨日までの方法ではbit数と同じ数の部分積の和を取る必要がありましたが、今日は部分積を減らすことで高速化を目指す方法を紹介します。 Radix-4…

乗算器 その2

この記事はkivantium Advent Calendarの8日目です。昨日は符号なし整数掛け算の実現方法として単純な2つの回路を考えてそれらが実用的でないことを確認し、また、符号付き整数の掛け算を行う方法としてBaugh-Wooleyアルゴリズムを紹介しました。 今日は乗算…

乗算器 その1

この記事はkivantium Advent Calendarの7日目です。昨日は乗算器の準備のために順序回路の構成要素であるラッチとフリップフロップについて簡単に触れ、シフトレジスタを導入しました。今日は掛け算を行う回路を作っていこうと思います。 単純な符号なし乗算…

ラッチとフリップフロップ

この記事はkivantium Advent Calendarの6日目です。昨日までは入力だけで出力が確定する組み合わせ回路を扱っていました。 しかし、掛け算のような複雑な演算を効率的に行うには前の計算結果を保存しておいて、何度か繰り返し計算を行うような処理が必要にな…

減算器

この記事はkivantium Advent Calendarの5日目です。昨日までで足し算ができるようになったので今度は引き算を考えます。 引き算はという関係から負の数の足し算として考えれば加算器をそのまま流用することができそうです。 しかし、2進数での負の数をどう定…

加算器 その2

この記事はkivantium Advent Calendarの4日目です。昨日は半加算器・全加算器・リップルキャリーアダーを紹介しました。 リップルキャリーアダーはゲートがたくさん直列に並んでいるため遅いです。 そこで今回は高速な加算器を実装する話です。 キャリールッ…

加算器 その1

この記事はkivantium Advent Calendarの3日目です。昨日はNANDゲートから任意のゲートを作れることを確認しました。 ここからは何回かに分けて四則演算などの基本的な計算を行う回路の実現方法を書いていきます。四則演算は組み合わせ回路として書けるので、…

NANDがあればなんでもできる その2

この記事はkivantium Advent Calendarの2日目です。昨日はトランジスタを使ってNANDゲートを作る方法を解説しました。 今日はNANDゲートを使っていろんなゲートを作っていきます。 基本的なゲート ゲートにはNANDゲートの他にも何種類もあります。よく使う有…

NANDがあればなんでもできる その1

この記事はkivantium Advent Calendarの1日目です。 このAdvent Calendarについて トランプ大統領の誕生により、核戦争で文明が崩壊するリスクが高まっています(脳内設定)。また、巷では空前の異世界転生ブームが巻き起こっているため、いつ異世界に飛ばさ…

はてなブログでKaTeXを使う

はてな記法には数式を表示するためのtex記法が用意されています。 はてなブログでの数式表示はGoogle Charts APIを使っているようでそこそこ遅いです。 はてなブログの数式レンダリングが遅いとTwitterに嘆いていたところ、KaTeXという高速な数式レンダリン…

帰無仮説のもとでp値の分布が一様分布になることの証明

帰無仮説のもとでp値の分布が一様分布になるらしいのですが、納得できるちゃんとした証明が検索しても出てこなかったので書いておきます。p値とは何かとか、帰無仮説とは何かみたいな解説は省略します。 証明 を観測値の帰無仮説の分布、をの累積分布関数 を…

PythonからGNU Socialを使う

先日Twitterに障害が発生した際に「Twitterが落ちてつぶやけない」というつぶやきができなくて非常に苦しい思いをしました。 また、Twitter社の収益が怪しく買収交渉も失敗したという噂も流れています。 なんにせよTwitterがなくてもつぶやきを続行できる代…

Travis CIによるC言語プログラムの自動テスト

自動テストはエンジニアの必須スキル!という話を最近よく聞くのですが、テストをやったことがなかったのでTravis CIで試してみました。 Travis CIとは Travis CIは自動テスト実行サービスで、GitHubと連携してpushした際に自動でテストを行ってくれるところ…

SystemVerilog文法メモ

前回の記事でSystemVerilogをちょこっと書いたので、今度はSystemVerilogの文法について細かく勉強しようと思います。 あくまで自分が勉強するためのメモなので、お気づきの点があったら指摘してもらえると助かります。 理解したところから記述を足していく…

特定商取引法に定められた事項は請求により遅滞なく提供する