At Teratide, we solve problems using technology that best fits your needs. Each type of accelerator has its own unique advantages and a related set of applications for which it can outshine another type of accelerator or a traditional CPU system.
After selecting the appropriate technology, we build solutions on top of well-known and battle-hardened open-source projects that are designed for performance. We rely on open-source projects such as Apache Arrow for zero-copy (or as near as possible to zero-copy) inter-process communication between our heterogeneous compute components and downstream software applications.
Overview of Teratide technology
What’s the big deal with FPGAs? FPGAs allow to implement an arbitrary digital circuit, ranging from simple combinatorial logic all the way to fully fledged multiprocessor systems. Their overall unique advantage is that their digital circuit can be customized to perform precisely the task at hand, having every logic gate perform only the operation that is required, without the overhead of e.g. an instruction set or a sub-optimal memory hierarchy for your application.
FPGAs can be directly attached to storage or network, preventing the need of the CPU with its subsequent OS layers to ingest the dataset before it can be processed. FPGA accelerators can be designed using the dataflow computing paradigm, not requiring intermediate results of computations to be moved back-and-forth from/to memory. All of this allows FPGA accelerators to shine in applications requiring e.g. low latency. FPGAs are good at applications such as preprocessing, filtering and decompression.
For FPGA accelerators, Teratide integrates solutions using the Fletcher open-source projects, based on Apache Arrow, of which our founders are the main contributors. Such frameworks help us rapidly prototype solutions without compromising performance.
When applications are embarrassingly parallel and/or require a lot of floating point operations, GPGPUs reign supreme. At Teratide, we have a deep understanding of the internal architecture of GPGPUs, and are skilled in GPGPU implementations using CUDA or OpenCL. Typical applications, and what GPGPUs are famous for, is applications in Deep Learning and Machine Learning, but they can also perform specific database queries well, and unsurprisingly can be applied in visualization applications that require high throughput.
Big data analytics frameworks
Teratide provides a system stack that integrates multiple technologies in a seamless fashion. This stack allows users to deploy various big data analytics frameworks such as Apache Spark, Dremio, or Dask, to scale up applications written in a whole host of languages such as Java, Python, and R, and to visualize the results using powerful visualization tools. This is done between these applications in an integrated way in-memory, without loss of performance and compute efficiency. In addition, our stack allows users to perform real-time streaming data processing from data ingest to actionable insights with zero-overhead. The stack is open source to prevent vendor lock-in, and can be executed on public clouds such as AWS and Azure, as well as on (geographically) local clouds for ultra-low latency processing.