• OpenCL入門 - マルチコアCPU・GPUのための並列プログラミング -

OpenCL入門 - マルチコアCPU・GPUのための並列プログラミング -

OpenCL入門 - マルチコアCPU・GPUのための並列プログラミング -

3,850円(本体 3,500円+税10%)

品種名
書籍
発売日
2010/1/22
ページ数
296P
サイズ
B5変型判
著者
株式会社フィックスターズ(土山 了士/中村 孝史/飯塚 拓郎/浅原 明広/三木 聡) 著
ISBN
9784844328148

PCをスパコンに! 並列コンピューティングの次世代フレームワーク、ここに登場

科学・技術計算/画像処理の分野で注目を集める並列処理フレームワークの標準規格OpenCLについて、その基礎からプログラム開発の要点までを平易に解説。標準化団体クロノス・グループ(Khronos Group)推奨

●OpenCLとは
オープンシーエル。Open Computing Languageの略。CPU、GPU、DSP等が混在する(ヘテロジニアスな)プラットフォームで並列処理プログラムを書くためのフレームワーク。クロノス・グループ(Khronos Group)によって標準化が進められ、2008年12月9日にOpenCL 1.0が制定された。C99に基づくC言語(コンパイラ)と並列計算をサポートするAPI群から成り立ち、データ並列/タスク並列のいずれもサポートしている。

実際の紙面をPDFファイルで閲覧いただけます。立ち読みには「Adobe Reader」などのPDF閲覧ツールが必要です。
こちらからどうぞ

「読者アンケートに答える」「読者プレゼントに応募」の場合もこちらをご利用ください。

アンケートに答える

書籍の内容に関するお問い合わせはこちら。お答えできるのは本書に記載の内容に関することに限ります。

学校・法人一括購入に関するお問い合わせはこちらへ。

一括購入窓口

詳細


■本書刊行によせて
OpenCLは、かつてないほど幅広い分野のユーザに、複雑なマルチプロセッサ・システムのプログラミング・パワーをもたらす、注目すべき新しいオープン・スタンダードです。

業界スタンダードは、利用者や業界の理解を得られない限り、そのテクノロジーの潜在力や将来性について意味を持ちません。そのため、Khronos Group は、OpenCLの仕様策定のみならず、カンファレンスやプロモーション活動を通して、さまざまな分野に広がるOpenCLエコシステムの育成を、全面的に支援しています。

フィックスターズは、国内初のOpenCL セミナーやチュートリアルを開催しており、最新のOpenCL関連教材を作成するのにふさわしい、高度な知識と経験を有しています。私は、これからOpenCLを学び、そのパワーや可能性を活用したいと考えている多くの皆さまに、この本を自信を持って推薦します。

Neil Trevett(Khronos Groupプレジデント/OpenCLワーキンググループ議長)

ダウンロード

本製品の読者さまを対象としたダウンロード情報はありません。

お詫びと訂正

