JP5242628B2 - ゲーム開発におけるプログラマーの生産性を向上させる高級言語 - Google Patents
ゲーム開発におけるプログラマーの生産性を向上させる高級言語 Download PDFInfo
- Publication number
- JP5242628B2 JP5242628B2 JP2010106825A JP2010106825A JP5242628B2 JP 5242628 B2 JP5242628 B2 JP 5242628B2 JP 2010106825 A JP2010106825 A JP 2010106825A JP 2010106825 A JP2010106825 A JP 2010106825A JP 5242628 B2 JP5242628 B2 JP 5242628B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- vsipl
- calculation
- map
- units
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000011161 development Methods 0.000 title description 6
- 230000015654 memory Effects 0.000 claims abstract description 23
- 238000000034 method Methods 0.000 claims abstract description 16
- 238000004364 calculation method Methods 0.000 claims description 46
- 150000001875 compounds Chemical class 0.000 claims description 16
- 238000013507 mapping Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 45
- 239000008186 active pharmaceutical agent Substances 0.000 description 30
- 238000012545 processing Methods 0.000 description 27
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 8
- 239000000700 radioactive tracer Substances 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000009877 rendering Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000002195 synergetic effect Effects 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 238000005286 illumination Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 239000002131 composite material Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000036964 tight binding Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 102100040605 1,2-dihydroxy-3-keto-5-methylthiopentene dioxygenase Human genes 0.000 description 1
- 241000408659 Darpa Species 0.000 description 1
- 101000966793 Homo sapiens 1,2-dihydroxy-3-keto-5-methylthiopentene dioxygenase Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000013065 commercial product Substances 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- FHNFHKCVQCLJFQ-UHFFFAOYSA-N xenon atom Chemical group [Xe] FHNFHKCVQCLJFQ-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Generation (AREA)
- Stored Programmes (AREA)
Description
ビデオゲーム開発業界は,計算能力の必要性や複雑化の劇的な高まりに対する取り組みだけではなく,並列言語に関連付けられたいくつかの陥りやすい誤りを軽減するのに役立つように,さらに多くの試みがプログラミング言語の開発にかけられている。それによって並列システムの生産性が高まっている。高性能コンピュータ業界において,2002年以来,DARPAは高性能コンピュータシステム(HPCS)計画を支援している。この計画は,‘プログラムの性能,プログラミング,移植性,及びロバスト性の組み合わせ’と規定される生産性において,プログラム生産を増加させようとしている。SUNのFortress,IBMのX10及びCrayのChapelは,すべてHPCSの一環として開発されているプログラム言語である。3つのプログラム言語はすべてグローバルな視点でのプログラミングモデルを使用する。しかしながら,各言語は,それぞれ他の言語と大きく異なっている。Fortressは,プログラムを実行させる言語である。この言語は,数学的な表現とよく似たインタープリター型言語である。X10は,並列サポート構造を加えたJabaの部分集合である。Chapelは,C言語,フォートラン,Jaba,及びAdaを多く取り入れる,コンパイル言語である。
並列VSIPL++APIの中心的概念は,並列処理の仕様からアプリケーション機能を独立して表す能力である。これを可能にするメカニズムはマップである。
並列VSIPL++APIは,信号処理業界で有用されるベクトル加算,行列乗算,及び高速フーリエ変換のようなプリミティブを多数提供する。これらのプリミティブの多くは,ゲーム業界においても有用である。しかし,いずれかのAPIの成功の鍵は,有用で大きなプログラムの集合に組み合わせ可能な基本的な機能を提供することである。この目的のために,本発明のシステムは,光線と三角形の交差関数とkdツリー関数の両方を実装している。これら二つの関数はグローバルイルミネーション領域と物理エンジン領域の両方に非常に有用である。光線と三角形の交差関数は,物理エンジンで使用するためにオブジェクトとオブジェクトの交差に一般化される。
この働きは,力強い光線と三角形の交差関数を含むため,VSIPL++APIを拡張する。これは,x86,CBE,及びNvidiaGPUアーキテクチャを介して複数の異なるタイプのグローバルイルミネーションアルゴリズムの実装を許容する。発明者の知る限りでは,基礎となる並列アーキテクチャから実装された光線と三角形の交差を抽象化するために,マップのデータ構造が使用されるのは初めてのことである。また,コードを一行も変換することなく3つのアーキテクチャ上でパストレーサを実装するためにマップが正常に使用されることも初めてのことである。この項目では,ホスト又はコプロセッサモデルの使用制限を示し,この制限を説明する。
この働きは,変更したVSIPL++を使用することが標準的なC++言語でのプログラミングよりも優れているので,多くの利点を明示している。特に,本発明のVSIPL++は,特定の実装からプログラムの機能を分離するのに効果的であることを明示している。これにより,多くの人が,本発明のVSIPL++の実装に基づく有用なレンダリングアルゴリズム(モンテカルロパストレーサ)を書き込むことができるようになった。これは,プログラムを書くのに必要なラインコードを削減することによって明らかにされる。このアプリケーションは,単一のコードを変更することなく,マルチコアx86システム,デュアルスレッドのPowerPCシステム,セルボードエンジン,及びNvidiaGPUを基礎としたシステム上で本発明のモンテカルロパストレーサを実行することによって,本発明のVSIPL++コードの移植性を実証した。このアプリケーションは,LISPのような異国的なプログラミング言語に頼ることなく高いレベルのAPIで生産性の向上が達成されえることを実証した。またそれは,高い移植性であっても高性能が達成されることを示している。
Claims (2)
- メモリ(102)と,
複数の計算ユニットを含む複合計算ユニット(103)と,
マップ手段(104)と,を含む,
ゲームエンジンのシステム(101)であって,
前記マップ手段(104)は,
データを前記メモリ(102)から読み取り,
前記データを前記複合計算ユニットに分散させることで計算タスクを前記計算ユニットのそれぞれに割当てるために,前記計算タスクに関係するデータの一部を,前記計算タスクを実行する前記計算ユニットのそれぞれへ格納するものであり,
該データをストリームする際に,計算タスクが計算ユニットに割当てられた複数の形態のループからなるストリームパターンの該形態の内部に,さらに,計算タスクが計算ユニットに割当てられた複数の形態のループをネストすることを特徴とする
システム。 - 複数の計算ユニットを含む複合計算ユニットにデータをマッピングする方法であって,
データをメモリから読み取るステップと,
前記データを前記複合計算ユニットに分散させることで計算タスクを前記計算ユニットのそれぞれに割当てるために,前記計算タスクに関係するデータの一部を,前記計算タスクを実行する前記計算ユニットのそれぞれへ格納するステップと,を含み,
該データをストリームする際に,計算タスクが計算ユニットに割当てられた複数の形態のループからなるストリームパターンの該形態の内部に,さらに,計算タスクが計算ユニットに割当てられた複数の形態のループをネストすることを特徴とする
方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010106825A JP5242628B2 (ja) | 2010-05-06 | 2010-05-06 | ゲーム開発におけるプログラマーの生産性を向上させる高級言語 |
US13/094,339 US9465666B2 (en) | 2010-05-06 | 2011-04-26 | Game engine and method for providing an extension of the VSIPL++ API |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010106825A JP5242628B2 (ja) | 2010-05-06 | 2010-05-06 | ゲーム開発におけるプログラマーの生産性を向上させる高級言語 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011237893A JP2011237893A (ja) | 2011-11-24 |
JP5242628B2 true JP5242628B2 (ja) | 2013-07-24 |
Family
ID=44902847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010106825A Active JP5242628B2 (ja) | 2010-05-06 | 2010-05-06 | ゲーム開発におけるプログラマーの生産性を向上させる高級言語 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9465666B2 (ja) |
JP (1) | JP5242628B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111580790B (zh) * | 2020-04-22 | 2023-07-21 | 电子科技大学 | 一种用于软件化雷达中间件的构建方法 |
CN113703732B (zh) * | 2021-11-01 | 2022-02-11 | 深圳易帆互动科技有限公司 | 一种游戏后端多语言开发的实现方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8248416B2 (en) * | 2000-06-19 | 2012-08-21 | Mental Images Gmbh | Efficient ray tracing without acceleration data structure |
US6862027B2 (en) * | 2003-06-30 | 2005-03-01 | Microsoft Corp. | System and method for parallel execution of data generation tasks |
DE102004007835A1 (de) * | 2004-02-17 | 2005-09-15 | Universität des Saarlandes | Vorrichtung zur Darstellung von dynamischen komplexen Szenen |
GB2435335A (en) * | 2006-02-21 | 2007-08-22 | Sony Computer Entertainment Inc | Multi-processor emulation by a multi-processor |
US8666712B2 (en) * | 2006-07-24 | 2014-03-04 | Ati Technologies Inc. | Physical simulations on a graphics processor |
EP2050002A2 (en) * | 2006-08-01 | 2009-04-22 | Massachusetts Institute of Technology | Extreme virtual memory |
JP4789777B2 (ja) * | 2006-11-07 | 2011-10-12 | 株式会社ソニー・コンピュータエンタテインメント | タスクの分配方法および情報処理装置 |
US8448067B2 (en) * | 2006-12-07 | 2013-05-21 | Sony Computer Entertainment America, LLC | Graphics command management tool and methods for analyzing performance for command changes before application modification |
US8928658B2 (en) | 2008-09-30 | 2015-01-06 | Microsoft Corporation | Photon mapping on graphics hardware using kd-trees |
WO2011035800A2 (en) * | 2009-07-24 | 2011-03-31 | Uws Ventures Ltd. | Direct ray tracing of 3d scenes |
US8558835B2 (en) * | 2009-07-30 | 2013-10-15 | Nvida Corporation | System, method, and computer program product for consistent image synthesis |
-
2010
- 2010-05-06 JP JP2010106825A patent/JP5242628B2/ja active Active
-
2011
- 2011-04-26 US US13/094,339 patent/US9465666B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9465666B2 (en) | 2016-10-11 |
US20110276970A1 (en) | 2011-11-10 |
JP2011237893A (ja) | 2011-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11847508B2 (en) | Convergence among concurrently executing threads | |
Navarro et al. | A survey on parallel computing and its applications in data-parallel problems using GPU architectures | |
KR101732288B1 (ko) | 스프라이트 그래픽 렌더링 시스템 | |
KR101231291B1 (ko) | 자원 결합 방법 및 그를 위한 컴퓨터 판독가능 매체 및 애플리케이션 프로그래밍 인터페이스와, 종속성 트리 재구성 방법 | |
TWI363294B (en) | Virtual architecture and instruction set for parallel thread computing | |
Zink et al. | Practical rendering and computation with Direct3D 11 | |
Brodtkorb et al. | GPU computing in discrete optimization. Part I: Introduction to the GPU | |
Wynters | Parallel processing on NVIDIA graphics processing units using CUDA | |
Baker et al. | A light-weight API for portable multicore programming | |
JP5242628B2 (ja) | ゲーム開発におけるプログラマーの生産性を向上させる高級言語 | |
Rahman et al. | Towards accelerated agent-based crowd simulation for Hajj and Umrah | |
Zamith et al. | A game loop architecture for the gpu used as a math coprocessor in real-time applications | |
Janjic et al. | Lapedo: hybrid skeletons for programming heterogeneous multicore machines in Erlang | |
Watt et al. | Multithreading for Visual Effects | |
US9098917B2 (en) | Method and system for accelerating collision resolution on a reconfigurable processor | |
Eimandar | DirectX 11.1 Game Programming | |
Peddie | Compute Accelerators and Other GPUs | |
Chadzynski | Parallel Techniques in Modeling Particle System Using Vulkan API | |
Guo et al. | Harnessing the power of GPUs without losing abstractions in SAC and ArrayOL: A comparative study | |
Ragnemalm | Attack In Packs | |
Chelliah | The ntnu hpc snow simulator on the fermi gpu | |
Jakobsson | Parallelization of Animation Blending on the PlayStation® 3 | |
Tello Panea | Optimization techniques for a 2D Engine | |
Soyata | Introduction to GPU Parallelism and CUDA | |
Bourges-Sevenier | Graphics Programming on the Web WebCL Course Notes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120425 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120501 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120702 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121127 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130125 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130326 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130403 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160412 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5242628 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |