自分語りすみません。自己紹介ついでです 自己紹介 学生の頃ふと図書館においてあった古いゲーム雑誌に 「ゲーム業界では服装も髪も自由だ。黒髪でリクルートスーツ着ている人より、金髪でラフな服装をしている人のほうが きっとエンタテイメントな人生をおくってるに違いない。ゲーム業界では独創的な人は大歓迎だ」 といったリクルート記事をみて 一瞬でゲームプログラマに決めました 学生時代は勉強は出来たけど、集団生活や 授業を聞くことが出来ず常に授業中走り回ってました 大学も3ヶ月で教師と喧嘩して辞めて 東京に出て フリーでビジネスプログラミングをしました 高校時代に ゲームを逆アセンブルして、グラフィックローダや音楽ドライバ等を高速化して 会社に送りつけたりしてたので、すんなり仕事はできました そこからは お金がほしい時はビジネスプログラム、夢がほしい時はゲームプログラムと 業界を行ったり来たりし、ソーシ
概要 並列化が容易なため、GPGPU等で有用であるバイトニックソートを実装する。 Wikipediaでの説明(英語) ナイーブな実装 前提条件 前回と同様にRustのバージョンは1.19.0とします。 fn sort<T: PartialOrd>(&self, source: &mut [T]) { let source_size = source.len(); let size = source_size.next_power_of_two(); if source_size != size { return; } let half_size = size >> 1; let mut i = 2; while i <= size { let mut j = i >> 1; while j > 0 { let ml = j - 1; // 下位ビットマスク let mh = !ml; //
HotSpot JavaVM のベクトル化変換 最近の HotSpot JavaVM はスカラー演算の繰り返し処理をベクトル化し SIMD 命令に変換する最適化を行っています (SIMD とは何ぞやという話は後半参照)。実際に最適化が効くコードで試してみたところ 1.5~2.8 倍程度の速度向上が見られたので、大量の演算処理を行う (GPGPU に頼らない) Java ライブラリでうまく使うことが出来れば有効な最適化手段になるかもしれません。 HotSpot の SIMD 最適化は Superword-Level Parallelism (SLP) に基づいています (以降この最適化は SLP と呼びます)。元々この論文は時代を反映して SIMD 未対応の画像・音声処理をコンパイラやランタイムのレイヤーで SIMD を利用する命令に変換することを目的としていましたが、これは SIMD 命令
時によってプログラマは文字列から不要な文字を取り除きたい場合があります。例えば、テキストの一部からすべての行の末尾文字を削除したいとします。 その時、全スペース(‘ ‘)や改行コード(‘\n’および‘\r’)を削除する問題を考えてみましょう。 効率的に実行するにはどのような方法がいいのでしょうか。 size_t despace(char * bytes, size_t howmany) { size_t pos = 0; for(size_t i = 0; i < howmany; i++) { char c = bytes[i]; if (c == '\r' || c == '\n' || c == ' ') { continue; } bytes[pos++] = c; } return pos; } 上記のコードはUTF-8でエンコードされた文字列で動作します。UTF-8がASCII
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く