# HG changeset patch # User tobaru # Date 1519195160 -32400 # Node ID 0aabd94a01263dd7f72bc01e53bea7aab52cfc93 # Parent d0d503dd3fd5bab8ca8be7f13f25aa2f78e6304c スライド修正 diff -r d0d503dd3fd5 -r 0aabd94a0126 paper/main.aux --- a/paper/main.aux Wed Feb 21 14:38:37 2018 +0900 +++ b/paper/main.aux Wed Feb 21 15:39:20 2018 +0900 @@ -46,8 +46,10 @@ \newlabel{LinuxLLVMmake}{{6.2}{10}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {6.2}Linux上のLLVM makeファイル}{10}} \@writefile{toc}{\contentsline {section}{\numberline {6.2}GCC}{11}} -\newlabel{Linux_GCC_CrossCompile}{{6.3}{11}} +\newlabel{GCC_example}{{6.3}{11}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {6.3}LinuxでのGCC CrossCompile}{11}} +\newlabel{Linux_GCC_CrossCompile}{{6.4}{11}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {6.4}LinuxでのGCC CrossCompile}{11}} \@writefile{toc}{\contentsline {section}{\numberline {6.3}xv6}{12}} \@writefile{lof}{\contentsline {figure}{\numberline {6.1}{\ignorespaces OSX Linux VM}}{12}} \newlabel{fig:OSX_Linux_VM}{{6.1}{12}} diff -r d0d503dd3fd5 -r 0aabd94a0126 paper/main.log --- a/paper/main.log Wed Feb 21 14:38:37 2018 +0900 +++ b/paper/main.log Wed Feb 21 15:39:20 2018 +0900 @@ -1,4 +1,4 @@ -This is e-pTeX, Version 3.14159265-p3.7-160201-2.6 (utf8.euc) (TeX Live 2016) (preloaded format=platex 2017.5.28) 21 FEB 2018 12:12 +This is e-pTeX, Version 3.14159265-p3.7-160201-2.6 (utf8.euc) (TeX Live 2016) (preloaded format=platex 2017.5.28) 21 FEB 2018 15:02 entering extended mode restricted \write18 enabled. file:line:error style messages enabled. @@ -268,14 +268,18 @@ ] [16 -] (./main.aux) ) +] (./main.aux) + +LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right. + + ) Here is how much of TeX's memory you used: - 2689 strings out of 493693 - 36488 string characters out of 6149787 - 231239 words of memory out of 5000000 - 6219 multiletter control sequences out of 15000+600000 + 2690 strings out of 493693 + 36501 string characters out of 6149787 + 254239 words of memory out of 5000000 + 6220 multiletter control sequences out of 15000+600000 14788 words of font info for 59 fonts, out of 8000000 for 9000 929 hyphenation exceptions out of 8191 27i,8n,43p,326b,1133s stack positions out of 5000i,500n,10000p,200000b,80000s -Output written on main.dvi (19 pages, 32676 bytes). +Output written on main.dvi (19 pages, 33660 bytes). diff -r d0d503dd3fd5 -r 0aabd94a0126 paper/main.pdf Binary file paper/main.pdf has changed diff -r d0d503dd3fd5 -r 0aabd94a0126 paper/main.synctex.gz Binary file paper/main.synctex.gz has changed diff -r d0d503dd3fd5 -r 0aabd94a0126 paper/main.tex --- a/paper/main.tex Wed Feb 21 14:38:37 2018 +0900 +++ b/paper/main.tex Wed Feb 21 15:39:20 2018 +0900 @@ -444,8 +444,9 @@ % これもCrossCompileなので書き直す % CrossCompile と別に Linux 環境で CbC を動かした後に、Raspberry Pi に載せる手法がある。 - - + \begin{lstlisting}[frame=lrbt,label=GCC_example,caption={LinuxでのGCC CrossCompile}] +./bin/clang -target arm-linux-gnueabi -mfpu=neon-fp16 -marm -I /net/open/Linux/arm/gcc-arm-none-eabi-7-2017-q4-major/arm-none-eabi/include/ hello.c -c -mfloat-abi=hard + \end{lstlisting} diff -r d0d503dd3fd5 -r 0aabd94a0126 slide/thesis.html --- a/slide/thesis.html Wed Feb 21 14:38:37 2018 +0900 +++ b/slide/thesis.html Wed Feb 21 15:39:20 2018 +0900 @@ -86,7 +86,7 @@ @@ -94,8 +94,9 @@

