Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Jan 3, 2023. It is now read-only.

A task scheduling framework designed for the needs of game developers.

License

NotificationsYou must be signed in to change notification settings

GameTechDev/GTS-GamesTaskScheduler

Repository files navigation

This project will no longer be maintained by Intel.Intel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project.Intel no longer accepts patches to this project.maintainedlicenselanguage counttop language

Intel Games Task Scheduler (GTS)

To thedocumentation.

Introduction

GTS is a C++ task scheduling framework for multi-processor platforms. It is designed to letdevelopers express their applications in task parallelism and let the scheduling frameworkmaximize the physical parallelism on the available processors.

Key Goals

  • Simple expression of task parallelism
  • Highly efficient scheduling
  • Easy to configure and extend

Target Audience

GTS is designed for the needs of current and future game engine developers. Typical engine developers employ a highlycustomized, platform-scalable task system (or job system) that provides dedicated worker threadsexecuting thousands of concurrent tasks. These threads may also share resources with driver,networking, middleware, and video streaming threads, all working in synchronized concert todeliver glitch-free real-time rendering on 60+ frames per second (FPS) applications. Future gameengines will have to cope with more threads, more tasks, and potentially multipleinstruction-set-architectures (ISAs), all running on an ever-expanding hardware landscape.

We built GTS to be simple and friendly to game engine task system use cases. We want a frameworkthat allows the game development community to experiment with and learn from different schedulingalgorithms easily. We also want a framework that allows us to demonstrate state-of-the-art algorithmson task scheduling. Finally, we want to encourage games to better express parallelism so they cancompute more cool stuff and enable richer PC gaming experiences!

Features

  • Easily integrate GTS into an existing game engine complete with low level platformoverrides. Game engines support a wide variety of operating systems and hardware platforms,with varying degrees of custom code and work-arounds. Since GTS cannot possiblysupport every work-around and corner case, we have simplified engine integrationby allowing the developer to completely replace the GTS platform layer througha configuration file (user_config.h).
  • Express high-level program flow with persistent, dynamic task DAGs that can beexecuted homogeneously or heterogeneously with the Macro-Scheduler
  • Jump right into parallelism with predefined Parallel Patterns
  • Easily communicate between threads with Parallel Containers
  • Carve up CPU resources as you see fit with the WorkerPool
  • Express low-level algorithms and highly efficient execution policies with the Micro-schedulerand Task constructs.
  • Remove bottlenecks around heap access with gts_malloc.
  • Avoid contention and kernel-mode synchronization with GTS's user-mode synchronization primitives and contentionreducing constructs.
  • OS-header-free and mostly STL-free interface. GTS won't pollute your engine with unnecessary headers.




About

A task scheduling framework designed for the needs of game developers.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors3

  •  
  •  
  •  

Languages


[8]ページ先頭

©2009-2025 Movatter.jp