Unity 勉強メモ

ゲームエンジンのUnityを勉強するブログです。

WindowsでVisual Studio 2013を使ってGLFW+GLEWプログラムを作る手順

プロジェクトの作成 Visual Studio 2013を起動して、新しいプロジェクトを作成します。 テンプレートからVisual C++の「Win32 コンソール アプリケーション」を選びます。 アプリケーションの設定で「コンソールアプリケーション」を選んで 「空のプロジェク…

http://opengl-tutorial.org をやってみた (その13)

opengl-tutorial.org というサイトを参考にOpenGLを勉強しています。 はちゅねミクの表示 プログラム 頂点シェーダ フラグメントシェーダ コンパイル&実行 $ g++ `pkg-config --cflags glfw3 glew` -o prog13 prog13.cpp `pkg-config --static --libs glfw3…

http://opengl-tutorial.org をやってみた (その12)

opengl-tutorial.org というサイトを参考にOpenGLを勉強しています。 シェーディング プログラム 頂点シェーダ フラグメントシェーダ コンパイル&実行 $ g++ `pkg-config --cflags glfw3 glew` -o prog12 prog12.cpp `pkg-config --static --libs glfw3 gle…

http://opengl-tutorial.org をやってみた (その11)

opengl-tutorial.org というサイトを参考にOpenGLを勉強しています。 OBJファイルの読み込み プログラム 頂点シェーダ フラグメントシェーダ コンパイル&実行 $ g++ `pkg-config --cflags glfw3 glew` -o prog11 prog11.cpp `pkg-config --static --libs gl…

http://opengl-tutorial.org をやってみた (その10)

opengl-tutorial.org というサイトを参考にOpenGLを勉強しています。 マウスとキーボード入力 プログラム 頂点シェーダ フラグメントシェーダ コンパイル&実行 $ g++ `pkg-config --cflags glfw3 glew` -o prog10 prog10.cpp `pkg-config --static --libs g…

http://opengl-tutorial.org をやってみた (その9)

opengl-tutorial.org というサイトを参考にOpenGLを勉強しています。 BMPの読み込みとテクスチャマッピング プログラム 頂点シェーダ フラグメントシェーダ コンパイル&実行 $ g++ `pkg-config --cflags glfw3 glew` -o prog09 prog09.cpp `pkg-config --st…

http://opengl-tutorial.org をやってみた (その8)

opengl-tutorial.org というサイトを参考にOpenGLを勉強しています。 立方体を2個描画 プログラム 頂点シェーダ フラグメントシェーダ コンパイル&実行 $ g++ `pkg-config --cflags glfw3 glew` -o prog08 prog08.cpp `pkg-config --static --libs glfw3 gl…

http://opengl-tutorial.org をやってみた (その7)

opengl-tutorial.org というサイトを参考にOpenGLを勉強しています。 立方体の描画 プログラム 頂点シェーダ フラグメントシェーダ コンパイル&実行 $ g++ `pkg-config --cflags glfw3 glew` -o prog07 prog07.cpp `pkg-config --static --libs glfw3 glew`…

http://opengl-tutorial.org をやってみた (その6)

opengl-tutorial.org というサイトを参考にOpenGLを勉強しています。 平行投影 プログラム 頂点シェーダ フラグメントシェーダ コンパイル&実行 $ g++ `pkg-config --cflags glfw3 glew` -o prog06 prog06.cpp `pkg-config --static --libs glfw3 glew` $ .…

http://opengl-tutorial.org をやってみた (その5)

opengl-tutorial.org というサイトを参考にOpenGLを勉強しています。 透視投影 プログラム 頂点シェーダ フラグメントシェーダ コンパイル&実行 $ g++ `pkg-config --cflags glfw3 glew` -o prog05 prog05.cpp `pkg-config --static --libs glfw3 glew` $ .…

http://opengl-tutorial.org をやってみた (その4)

opengl-tutorial.org というサイトを参考にOpenGLを勉強しています。 三角形に色を付ける まず以下のプログラムを用意する。 頂点シェーダのコードを作る。 フラグメントシェーダのコードを作る。 以下のコマンドでコンパイル&実行できる。 $ g++ `pkg-conf…

opengl-tutorial.org をやってみた (その3)

opengl-tutorial.org というサイトを参考にOpenGLを勉強しています。 三角形を表示する。 以下でコンパイル&実行できる。 (今回からGLEWが追加されている。) $ g++ `pkg-config --cflags glfw3 glew` -o prog03 prog03.cpp `pkg-config --static --libs glf…

opengl-tutorial.org をやってみた (その2)

opengl-tutorial.org というサイトを参考にOpenGLを勉強しています。 背景に色をつける 以下でコンパイル&実行できる。 $ g++ `pkg-config --cflags glfw3` -o prog02 prog02.cpp `pkg-config --static --libs glfw3` $ ./prog02 以下が表示された。

opengl-tutorial.org をやってみた (その1)

はじめに 今時のリッチでインタラクティブなコンテンツを作るためには、 OpenGLは避けては通れない気がしてきたので、OpenGLを勉強することにした。 どの本やサイトで勉強するのが良いのかよくわからなかったので、 とりあえずググって一番上に来た opengl-t…

Elmを使ってみた時のメモ (その2)

Elm

