1//
2// MIT license
3// Copyright (C) 2025 Intel Corporation
4// SPDX-License-Identifier: MIT
5//
6
7//
8// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
9// See https://llvm.org/LICENSE.txt for license information.
10// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
11//
12
13#ifndef GGML_SYCL_CONVERT_HPP
14#define GGML_SYCL_CONVERT_HPP
15
16#include "common.hpp"
17
18template <typename T>
19using to_t_sycl_t = void (*)(const void * __restrict__ x, T * __restrict__ y, int64_t k, dpct::queue_ptr stream);
20typedef to_t_sycl_t<float> to_fp32_sycl_t;
21typedef to_t_sycl_t<sycl::half> to_fp16_sycl_t;
22
23to_fp16_sycl_t ggml_get_to_fp16_sycl(ggml_type type, ggml_tensor * dst);
24to_fp32_sycl_t ggml_get_to_fp32_sycl(ggml_type type, ggml_tensor * dst);
25
26// Nc = Non-contiguous
27template <typename T>
28using to_t_nc_sycl_t = void (*)(const void * x, T * y, int64_t ne00, int64_t ne01, int64_t ne02, int64_t ne03,
29 int64_t s01, int64_t s02, int64_t s03, dpct::queue_ptr queue);
30
31typedef to_t_nc_sycl_t<sycl::half> to_fp16_nc_sycl_t;
32to_fp16_nc_sycl_t get_to_fp16_nc_sycl(ggml_type type);
33
34#endif // GGML_SYCL_CONVERT_HPP