Raspberry Pi 上での Gears OS

@@ -106,7 +107,7 @@ @@ -127,7 +128,7 @@
  • CrossCompile を行うことで make 時間の問題を解決する方法がある。
  • CrossCompile と は、別の OS で実行可能なコードを生成するコンパイルの手法である。
  • Raspbian 以外の OS 環境であらかじめ Raspberry Pi で CbC が動くように CrossCompile を行い、その コードを Raspberry Pi に移す事で、実行できるようになる。
  • -
  • Raspberry Pi の OS である Rasbian は qemu によるメモリの拡張もできないので、別 の手法で Raspberry Pi 上に CbC を実装する方が好ましい。
  • +
  • Raspberry Pi の OS である Rasbian は qemu によるメモリの拡張もできないので、別の手法で Raspberry Pi 上に CbC を実装する方が好ましい。
  • @@ -138,8 +139,14 @@ +
    ./bin/clang -target arm-linux-gnueabi -mfpu=neon-fp16 -marm
    +-I /net/open/Linux/arm/gcc-arm-none-eabi-7-2017-q4-major/arm-none-eabi/include/
    + hello.c -c -mfloat-abi=hard
    +
    +
    @@ -160,7 +167,7 @@

    Linux上でのCbCの実装

    @@ -261,6 +268,7 @@

    今後の課題

    Xv6 で CbC が動くようになれば、Raspberry Pi 以外のハードウェアでの実装も容易に なるので、Linux 上での実装を目指して研究を進めていく。xv6 で CbC が動けば、続け て Linux 上で Gears OS の実装も行なっていく。

    +
    diff -r d0d503dd3fd5 -r 0aabd94a0126 slide/thesis.md --- a/slide/thesis.md Wed Feb 21 14:38:37 2018 +0900 +++ b/slide/thesis.md Wed Feb 21 15:39:20 2018 +0900 @@ -4,14 +4,15 @@ # Raspberry Pi 上での Gears OS - 本研究室では Code Segment と Data Segment という単位でプログラムを記述する CbC(Continuation base C) とCbC を用いて実装する Gears OS の研究を行っている。 -- CbC はCode Segment は並列処理の単位として利用でき, Data Segment はデータそのもので型を持っていて,CbC はメタレベルの処理,並列処理を記述することができる。 -- 本研究では,Raspberry Pi で Gears OS を動かせるようになる事で、ハードウェア上でもメタレベルの処理、並列実行ができるプログラミングを記述できるようになる事を目指している。 +- Code Segment は並列処理の単位として利用でき、Data Segment はデータそのもので型を持っていて、CbC はメタレベルの処理、並列処理を記述することができる。 +- メタレベルの処理では、メモリ管理、スレッド管理、CPU や GPU の資源管理を記述 することができる。 +- 本研究では、ARM で動くシングルボードコンピュータである Raspberry Pi で Gears OS を動かせるようになる事で、ハードウェア上でもメタレベルの処理、並列実行ができるプログラミングを記述できるようになる事を目指している。 # RaspberryPi上でCbCのmake - Raspberry Pi 1 のメモリは 256MB と小さいため、 CbC を make することができない。 - Raspberry Pi 3 だとメモリは 1GB あり CbC を make できるが、時間がかかる。 -- make 時間の比較として研究室のサーバでメモリ 16GB の firefly と学科のサーバの一つ で Linux 環境であるメモリ 756GB の Dell PowerEdge630(DALMORE)を用いる。 +- make 時間の比較として研究室のメモリ 16GB のサーバ(firefly) と学科のサーバの一つ で Linux 環境であるメモリ 756GB の Dell PowerEdge630(DALMORE)を用いる。 - それぞれのサーバではGoogleによって開発されたbuildシステムninja-buildをもちいてmakeを行なった。 - ninja-buildはコア数を調べて実行するので使わない場合と比べてmakeが高速になる。 @@ -22,11 +23,18 @@ - CrossCompile を行うことで make 時間の問題を解決する方法がある。 - CrossCompile と は、別の OS で実行可能なコードを生成するコンパイルの手法である。 - Raspbian 以外の OS 環境であらかじめ Raspberry Pi で CbC が動くように CrossCompile を行い、その コードを Raspberry Pi に移す事で、実行できるようになる。 -- Raspberry Pi の OS である Rasbian は qemu によるメモリの拡張もできないので、別 の手法で Raspberry Pi 上に CbC を実装する方が好ましい。 +- Raspberry Pi の OS である Rasbian は qemu によるメモリの拡張もできないので、別の手法で Raspberry Pi 上に CbC を実装する方が好ましい。 # Linux CrossCompile - Linux環境でCbCを動かす際にCrossCompileを行なう方法がある。 - RaspberryPiはARMのコードを生成するので、LinuxでもCrossCompileによってARMのコードを生成すればRaspberry Pi でも実行可能なファイルを作ることができる。 +- C言語で書かれた簡単なファイルをCrossCompileしたコマンドを示す。 + +```c +./bin/clang -target arm-linux-gnueabi -mfpu=neon-fp16 -marm +-I /net/open/Linux/arm/gcc-arm-none-eabi-7-2017-q4-major/arm-none-eabi/include/ + hello.c -c -mfloat-abi=hard +``` # T図形 - CbC を Raspberry Pi で動かすためのアプローチの手法をを、I と T の形をした図の組み合わせによって説明を行う。 @@ -37,7 +45,7 @@ # Linux上でのCbCの実装 - OSX上に立ち上げられたLinux で CbC のCrossCompileを行う過程を図に示す。 -- CbCは C によって記述されているため、CからARM.oを生成し、ARM.oからARMのa.outを出力する。 +- CbCは C によって記述されているため、CからARM形式の.oファイルを生成し、.oからARMのa.outを出力する。 - これらはARM形式なのでRaspberryPiで実行できるファイルである。
    @@ -115,3 +123,7 @@ # 今後の課題 Xv6 で CbC が動くようになれば、Raspberry Pi 以外のハードウェアでの実装も容易に なるので、Linux 上での実装を目指して研究を進めていく。xv6 で CbC が動けば、続け て Linux 上で Gears OS の実装も行なっていく。 + + + + diff -r d0d503dd3fd5 -r 0aabd94a0126 slide/thesis.pdf.html --- a/slide/thesis.pdf.html Wed Feb 21 14:38:37 2018 +0900 +++ b/slide/thesis.pdf.html Wed Feb 21 15:39:20 2018 +0900 @@ -70,7 +70,7 @@ @@ -78,8 +78,9 @@

    Raspberry Pi 上での Gears OS

    @@ -90,7 +91,7 @@ @@ -111,7 +112,7 @@
  • CrossCompile を行うことで make 時間の問題を解決する方法がある。
  • CrossCompile と は、別の OS で実行可能なコードを生成するコンパイルの手法である。
  • Raspbian 以外の OS 環境であらかじめ Raspberry Pi で CbC が動くように CrossCompile を行い、その コードを Raspberry Pi に移す事で、実行できるようになる。
  • -
  • Raspberry Pi の OS である Rasbian は qemu によるメモリの拡張もできないので、別 の手法で Raspberry Pi 上に CbC を実装する方が好ましい。
  • +
  • Raspberry Pi の OS である Rasbian は qemu によるメモリの拡張もできないので、別の手法で Raspberry Pi 上に CbC を実装する方が好ましい。
  • @@ -122,8 +123,14 @@ +
    ./bin/clang -target arm-linux-gnueabi -mfpu=neon-fp16 -marm
    +-I /net/open/Linux/arm/gcc-arm-none-eabi-7-2017-q4-major/arm-none-eabi/include/
    + hello.c -c -mfloat-abi=hard
    +
    +
    @@ -144,7 +151,7 @@

    Linux上でのCbCの実装

    @@ -245,6 +252,7 @@

    今後の課題

    Xv6 で CbC が動くようになれば、Raspberry Pi 以外のハードウェアでの実装も容易に なるので、Linux 上での実装を目指して研究を進めていく。xv6 で CbC が動けば、続け て Linux 上で Gears OS の実装も行なっていく。

    +