ウインドウ内をボールが飛び跳ねるプログラム (改良版) import Graphics.Element(..) import Graphics.Collage(..) import Color(..) import Signal(..) import Time(..) import Window(..) type alias State = { x : Float, y : Float, vx : Float, vy : Fl…

Elmを使ってみた時のメモ (その1)

Elm

Elmとは 公式サイト Functional Reaticve 言語 インタラクティブなアプリケーションのための言語 HTML + CSS + JavaScript にコンパイルされる オンラインで簡単に試すことができる とりあえず使ってみた Hello, World. Elmはサンプルプログラムが非常に充実…

C言語でオレオレ行列積ルーチンを作るプロジェクト (その11)

オレオレ行列積。まだ諦めていませんよ。 プログラム プログラム全体は以下のGitHubリポジトリにあります。 今回利用するプログラムは、 main.cとmy_dgemm11.cです。 lambdataro/mydgemm コンパイル $ gcc -static -fopenmp -mavx -O3 main.c my_dgemm11.c -…

C言語でオレオレ行列積ルーチンを作るプロジェクト (その10)

オレオレ行列積ルーチンが微妙に速くなった。 プログラム プログラム全体は以下のGitHubリポジトリにあります。 今回利用するプログラムは、 main.cとmy_dgemm10.cです。 lambdataro/mydgemm コンパイル $ gcc -static -fopenmp -mavx -O3 main.c my_dgemm10…

C言語でオレオレ行列積ルーチンを作るプロジェクト (その9)

オレオレ行列積ルーチンがまた少しだけ速くなった。 プログラム プログラム全体は以下のGitHubリポジトリにあります。 今回利用するプログラムは、 main.cとmy_dgemm09.cです。 lambdataro/mydgemm コンパイル $ gcc -static -fopenmp -mavx -O3 main.c my_d…

C言語でオレオレ行列積ルーチンを作るプロジェクト (その8)

オレオレ行列積ルーチンがまた少しだけ速くなった。 プログラム プログラム全体は以下のGitHubリポジトリにあります。 今回利用するプログラムは、 main.cとmy_dgemm08.cです。 lambdataro/mydgemm コンパイル $ gcc -static -fopenmp -mavx -O3 main.c my_d…

C言語でオレオレ行列積ルーチンを作るプロジェクト (その7)

色々試行錯誤した結果、大分速くなった。 OpenMPの使い方も大分わかってきた。 前のプログラムが動かなかったのはprivate節を指定していなかったからだった。 プログラム プログラム全体は以下のGitHubリポジトリにあります。 今回利用するプログラムは、 ma…

行列積の計算を理想的な環境で測定し直してみた

ディスクトップ環境を入れていない理想的なlinux環境を用意したので、 そこで行列積ルーチンの速度を測定して見ました。 実験環境 CPU: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz メモリ: 16GB OS: Debian 7.8 64bit 最小インストール状態から必要なソフトウ…

行列積の計算をCPU-Throttlingを無効にして測定し直してみた

行列積の実行結果が時々極端に速くなったり遅くなったりする現象に遭遇した。 ATLASのインストール時にCPU-Throttlingを無効にするという操作をしたのを 覚えていたので、これまで作ったルーチンをCPU-Throttlingを無効にして 測定しなおしてみた。 それぞれ…

C言語でオレオレ行列積ルーチンを作るプロジェクト (その6)

今回はOpenMPを使って並列化してみました。 プログラム プログラム全体は以下のGitHubリポジトリにあります。 今回利用するプログラムは、 main.cとmy_dgemm05.cです。 lambdataro/mydgemm コンパイル 今回はiccを用いた。 $ icc -static -openmp -mavx -O3 …

C言語でオレオレ行列積ルーチンを作るプロジェクト (その5)

今回はSIMD演算を使って見ました。 プログラム プログラム全体は以下のGitHubリポジトリにあります。 今回利用するプログラムは、 main.cとmy_dgemm04.cです。 lambdataro/mydgemm コンパイル $ clang -static -mavx -O3 main.c my_dgemm05.c -I/opt/OpenBLA…

C言語でオレオレ行列積ルーチンを作るプロジェクト (その4)

行列積のプログラムを色々いじっていたら速くなったのでブログに載せます。 プログラム プログラム全体は以下のGitHubリポジトリにあります。 今回利用するプログラムは、 main.cとmy_dgemm04.cです。 lambdataro/mydgemm コンパイル $ clang -static -O3 ma…

C言語でオレオレ行列積ルーチンを作るプロジェクト (その3)

今回はブロック化を適用してみました。 プログラム BNがブロックサイズです。ブロック化を適用するとこで、 行列がキャッシュに乗りやすくなります。 問題はこのブロックサイズをいくつに定めるかですが、 とりあえず20から1000まで10刻みで試してみて折れ線…

C言語でオレオレ行列積ルーチンを作るプロジェクト (その2)

今回から前回の単純な行列積プログラムを最適化していきます。 今回適用する最適化はループの交換です。 プログラム 前回のプログラムでは、ループの順番がi-j-lの順番でしたが、 今回はi-l-jの順番になっています。 こうすることで、行列Cと行列Bへのメモリ…

C言語でオレオレ行列積ルーチンを作るプロジェクト (その1)

行列積の計算に興味をもったので、 自分でも行列積を計算するプログラムを自作してみようと思います。 最初に何の工夫もない行列積プログラムを作って、 それを順次最適化していく事で、自力でどこまで高速なルーチンを 実現できるか挑戦していきたいと思い…

LinuxでIntel MKLを使って行列積の計算をしてみた

インテル Parallel Studio XE 2015 Composer Edition for Fortran & C++ の 30日間の体験版を申し込んだので、Intel MKLを使って行列積の計算をしてみた。 プログラム プログラムは前回の記事「LinuxでOpenBLASとATLASを使って行列積の計算をしてみた - Unit…