Tachyon (current)  Current Main Branch
Introduction

Tachyon C-based CPU implementation

Tachyon was originally developed in 1994 using plain C89 ANSI C, due to the extremely limited compilers available on parallel computers of the time. Despite the fact that C++ compilers are widely available and in use on mainstream PC operating systems of the early 90's, many of the parallel computers of the era were based on processors that had a relatively small or non-existent market share outside of high performance computing, so development tools were lacking in general. and often only C or Fortran compilers were available. As a result, the CPU version of Tachyon began and evolved as a C-based code, using operating system-specific APIs and its own internal abstractions for multithreading, CPU thread affinity mapping, CPU SIMD instruction set extensions, atomic memory operations, and so on.

TachyonOptiX CUDA/OptiX GPU implementation for NVIDIA GPUs

Beginning in 2013, Tachyon was adapted for GPU acceleration using the NVIDIA CUDA programming language and the OptiX ray tracing acceleration framework. From 2013 until 2018, the OptiX version of Tachyon was developed using the first-generation high-level OptiX 1.x-6.x APIs. The OptiX variant of Tachyon was developed initially primarily for use by VMD, and uses a completely different GPU-oriented API, as compared with the CPU version of Tachyon.
Starting in 2018, work began on a complete rewrite of the OptiX version of Tachyon for the new second-generation OptiX 7 APIs, which were comparatively low-level and placed much more responsbility on the renderer developer. The new OptiX 7 APIs are much closer in terms of level of abstraction to what is now found in the Vulkan KHR ray tracing extensions, and in DXR. All provide developers with significantly more control, at the cost of added responsibility and maintenance cost. These changes have brought performance benefits to TachyonOptiX, but the code is much larger now than it was originally, and it continues to grow as it becomes more feature-complete.

TachyonVK Vulkan KHR GPU implementation for GPUs

Early steps are currently in-progress to create a Tachyon adaptation for Vulkan using the Khronos KHR ray tracing extension.

ANARI Rendering API

A planned goal for both CPU and GPU accelerated versions of Tachyon is to wrap them in the new ANARI API, providing them with a consistent, and more modern high leval API that offers compatibility with many other renderers and applications as well.

Id
rt_intro.dox,v 1.3 2022/03/30 02:22:22 johns Exp