誤記のためにご迷惑をおかけし、誠に申し訳ございません。

  • 16ページ 図1.14 右側
    • [誤]
      75
    • [正]
      62.5
    • 【 第2刷にて修正 】
  • 95ページ 本文
    • [誤]
      ローカルワークアイテムIDはワークグループ内でのワークアイテムのIDを示し、ワークグループID はそのワークアイテムが所属するワークアイテムのIDを示します。
    • [正]
      ローカルワークアイテムIDはワークグループ内でのワークアイテムのIDを示し、ワークグループID はそのワークアイテムが所属するワークグループのIDを示します。
    • 【 第2刷にて修正 】
  • 97ページ 本文
    • [誤]
      執筆時点(2009年12月)でMac OS XのOpenCL実装ではCL_DEVICE_MAX_WORK_ITEM_ DIMENSIONSの値が1つとなっており、1つのワークグループで複数のワークアイテムを動かすことができません。注意してください。
    • [正]
      執筆時点(2009年12月)でMac OS XのOpenCL実装では、CPUの場合、CL_DEVICE_MAX_WORK_ITEM_ DIMENSIONSの値が1つとなっており、1つのワークグループで複数のワークアイテムを動かすことができません。注意してください。
    • 【 第2刷にて修正 】
  • 107ページ 図5.2「ベクタ値への演算子適用」cの要素
    • [誤]
      「a.x+b.x」「a.y+b.y」「a.z+b.z」「a.z+b.z」「a.w+b.w」
    • [正]
      「a.x+b.x」「a.y+b.y」「a.z+b.z」「a.w+b.w」
    • 【 第2刷にて修正 】
  • 123ページ リスト 5.20
    • [誤]
      062: image = clCreateImage2D(context, CL_MEM_READ_ONLY, &fmt, 4, 4, 0, 0, NULL);
    • [正]
      062: image = clCreateImage2D(context, CL_MEM_READ_ONLY, &fmt, 4, 4, 0, NULL, NULL);
    • 【 第2刷にて修正 】
  • 125ページ リスト(ページ下部)
    • [誤]
      062: image = clCreateImage2D(context, CL_MEM_READ_ONLY, &fmt, 4,
      4, 0, 0, NULL);
    • [正]
      062: image = clCreateImage2D(context, CL_MEM_READ_ONLY, &fmt, 4,
      4, 0, NULL, NULL);
    • 【 第2刷にて修正 】
  • 125ページ 表 5.7
    • [誤]
      CL_SIGNED_UINT8 uchar
      CL_SIGNED_UINT16 ushort
      CL_SIGNED_UINT32 uint
    • [正]
      CL_UNSIGNED_INT8 uchar
      CL_UNSIGNED_INT16 ushort
      CL_UNSIGNED_INT32 uint
    • 【 第2刷にて修正 】
  • 130ページ 本文
    • [誤]
      clGetDeviceIDs関数で取得できるCL_DEVICE_SINGLE_FP_CONFIGに含まれるビットを調べることで、対応している丸め処理を確認できます。
    • [正]
      clGetDeviceInfo関数で取得できるCL_DEVICE_SINGLE_FP_CONFIGに含まれるビットを調べることで、対応している丸め処理を確認できます。
    • 【 第2刷にて修正 】
  • 174ページ 本文
    • [誤]
      9行目が実際に回転因子の計算を行っている部分ですが、8行目で偏角を実部と虚部で2/PIだけずらすことによって、cos関数でまとめて回転因子の計算を行っています。
    • [正]
      9行目が実際に回転因子の計算を行っている部分ですが、8行目で偏角を実部と虚部でPI/2だけずらすことによって、cos関数でまとめて回転因子の計算を行っています。
    • 【 第2刷にて修正 】
  • 203ページ 本文
    • [誤]
      ここでは、DCで生成したパラメータの数をCL_DEVICE_MAX_COMPUTE_UNITSの値で割った値をワークグループあたりのワークアイテム数に設定します。ただし、パラメータの数32個を超えて並列実行することはできないので、最大数を32としておきます。
    • [正]
      ここでは、DCで生成したパラメータmtsの要素数をCL_DEVICE_MAX_COMPUTE_UNITSの値で割った値をワークグループあたりのワークアイテム数に設定します。ただし、サンプルプログラムではmtsの要素数は32個となっているため(リスト6-17の14行目を参照)、最大で並列処理できる数は32となります。
    • 【 第2刷にて修正 】
  • 203ページ ページ下部 リスト内
    • [誤]
      if (num_compute_unit > 32)
    • [正]
      if (num_compute_unit > 32)

      if (num_compute_unit > 32) /* 最大で並列処理できる数はmtsの個数(=32) */
    • 【 第2刷にて修正 】
  • 281ページ 索引
    • [誤]
      CL_SIGNED_UINT16
      CL_SIGNED_UINT32
      CL_SIGNED_UINT8
    • [正]
      CL_UNSIGNED_INT16
      CL_UNSIGNED_INT32
      CL_UNSIGNED_INT8
    • 【 第2刷にて修正 】
  • 282ページ 索引
    • [誤]
      clGetDeviceIDs() ………… 68, 130, 223
      clGetDeviceInfo() ………… 96, 115, 124, 187, 223
    • [正]
      clGetDeviceIDs() ………… 68, 223
      clGetDeviceInfo() ………… 96, 115, 124, 130, 187, 223
    • 【 第2刷にて修正 】

お問い合わせ

書籍の内容に関するお問い合わせはこちら。お答えできるのは本書に記載の内容に関することに限ります。

お問い合わせフォーム