{"title":"Introduction to TTL, an Open Source Tensor and Tiling Library for OpenCL","authors":"Christopher Gearing, A. Zaks","doi":"10.1145/3585341.3587953","DOIUrl":null,"url":null,"abstract":"OpenCL has an Image data type to represent multi-dimensional arrays of image data for processing in device Kernels. Whilst providing powerful functionality for image processing, they are designed towards the capabilities of GPUs and provide closed opaque functionality and data formats. This presentation presents a recently released Open-Source library, “Tensor and Tiling library”. TTL has been created to support multi-dimensional data for non-GPUs. Like the GPU Image type, the TTL tensor type has built-in attributes to describe its shape, layout and underlying data. The library provides methods for reading, writing, reasoning about the relative positioning of related Tensors, and attributes of the data beyond the extent of the Tensor. OpenCL C provides asynchronous data copy functions built into the language, allowing data transportation between the host and device memory systems. Many usage patterns where the devices have limited memory require the data to be Tiled and then pipelined through the device. Whilst the OpenCL primitives make this pipelining possible, the pipelining code can be a significant part of the development effort when the actual value added is the algorithm implementation itself. The TTL library offloads the tiling and pipelining boilerplate code allowing the programmer to focus on algorithm development. The presentation will present the Tensor and Tiling library. The library today is temporarily hosted at https://gitlab.khronos.org/opencl/ttl and, by the time of IWOCL 2023, will be finally hosted at https://github.com/KhronosGroup","PeriodicalId":360830,"journal":{"name":"Proceedings of the 2023 International Workshop on OpenCL","volume":"32 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2023-04-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 2023 International Workshop on OpenCL","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3585341.3587953","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
OpenCL has an Image data type to represent multi-dimensional arrays of image data for processing in device Kernels. Whilst providing powerful functionality for image processing, they are designed towards the capabilities of GPUs and provide closed opaque functionality and data formats. This presentation presents a recently released Open-Source library, “Tensor and Tiling library”. TTL has been created to support multi-dimensional data for non-GPUs. Like the GPU Image type, the TTL tensor type has built-in attributes to describe its shape, layout and underlying data. The library provides methods for reading, writing, reasoning about the relative positioning of related Tensors, and attributes of the data beyond the extent of the Tensor. OpenCL C provides asynchronous data copy functions built into the language, allowing data transportation between the host and device memory systems. Many usage patterns where the devices have limited memory require the data to be Tiled and then pipelined through the device. Whilst the OpenCL primitives make this pipelining possible, the pipelining code can be a significant part of the development effort when the actual value added is the algorithm implementation itself. The TTL library offloads the tiling and pipelining boilerplate code allowing the programmer to focus on algorithm development. The presentation will present the Tensor and Tiling library. The library today is temporarily hosted at https://gitlab.khronos.org/opencl/ttl and, by the time of IWOCL 2023, will be finally hosted at https://github.com/KhronosGroup