# HG changeset patch # User masa # Date 1407226823 -32400 # Node ID 1308906213abf14176b24a3353c62b95f0be218b add files diff -r 000000000000 -r 1308906213ab April_01st.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/April_01st.html Tue Aug 05 17:20:23 2014 +0900 @@ -0,0 +1,173 @@ + + +
+ ++ We have developed Cerium that is a parallel programing Framework. + In preceding research, procceing speed improved by concurrency of tasks. + But, Tasks and I/O proccecing +
+ +
+ firefly 上で実行
+ 2*2.66 GHz, HHD 1TB, memory 16GB
+ file size : 1GB
+ cpu num : 12
+
mode | time(s) |
cpu & mmap | 22.98 |
cpu & blocked read | 13.14 |
gpu & mmap | 101.40 |
gpu & blocked read | 90.63 |
希望者全員の分の名刺の作成と注文を行った。
+到着予定日は 新B4、新M1 は4/3 頃、新M2 は4/6頃に到着予定。
++ 当研究室ではマルチコアの性能を充分に引き出すために、 Cerium Library の開発を行い、提供することによって並列プログラミングを容易にしている。 +
++ 先行研究ではファイル読み込みを mmap で実装していたが、mmap した領域に対して何らかの処理が行われたときに初めてファイルが読み込まれる。 +
++ 本研究ではファイル読み込みと、処理の分離化の設計、実装によってプログラム全体の処理速度、処理効率を上げていく。 +
+
+ firefly 上で実行
+ 2*2.66 GHz, HHD 1TB, memory 16GB
+ file size : 1GB
+ cpu num : 12
+
mode | time(s) |
cpu & mmap | 22.98 |
cpu & blocked read | 13.14 |
gpu & mmap | 101.40 |
gpu & blocked read | 90.63 |
希望者全員の分の名刺の作成と注文を行った
+希望者全員には配布済み
+
+ 当研究室では、Task 単位で記述する並列プログラミングフレームワーク、Cerium の開発を行っている。
+ 先行研究による Task の並列化によって、プログラム全体の処理速度は飛躍的に向上した。
+ ファイルの読み込み等の I/O を含むプログラムは、読み込み時間が Task の処理時間と比較して非常に重くなる場合が多い。
+ マルチコアでの並列処理を行ったとしても、I/O の動作を軽量にしなければ、I/O を含めたプログラムの処理は軽量にならない。
+ そして従来の mmap では、I/O と読み込んだファイルに対する処理をプログラム作成者が自由に記述することができない。
+ そこで本研究では、並列処理時におけるファイル読み込みをどのように実装すれば軽量に動作するかを考慮し、なおかつ読み込みとそれらに対する処理をプログラム作成者が自由に書けるように設計・実装を行う。
+
+ コンピュータ上で作曲を行うときは、ハードウェアシンセサイザーの音を録音するのではなく、ソフトウェアシンセサイザー(以下ソフトシンセ)で収録することが主流となっている。 +
+
+ ソフトシンセのマルチコア化は進んでいる。作曲をする上ではソフトシンセを複数立ち上げることが基本となっている。
+ また、オシレーターの複数使用や Filter による波形編集を重ねると計算量が大きくなっていくため、ソフトシンセ単体の動作を軽量化する必要がある。
+
+ また、実用的なシンセサイザーは入力に対するレスポンスが必須となるので、計算量が多くなっても入力から出力までの遅延を抑える必要がある。 +
+
+ (軽量化しながら音を良くしたいが、抽象的すぎて評価する点がみつけづらい)
+ 音がいいって何??
+ 評価どうするの??
+
+
+typedef struct SDL_AudioSpec {
+ int freq; /** DSP frequency -- samples per second */
+ Uint16 format; /** Audio data format */
+ Uint8 channels; /** Number of channels: 1 mono, 2 stereo */
+ Uint8 silence; /** Audio buffer silence value (calculated) */
+ Uint16 samples; /** Audio buffer size in samples (power of 2) */
+ Uint16 padding; /** Necessary for some compile environments */
+ Uint32 size; /** Audio buffer size in bytes (calculated) */
+ void (SDLCALL *callback)(void *userdata, Uint8 *stream, int len);
+ void *userdata;
+} SDL_AudioSpec;
+
+
+
+
+
+SDL_AudioSpec Desired;
+SDL_AudioSpec Obtained;
+
+int main(int argc, char *argv[])
+{
+ printf("Freq:%f\n",Frequency);
+ Desired.freq= 44100; /* Sampling rate: 44100Hz */
+ Desired.format= AUDIO_S16LSB; /* 16-bit signed audio */
+ Desired.channels= 1; /* Mono */
+ Desired.samples= 8192; /* Buffer size: 8K = 0.37 sec. */
+ Desired.callback= callback;
+ Desired.userdata= NULL;
+
+ SDL_OpenAudio(&Desired, &Obtained);
+ SDL_PauseAudio(0);
+ SDL_Delay(200);
+ SDL_Quit();
+ return 0;
+}
+
+
+
+
+
+void callback(void *userdata,Uint8 *stream,int len){
+
+ AudioDataPtr au = (AudioData*)userdata;
+
+ char *waveform_name = au->waveform_name;
+ double frequency = au->frequency;
+ int volume = au->volume;
+ static unsigned int step = 0;
+ Uint16 *frames = (Uint16 *) stream;
+ int framesize = len / 2;
+
+ if(strcmp(waveform_name, "tri")){
+
+ for (int i = 0; i < framesize ; i++, step++){
+ frames[i] = tri(step * frequency / Obtained.freq) * volume ;
+ }
+
+ }else if(strcmp(waveform_name, "sqr")){
+
+ for (int i = 0; i < framesize ; i++, step++){
+ frames[i] = square(step * frequency / Obtained.freq) * volume ;
+ }
+
+ }
+}
+
+
+
+ メンバー
+ ++ IGDA (国際ゲーム開発者協会)は、ゲーム開発者の国際NPOである。 +
++ 全世界で122の支部 ( Chapter ) と、12の学生支部 (Academic Chapter) が存在する。 +
++ IGDA 琉球大学は、様々なゲーム制作イベントを通して、沖縄の社会人クリエイターと学生クリエイターが交流できる場を提供できるように務める。 +
++ 様々な異業種間の交流により、様々な分野に興味を引き出せたらと思います。 +
++ また、琉球大学だけでなく、沖縄国際大学、県立芸大や専門学校など沖縄の学校と連携をとり、学生クリエイターの交流を図り、ゲーム製作に必要な知識や情報を共有していきたい。 +
+ ++ 2014/08/02 (Sat) - 08/03 (Sun) +
++ 1-321 50名規模(予定) +
++ 学生だけのプレゲームジャムをしたところ、社会人などのプログラム経験者がいないときついつらい。(社会人がほしい) +
++ Unity Japan の 鎌田 泰行 さんに確認をしたところ、「呼ばれたらいつでもいくよ」とのこと。 +
++ 講演料や滞在費などの話も聞いたところ、無料でしてくれるらしい。(Unity Japan が費用を出すとのこと) +
++ 沖縄国際大学 産業情報学科 安里ゼミの学生とも交流。 そのゼミでは12人中6人が Unity を触っているらしい。( Unity でアプリ製作の卒論テーマらしい ) +
+ ++ コンピュータ上でシンセサイザーを使用するときは、ハードウェアシンセサイザーの音を録音するのではなく、ソフトウェアシンセサイザー(以下ソフトシンセ)で収録することが主流となっている。 +
++ ソフトシンセのマルチコア化は進んでいる。作曲をする上ではソフトシンセを複数立ち上げることが基本となっているので、ソフトシンセ単体の動作軽量が必要となる。 +
+
+ (音を良くしたいが、抽象的すぎて評価する点がみつけづらい)
+ 音がいいって何??
+ 評価どうするの??
+
+ 琉球大学工学部情報工学科卒業 +
++ 琉球大学大学院 理工学研究科 情報工学専攻 1年次(M1) +
++ 並列信頼研(河野研)所属 +
++ IGDA琉球大学(最近設立した) +
++ 古波倉 正隆 +
++ twitter : @masamasa_massa +
++ Title : Cerium による並列処理向け I/O の実装 +
++ Cerium : 当研究室が開発している並列プログラミングフレームワーク +
++ 世の中の PC のほとんどはマルチコアである。そのマルチコアを最大限に活かすためには、かなりの苦労が強いられるが、それらを簡単に実装できるのが Cerium。 +
++ 並列計算を行うときの処理時間は、I/Oの時間がほとんどである。 +
++ malloc -> read , mmap , blocked read +
++ 並列計算を行うときの最適な読み込み方法は何か +
++ IGDA : International Game Developers Association (国際ゲーム開発者協会)は、ゲーム開発者の国際NPOである。 +
++ 全世界で122の支部 ( Chapter ) と、12の学生支部 (Academic Chapter) が存在する。 +
+
+ 2年半前から沖縄でも開催されはじめた GameJam
+ ->基本的には IGDA が開催することが多い
+
+ アジア初の学生支部! +
++ IGDA 琉球大学は、様々なゲーム制作イベントを通して、沖縄の社会人クリエイターと学生クリエイターが交流できる場を提供できるように務める。 +
++ 様々な異業種間の交流により、様々な分野に興味を引き出せたらと思います。 +
++ また、琉球大学だけでなく、沖縄国際大学、県立芸大や専門学校など沖縄の学校と連携をとり、学生クリエイターの交流を図り、ゲーム製作に必要な知識や情報を共有していきたい。 +
+ ++ 2日間(30時間前後)でゲームを作るイベント +
++ 沖縄では5,6回ほど開催されている。 +
++ 私自身はサウンド担当としてほぼ参加。 +
++ 学生だけのプレゲームジャムをしたところ、社会人などのプログラム経験者がいないときついつらい。(社会人がほしい) +
++ 沖縄では Unity を使用することは多い。 +
+ ++ 2014/08/02 (Sat) 09:00 - 08/03 (Sun) 17:00 +
++ 琉球大学工学部1号館321教室 50名規模(予定) +
++ Summer Time Studioさん、株式会社ブリブサーさん、Unity Japan さんに協力依頼。 +
++ これからアプリカラボさんや、琉球GONZOさんの社員の方々にも告知する予定。 +
+ +
+ ie-GameLab
+ 琉大祭に向けて、B1(20名),B2(10名),B3(14名)各学年がゲームを作ろうという流れができてる。
+
+ 情報工だからプログラムしないといけないというわけではなく、他の才能を引き出すような形。 +
++ Unity 勉強会も行われている。作曲講座もする予定。 +
++ ニコニコゲームフェスタなどのコンテストにも出したいよね!! +
++ コンピュータ上で作曲を行うときは、ハードウェアシンセサイザーの音を録音するのではなく、ソフトウェアシンセサイザー(以下ソフトシンセ)で収録することが主流となっている。 +
+
+ ソフトシンセのマルチコア化は進んでいる。作曲をする上ではソフトシンセを複数立ち上げることが基本となっている。
+ また、オシレーターの複数使用や Filter による波形編集を重ねると計算量が大きくなっていくため、ソフトシンセ単体の動作を軽量化する必要がある。
+
+ また、実用的なシンセサイザーは入力に対するレスポンスが必須となるので、計算量が多くなっても入力遅延を抑える必要がある。 +
+
+ (軽量化しながら音を良くしたいが、抽象的すぎて評価する点がみつけづらい)
+ 音がいいって何??
+ 評価どうするの??
+
+
+typedef struct SDL_AudioSpec {
+ int freq; /** DSP frequency -- samples per second */
+ Uint16 format; /** Audio data format */
+ Uint8 channels; /** Number of channels: 1 mono, 2 stereo */
+ Uint8 silence; /** Audio buffer silence value (calculated) */
+ Uint16 samples; /** Audio buffer size in samples (power of 2) */
+ Uint16 padding; /** Necessary for some compile environments */
+ Uint32 size; /** Audio buffer size in bytes (calculated) */
+ void (SDLCALL *callback)(void *userdata, Uint8 *stream, int len);
+ void *userdata;
+} SDL_AudioSpec;
+
+
+
+
+
+SDL_AudioSpec Desired;
+SDL_AudioSpec Obtained;
+
+int main(int argc, char *argv[])
+{
+ printf("Freq:%f\n",Frequency);
+ Desired.freq= 44100; /* Sampling rate: 44100Hz */
+ Desired.format= AUDIO_S16LSB; /* 16-bit signed audio */
+ Desired.channels= 1; /* Mono */
+ Desired.samples= 8192; /* Buffer size: 8K = 0.37 sec. */
+ Desired.callback= callback;
+ Desired.userdata= NULL;
+
+ SDL_OpenAudio(&Desired, &Obtained);
+ SDL_PauseAudio(0);
+ SDL_Delay(200);
+ SDL_Quit();
+ return 0;
+}
+
+
+
+ + コンピュータ上で作曲を行うときは、ハードウェアシンセサイザーの音を録音するのではなく、ソフトウェアシンセサイザー(以下ソフトシンセ)で収録することが主流となっている。 +
+
+ ソフトシンセのマルチコア化は進んでいる。作曲をする上ではソフトシンセを複数立ち上げることが基本となっている。
+ また、オシレーターの複数使用や Filter による波形編集を重ねると計算量が大きくなっていくため、ソフトシンセ単体の動作を軽量化する必要がある。
+
+ また、実用的なシンセサイザーは入力に対するレスポンスが必須となるので、計算量が多くなっても入力から出力までの遅延を抑える必要がある。 +
+
+ (軽量化しながら音を良くしたいが、抽象的すぎて評価する点がみつけづらい)
+ 音がいいって何??
+ 評価どうするの??
+
+
+typedef struct SDL_AudioSpec {
+ int freq; /** DSP frequency -- samples per second */
+ Uint16 format; /** Audio data format */
+ Uint8 channels; /** Number of channels: 1 mono, 2 stereo */
+ Uint8 silence; /** Audio buffer silence value (calculated) */
+ Uint16 samples; /** Audio buffer size in samples (power of 2) */
+ Uint16 padding; /** Necessary for some compile environments */
+ Uint32 size; /** Audio buffer size in bytes (calculated) */
+ void (SDLCALL *callback)(void *userdata, Uint8 *stream, int len);
+ void *userdata;
+} SDL_AudioSpec;
+
+
+
+
+
+SDL_AudioSpec Desired;
+SDL_AudioSpec Obtained;
+
+int main(int argc, char *argv[])
+{
+ printf("Freq:%f\n",Frequency);
+ Desired.freq= 44100; /* Sampling rate: 44100Hz */
+ Desired.format= AUDIO_S16LSB; /* 16-bit signed audio */
+ Desired.channels= 1; /* Mono */
+ Desired.samples= 8192; /* Buffer size: 8K = 0.37 sec. */
+ Desired.callback= callback;
+ Desired.userdata= NULL;
+
+ SDL_OpenAudio(&Desired, &Obtained);
+ SDL_PauseAudio(0);
+ SDL_Delay(200);
+ SDL_Quit();
+ return 0;
+}
+
+
+
+
+
+void callback(void *userdata,Uint8 *stream,int len){
+
+ AudioDataPtr au = (AudioData*)userdata;
+
+ char *waveform_name = au->waveform_name;
+ double frequency = au->frequency;
+ int volume = au->volume;
+ static unsigned int step = 0;
+ Uint16 *frames = (Uint16 *) stream;
+ int framesize = len / 2;
+
+ if(strcmp(waveform_name, "tri")){
+
+ for (int i = 0; i < framesize ; i++, step++){
+ frames[i] = tri(step * frequency / Obtained.freq) * volume ;
+ }
+
+ }else if(strcmp(waveform_name, "sqr")){
+
+ for (int i = 0; i < framesize ; i++, step++){
+ frames[i] = square(step * frequency / Obtained.freq) * volume ;
+ }
+
+ }
+}
+
+
+
+ + ファイルを読み込んで計算を行うようなアプリケーションは、I/O の速度を無視することができない。 + ファイルを全て読み込んでから並列計算をすると、読み込んでいる時間がオーバーヘッドとなってしまう。 +
++ 本研究室では、並列プログラミングフレームワーク Cerium を使用することによって並列計算を可能にしているが、Cerium で I/O と並列計算を同時に走らせるにはどのように実装すればいいか考慮した。 +
++ 上記 2点を実装して、I/O と並列計算が同時に実行し、なおかつ I/O の処理を乱されないようにすることによって、全体のパフォーマンスを上げたい。 +
+ちょうど今、料金の支払い完了。
+ + IGDA メンバー ++ IGDA(国際ゲーム開発者協会)は、ゲーム開発者の国際NPOです。 +
++ IGDA 琉球大学は、様々なゲーム制作イベントを通して、沖縄の社会人クリエイターと学生クリエイターが交流できる場を提供します。 +
++ 様々な異業種間の交流により、様々な分野に興味を引き出せたらと思います。 +
++ また、琉球大学だけでなく、沖縄国際大学、県立芸大や専門学校など沖縄の学校と連携をとり、学生クリエイターの交流を図りたいです。 +
+ ++ 2014/08/02 (Sat) - 08/03 (Sun) +
++ 学生だけのプレゲームジャムをしたところ、社会人などのプログラム経験者がいないときついつらい。(社会人がほしい) +
++ テスト期間なので、学生側の参加者すくなくない?? +
+ ++ 日時 : 6/28 (Sat) 14-18時 +
+
+ 費用 : 1000円
+ 学生無料 (学生証が必要)
+
+ 場所 : Summer Time Studio +
++ https://www.facebook.com/events/282589548579039/ +
+ ++ コンピュータ上でシンセサイザーを使用するときは、ハードウェアシンセサイザーの音を録音するのではなく、ソフトウェアシンセサイザー(以下ソフトシンセ)で収録することが主流となっている。 +
++ ソフトシンセのマルチコア化は進んでいるが、作曲をする上ではソフトシンセを複数立ち上げることが基本となっている。 +
++ マルチコアによるソフトシンセの動作軽量化によって、音を良くしたい。 +
++ (抽象的すぎて評価点がみつけづらい) +
++ 近年のCPUのほとんどはマルチコアであり、それらの性能を引き出すためには並列プログラミングが必須となっている。そこで当研究室では Cerium Library の開発を行い、提供することによって並列プログラミングを容易にしている。 +
++ 先行研究では Task の並列化によって、プログラム全体の処理速度は向上しているが、ファイル読み込み等の I/O に対して並列に Task が動作するようにはされていない。 +
++ 現状では、ファイルを全て memory に mapping を行ってから Task が走るようになっているので、非常に大きいサイズのファイルを読み込むと、ファイルを memory に mapping するまでの時間がオーバーヘッドになってしまう。 +
++ 本研究では I/O と Task の並列化の設計、実装によってプログラム全体の処理速度、処理効率を上げていく。 +
+yada yada yada
+t |