opencl: rename kernel files ggml-opencl2
-> ggml-opencl
This commit is contained in:
parent
34f2fc15ea
commit
97a12703dd
11 changed files with 90 additions and 83 deletions
|
@ -27,16 +27,16 @@ if (OpenCL_FOUND)
|
||||||
if (GGML_OPENCL_EMBED_KERNELS)
|
if (GGML_OPENCL_EMBED_KERNELS)
|
||||||
add_compile_definitions(GGML_OPENCL_EMBED_KERNELS)
|
add_compile_definitions(GGML_OPENCL_EMBED_KERNELS)
|
||||||
|
|
||||||
set(OPENCL2_CL_SOURCE_EMBED "${CMAKE_BINARY_DIR}/autogenerated/ggml-opencl2.cl.h")
|
set(OPENCL_CL_SOURCE_EMBED "${CMAKE_BINARY_DIR}/autogenerated/ggml-opencl.cl.h")
|
||||||
set(OPENCL2_MM_CL_SOURCE_EMBED "${CMAKE_BINARY_DIR}/autogenerated/ggml-opencl2_mm.cl.h")
|
set(OPENCL_MM_CL_SOURCE_EMBED "${CMAKE_BINARY_DIR}/autogenerated/ggml-opencl_mm.cl.h")
|
||||||
set(OPENCL2_CVT_CL_SOURCE_EMBED "${CMAKE_BINARY_DIR}/autogenerated/ggml-opencl2_cvt.cl.h")
|
set(OPENCL_CVT_CL_SOURCE_EMBED "${CMAKE_BINARY_DIR}/autogenerated/ggml-opencl_cvt.cl.h")
|
||||||
|
|
||||||
set(OPENCL2_GEMV_NOSHUFFLE_SOURCE_EMBED "${CMAKE_BINARY_DIR}/autogenerated/ggml-opencl2_gemv_noshuffle.cl.h")
|
set(OPENCL_GEMV_NOSHUFFLE_SOURCE_EMBED "${CMAKE_BINARY_DIR}/autogenerated/ggml-opencl_gemv_noshuffle.cl.h")
|
||||||
set(OPENCL2_GEMV_NOSHUFFLE_GENERAL_SOURCE_EMBED "${CMAKE_BINARY_DIR}/autogenerated/ggml-opencl2_gemv_noshuffle_general.cl.h")
|
set(OPENCL_GEMV_NOSHUFFLE_GENERAL_SOURCE_EMBED "${CMAKE_BINARY_DIR}/autogenerated/ggml-opencl_gemv_noshuffle_general.cl.h")
|
||||||
set(OPENCL2_MUL_MAT_Ab_Bi_8x4_SOURCE_EMBED "${CMAKE_BINARY_DIR}/autogenerated/ggml-opencl2_mul_mat_Ab_Bi_8x4.cl.h")
|
set(OPENCL_MUL_MAT_Ab_Bi_8x4_SOURCE_EMBED "${CMAKE_BINARY_DIR}/autogenerated/ggml-opencl_mul_mat_Ab_Bi_8x4.cl.h")
|
||||||
set(OPENCL2_TRANSPOSE_16_SOURCE_EMBED "${CMAKE_BINARY_DIR}/autogenerated/ggml-opencl2_transpose_16.cl.h")
|
set(OPENCL_TRANSPOSE_16_SOURCE_EMBED "${CMAKE_BINARY_DIR}/autogenerated/ggml-opencl_transpose_16.cl.h")
|
||||||
set(OPENCL2_TRANSPOSE_32_SOURCE_EMBED "${CMAKE_BINARY_DIR}/autogenerated/ggml-opencl2_transpose_32.cl.h")
|
set(OPENCL_TRANSPOSE_32_SOURCE_EMBED "${CMAKE_BINARY_DIR}/autogenerated/ggml-opencl_transpose_32.cl.h")
|
||||||
set(OPENCL2_TRANSPOSE_32_16_SOURCE_EMBED "${CMAKE_BINARY_DIR}/autogenerated/ggml-opencl2_transpose_32_16.cl.h")
|
set(OPENCL_TRANSPOSE_32_16_SOURCE_EMBED "${CMAKE_BINARY_DIR}/autogenerated/ggml-opencl_transpose_32_16.cl.h")
|
||||||
|
|
||||||
set(EMBED_KERNEL_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/kernels/embed_kernel.py")
|
set(EMBED_KERNEL_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/kernels/embed_kernel.py")
|
||||||
file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/autogenerated")
|
file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/autogenerated")
|
||||||
|
@ -45,101 +45,108 @@ if (OpenCL_FOUND)
|
||||||
|
|
||||||
# Python must be accessible from command line
|
# Python must be accessible from command line
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${OPENCL2_CL_SOURCE_EMBED}
|
OUTPUT ${OPENCL_CL_SOURCE_EMBED}
|
||||||
COMMAND ${Python3_EXECUTABLE} ${EMBED_KERNEL_SCRIPT}
|
COMMAND ${Python3_EXECUTABLE} ${EMBED_KERNEL_SCRIPT}
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/kernels/ggml-opencl2.cl
|
${CMAKE_CURRENT_SOURCE_DIR}/kernels/ggml-opencl.cl
|
||||||
${OPENCL2_CL_SOURCE_EMBED}
|
${OPENCL_CL_SOURCE_EMBED}
|
||||||
DEPENDS kernels/ggml-opencl2.cl ${EMBED_KERNEL_SCRIPT}
|
DEPENDS kernels/ggml-opencl.cl ${EMBED_KERNEL_SCRIPT}
|
||||||
COMMENT "Generate ggml-opencl2.cl.h"
|
COMMENT "Generate ggml-opencl2.cl.h"
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${OPENCL2_MM_CL_SOURCE_EMBED}
|
OUTPUT ${OPENCL_MM_CL_SOURCE_EMBED}
|
||||||
COMMAND ${Python3_EXECUTABLE} ${EMBED_KERNEL_SCRIPT}
|
COMMAND ${Python3_EXECUTABLE} ${EMBED_KERNEL_SCRIPT}
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/kernels/ggml-opencl2_mm.cl
|
${CMAKE_CURRENT_SOURCE_DIR}/kernels/ggml-opencl_mm.cl
|
||||||
${OPENCL2_MM_CL_SOURCE_EMBED}
|
${OPENCL_MM_CL_SOURCE_EMBED}
|
||||||
DEPENDS kernels/ggml-opencl2_mm.cl ${EMBED_KERNEL_SCRIPT}
|
DEPENDS kernels/ggml-opencl_mm.cl ${EMBED_KERNEL_SCRIPT}
|
||||||
COMMENT "Generate ggml-opencl2_mm.cl.h"
|
COMMENT "Generate ggml-opencl_mm.cl.h"
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${OPENCL2_CVT_CL_SOURCE_EMBED}
|
OUTPUT ${OPENCL_CVT_CL_SOURCE_EMBED}
|
||||||
COMMAND ${Python3_EXECUTABLE} ${EMBED_KERNEL_SCRIPT}
|
COMMAND ${Python3_EXECUTABLE} ${EMBED_KERNEL_SCRIPT}
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/kernels/ggml-opencl2_cvt.cl
|
${CMAKE_CURRENT_SOURCE_DIR}/kernels/ggml-opencl_cvt.cl
|
||||||
${OPENCL2_CVT_CL_SOURCE_EMBED}
|
${OPENCL_CVT_CL_SOURCE_EMBED}
|
||||||
DEPENDS kernels/ggml-opencl2_cvt.cl ${EMBED_KERNEL_SCRIPT}
|
DEPENDS kernels/ggml-opencl_cvt.cl ${EMBED_KERNEL_SCRIPT}
|
||||||
COMMENT "Generate ggml-opencl2_cvt.cl.h"
|
COMMENT "Generate ggml-opencl_cvt.cl.h"
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${OPENCL2_GEMV_NOSHUFFLE_SOURCE_EMBED}
|
OUTPUT ${OPENCL_GEMV_NOSHUFFLE_SOURCE_EMBED}
|
||||||
COMMAND ${Python3_EXECUTABLE} ${EMBED_KERNEL_SCRIPT}
|
COMMAND ${Python3_EXECUTABLE} ${EMBED_KERNEL_SCRIPT}
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/kernels/ggml-opencl2_gemv_noshuffle.cl
|
${CMAKE_CURRENT_SOURCE_DIR}/kernels/ggml-opencl_gemv_noshuffle.cl
|
||||||
${OPENCL2_GEMV_NOSHUFFLE_SOURCE_EMBED}
|
${OPENCL_GEMV_NOSHUFFLE_SOURCE_EMBED}
|
||||||
DEPENDS kernels/ggml-opencl2_gemv_noshuffle.cl ${EMBED_KERNEL_SCRIPT}
|
DEPENDS kernels/ggml-opencl_gemv_noshuffle.cl ${EMBED_KERNEL_SCRIPT}
|
||||||
COMMENT "Generate ggml-opencl2_gemv_noshuffle.cl.h"
|
COMMENT "Generate ggml-opencl_gemv_noshuffle.cl.h"
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${OPENCL2_GEMV_NOSHUFFLE_GENERAL_SOURCE_EMBED}
|
OUTPUT ${OPENCL_GEMV_NOSHUFFLE_GENERAL_SOURCE_EMBED}
|
||||||
COMMAND ${Python3_EXECUTABLE} ${EMBED_KERNEL_SCRIPT}
|
COMMAND ${Python3_EXECUTABLE} ${EMBED_KERNEL_SCRIPT}
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/kernels/ggml-opencl2_gemv_noshuffle_general.cl
|
${CMAKE_CURRENT_SOURCE_DIR}/kernels/ggml-opencl_gemv_noshuffle_general.cl
|
||||||
${OPENCL2_GEMV_NOSHUFFLE_GENERAL_SOURCE_EMBED}
|
${OPENCL_GEMV_NOSHUFFLE_GENERAL_SOURCE_EMBED}
|
||||||
DEPENDS kernels/ggml-opencl2_gemv_noshuffle_general.cl ${EMBED_KERNEL_SCRIPT}
|
DEPENDS kernels/ggml-opencl_gemv_noshuffle_general.cl ${EMBED_KERNEL_SCRIPT}
|
||||||
COMMENT "Generate ggml-opencl2_gemv_noshuffle_general.cl.h"
|
COMMENT "Generate ggml-opencl_gemv_noshuffle_general.cl.h"
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${OPENCL2_MUL_MAT_Ab_Bi_8x4_SOURCE_EMBED}
|
OUTPUT ${OPENCL_MUL_MAT_Ab_Bi_8x4_SOURCE_EMBED}
|
||||||
COMMAND ${Python3_EXECUTABLE} ${EMBED_KERNEL_SCRIPT}
|
COMMAND ${Python3_EXECUTABLE} ${EMBED_KERNEL_SCRIPT}
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/kernels/ggml-opencl2_mul_mat_Ab_Bi_8x4.cl
|
${CMAKE_CURRENT_SOURCE_DIR}/kernels/ggml-opencl_mul_mat_Ab_Bi_8x4.cl
|
||||||
${OPENCL2_MUL_MAT_Ab_Bi_8x4_SOURCE_EMBED}
|
${OPENCL_MUL_MAT_Ab_Bi_8x4_SOURCE_EMBED}
|
||||||
DEPENDS kernels/ggml-opencl2_mul_mat_Ab_Bi_8x4.cl ${EMBED_KERNEL_SCRIPT}
|
DEPENDS kernels/ggml-opencl_mul_mat_Ab_Bi_8x4.cl ${EMBED_KERNEL_SCRIPT}
|
||||||
COMMENT "Generate ggml-opencl2_mul_mat_Ab_Bi_8x4.cl.cl.h"
|
COMMENT "Generate ggml-opencl_mul_mat_Ab_Bi_8x4.cl.cl.h"
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${OPENCL2_TRANSPOSE_16_SOURCE_EMBED}
|
OUTPUT ${OPENCL_TRANSPOSE_16_SOURCE_EMBED}
|
||||||
COMMAND ${Python3_EXECUTABLE} ${EMBED_KERNEL_SCRIPT}
|
COMMAND ${Python3_EXECUTABLE} ${EMBED_KERNEL_SCRIPT}
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/kernels/ggml-opencl2_transpose_16.cl
|
${CMAKE_CURRENT_SOURCE_DIR}/kernels/ggml-opencl_transpose_16.cl
|
||||||
${OPENCL2_TRANSPOSE_16_SOURCE_EMBED}
|
${OPENCL_TRANSPOSE_16_SOURCE_EMBED}
|
||||||
DEPENDS kernels/ggml-opencl2_transpose_16.cl ${EMBED_KERNEL_SCRIPT}
|
DEPENDS kernels/ggml-opencl_transpose_16.cl ${EMBED_KERNEL_SCRIPT}
|
||||||
COMMENT "Generate ggml-opencl2_transpose_16.cl.h"
|
COMMENT "Generate ggml-opencl_transpose_16.cl.h"
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${OPENCL2_TRANSPOSE_32_SOURCE_EMBED}
|
OUTPUT ${OPENCL_TRANSPOSE_32_SOURCE_EMBED}
|
||||||
COMMAND ${Python3_EXECUTABLE} ${EMBED_KERNEL_SCRIPT}
|
COMMAND ${Python3_EXECUTABLE} ${EMBED_KERNEL_SCRIPT}
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/kernels/ggml-opencl2_transpose_32.cl
|
${CMAKE_CURRENT_SOURCE_DIR}/kernels/ggml-opencl_transpose_32.cl
|
||||||
${OPENCL2_TRANSPOSE_32_SOURCE_EMBED}
|
${OPENCL_TRANSPOSE_32_SOURCE_EMBED}
|
||||||
DEPENDS kernels/ggml-opencl2_transpose_32.cl ${EMBED_KERNEL_SCRIPT}
|
DEPENDS kernels/ggml-opencl_transpose_32.cl ${EMBED_KERNEL_SCRIPT}
|
||||||
COMMENT "Generate ggml-opencl2_transpose_32.cl.h"
|
COMMENT "Generate ggml-opencl_transpose_32.cl.h"
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${OPENCL2_TRANSPOSE_32_16_SOURCE_EMBED}
|
OUTPUT ${OPENCL_TRANSPOSE_32_16_SOURCE_EMBED}
|
||||||
COMMAND ${Python3_EXECUTABLE} ${EMBED_KERNEL_SCRIPT}
|
COMMAND ${Python3_EXECUTABLE} ${EMBED_KERNEL_SCRIPT}
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/kernels/ggml-opencl2_transpose_32_16.cl
|
${CMAKE_CURRENT_SOURCE_DIR}/kernels/ggml-opencl_transpose_32_16.cl
|
||||||
${OPENCL2_TRANSPOSE_32_16_SOURCE_EMBED}
|
${OPENCL_TRANSPOSE_32_16_SOURCE_EMBED}
|
||||||
DEPENDS kernels/ggml-opencl2_transpose_32_16.cl ${EMBED_KERNEL_SCRIPT}
|
DEPENDS kernels/ggml-opencl_transpose_32_16.cl ${EMBED_KERNEL_SCRIPT}
|
||||||
COMMENT "Generate ggml-opencl2_transpose_32_16.cl.h"
|
COMMENT "Generate ggml-opencl_transpose_32_16.cl.h"
|
||||||
)
|
)
|
||||||
|
|
||||||
target_sources(${TARGET_NAME} PRIVATE
|
target_sources(${TARGET_NAME} PRIVATE
|
||||||
${OPENCL2_CL_SOURCE_EMBED}
|
${OPENCL_CL_SOURCE_EMBED}
|
||||||
${OPENCL2_MM_CL_SOURCE_EMBED}
|
${OPENCL_MM_CL_SOURCE_EMBED}
|
||||||
${OPENCL2_CVT_CL_SOURCE_EMBED}
|
${OPENCL_CVT_CL_SOURCE_EMBED}
|
||||||
${OPENCL2_GEMV_NOSHUFFLE_SOURCE_EMBED}
|
${OPENCL_GEMV_NOSHUFFLE_SOURCE_EMBED}
|
||||||
${OPENCL2_GEMV_NOSHUFFLE_GENERAL_SOURCE_EMBED}
|
${OPENCL_GEMV_NOSHUFFLE_GENERAL_SOURCE_EMBED}
|
||||||
${OPENCL2_MUL_MAT_Ab_Bi_8x4_SOURCE_EMBED}
|
${OPENCL_MUL_MAT_Ab_Bi_8x4_SOURCE_EMBED}
|
||||||
${OPENCL2_TRANSPOSE_16_SOURCE_EMBED}
|
${OPENCL_TRANSPOSE_16_SOURCE_EMBED}
|
||||||
${OPENCL2_TRANSPOSE_32_SOURCE_EMBED}
|
${OPENCL_TRANSPOSE_32_SOURCE_EMBED}
|
||||||
${OPENCL2_TRANSPOSE_32_16_SOURCE_EMBED})
|
${OPENCL_TRANSPOSE_32_16_SOURCE_EMBED})
|
||||||
else ()
|
else ()
|
||||||
# copy ggml-opencl.cl to bin directory
|
# copy ggml-opencl.cl to bin directory
|
||||||
configure_file(kernels/ggml-opencl2.cl ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ggml-opencl2.cl COPYONLY)
|
configure_file(kernels/ggml-opencl.cl ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ggml-opencl.cl COPYONLY)
|
||||||
configure_file(kernels/ggml-opencl2_mm.cl ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ggml-opencl2_mm.cl COPYONLY)
|
configure_file(kernels/ggml-opencl_mm.cl ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ggml-opencl_mm.cl COPYONLY)
|
||||||
configure_file(kernels/ggml-opencl2_cvt.cl ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ggml-opencl2_cvt.cl COPYONLY)
|
configure_file(kernels/ggml-opencl_cvt.cl ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ggml-opencl_cvt.cl COPYONLY)
|
||||||
|
|
||||||
|
configure_file(kernels/ggml-opencl_gemv_noshuffle.cl ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ggml-opencl_gemv_noshuffle.cl COPYONLY)
|
||||||
|
configure_file(kernels/ggml-opencl_gemv_noshuffle_general.cl ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ggml-opencl_gemv_noshuffle_general.cl COPYONLY)
|
||||||
|
configure_file(kernels/ggml-opencl_mul_mat_Ab_Bi_8x4.cl ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ggml-opencl_mul_mat_Ab_Bi_8x4.cl COPYONLY)
|
||||||
|
configure_file(kernels/ggml-opencl_transpose_16.cl ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ggml-opencl_transpose_16.cl COPYONLY)
|
||||||
|
configure_file(kernels/ggml-opencl_transpose_32.cl ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ggml-opencl_transpose_32.cl COPYONLY)
|
||||||
|
configure_file(kernels/ggml-opencl_transpose_32_16.cl ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ggml-opencl_transpose_32_16.cl COPYONLY)
|
||||||
endif ()
|
endif ()
|
||||||
else ()
|
else ()
|
||||||
message(WARNING "OpenCL not found")
|
message(WARNING "OpenCL not found")
|
||||||
|
|
|
@ -539,10 +539,10 @@ static ggml_backend_opencl2_context * ggml_cl2_init(ggml_backend_dev_t dev) {
|
||||||
|
|
||||||
#ifdef GGML_OPENCL_EMBED_KERNELS
|
#ifdef GGML_OPENCL_EMBED_KERNELS
|
||||||
const std::string kernel_src {
|
const std::string kernel_src {
|
||||||
#include "ggml-opencl2.cl.h"
|
#include "ggml-opencl.cl.h"
|
||||||
};
|
};
|
||||||
#else
|
#else
|
||||||
const std::string kernel_src = read_file("ggml-opencl2.cl");
|
const std::string kernel_src = read_file("ggml-opencl.cl");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
std::string compile_opts =
|
std::string compile_opts =
|
||||||
|
@ -597,10 +597,10 @@ static ggml_backend_opencl2_context * ggml_cl2_init(ggml_backend_dev_t dev) {
|
||||||
// Load additional mulmat kernels.
|
// Load additional mulmat kernels.
|
||||||
#ifdef GGML_OPENCL_EMBED_KERNELS
|
#ifdef GGML_OPENCL_EMBED_KERNELS
|
||||||
const std::string kernel_src_1 {
|
const std::string kernel_src_1 {
|
||||||
#include "ggml-opencl2_mm.cl.h"
|
#include "ggml-opencl_mm.cl.h"
|
||||||
};
|
};
|
||||||
#else
|
#else
|
||||||
const std::string kernel_src_1 = read_file("ggml-opencl2_mm.cl");
|
const std::string kernel_src_1 = read_file("ggml-opencl_mm.cl");
|
||||||
#endif
|
#endif
|
||||||
backend_ctx->program_1 = build_program_from_source(context, device, kernel_src_1.c_str(), compile_opts);
|
backend_ctx->program_1 = build_program_from_source(context, device, kernel_src_1.c_str(), compile_opts);
|
||||||
|
|
||||||
|
@ -613,10 +613,10 @@ static ggml_backend_opencl2_context * ggml_cl2_init(ggml_backend_dev_t dev) {
|
||||||
// Load additional data conversion kernels.
|
// Load additional data conversion kernels.
|
||||||
#ifdef GGML_OPENCL_EMBED_KERNELS
|
#ifdef GGML_OPENCL_EMBED_KERNELS
|
||||||
const std::string kernel_src_2 {
|
const std::string kernel_src_2 {
|
||||||
#include "ggml-opencl2_cvt.cl.h"
|
#include "ggml-opencl_cvt.cl.h"
|
||||||
};
|
};
|
||||||
#else
|
#else
|
||||||
const std::string kernel_src_2 = read_file("ggml-opencl2_cvt.cl");
|
const std::string kernel_src_2 = read_file("ggml-opencl_cvt.cl");
|
||||||
#endif
|
#endif
|
||||||
backend_ctx->program_2 = build_program_from_source(context, device, kernel_src_2.c_str(), compile_opts);
|
backend_ctx->program_2 = build_program_from_source(context, device, kernel_src_2.c_str(), compile_opts);
|
||||||
|
|
||||||
|
@ -626,30 +626,30 @@ static ggml_backend_opencl2_context * ggml_cl2_init(ggml_backend_dev_t dev) {
|
||||||
#ifdef GGML_OPENCL_USE_ADRENO_KERNELS
|
#ifdef GGML_OPENCL_USE_ADRENO_KERNELS
|
||||||
#ifdef GGML_OPENCL_EMBED_KERNELS
|
#ifdef GGML_OPENCL_EMBED_KERNELS
|
||||||
const std::string transpose_32_src {
|
const std::string transpose_32_src {
|
||||||
#include "ggml-opencl2_transpose_32.cl.h"
|
#include "ggml-opencl_transpose_32.cl.h"
|
||||||
};
|
};
|
||||||
#else
|
#else
|
||||||
const std::string transpose_32_src = read_file("ggml-opencl2_transpose_32.cl");
|
const std::string transpose_32_src = read_file("ggml-opencl_transpose_32.cl");
|
||||||
#endif
|
#endif
|
||||||
backend_ctx->program_transpose_32 = build_program_from_source(context, device, transpose_32_src.c_str(), compile_opts);
|
backend_ctx->program_transpose_32 = build_program_from_source(context, device, transpose_32_src.c_str(), compile_opts);
|
||||||
CL_CHECK((backend_ctx->kernel_transpose_32 = clCreateKernel(backend_ctx->program_transpose_32, "kernel_transpose_32", &err), err));
|
CL_CHECK((backend_ctx->kernel_transpose_32 = clCreateKernel(backend_ctx->program_transpose_32, "kernel_transpose_32", &err), err));
|
||||||
|
|
||||||
#ifdef GGML_OPENCL_EMBED_KERNELS
|
#ifdef GGML_OPENCL_EMBED_KERNELS
|
||||||
const std::string transpose_32_16_src {
|
const std::string transpose_32_16_src {
|
||||||
#include "ggml-opencl2_transpose_32_16.cl.h"
|
#include "ggml-opencl_transpose_32_16.cl.h"
|
||||||
};
|
};
|
||||||
#else
|
#else
|
||||||
const std::string transpose_32_16_src = read_file("ggml-opencl2_transpose_32_16.cl");
|
const std::string transpose_32_16_src = read_file("ggml-opencl_transpose_32_16.cl");
|
||||||
#endif
|
#endif
|
||||||
backend_ctx->program_transpose_32_16 = build_program_from_source(context, device, transpose_32_16_src.c_str(), compile_opts);
|
backend_ctx->program_transpose_32_16 = build_program_from_source(context, device, transpose_32_16_src.c_str(), compile_opts);
|
||||||
CL_CHECK((backend_ctx->kernel_transpose_32_16 = clCreateKernel(backend_ctx->program_transpose_32_16, "kernel_transpose_32_16", &err), err));
|
CL_CHECK((backend_ctx->kernel_transpose_32_16 = clCreateKernel(backend_ctx->program_transpose_32_16, "kernel_transpose_32_16", &err), err));
|
||||||
|
|
||||||
#ifdef GGML_OPENCL_EMBED_KERNELS
|
#ifdef GGML_OPENCL_EMBED_KERNELS
|
||||||
const std::string transpose_16_src {
|
const std::string transpose_16_src {
|
||||||
#include "ggml-opencl2_transpose_16.cl.h"
|
#include "ggml-opencl_transpose_16.cl.h"
|
||||||
};
|
};
|
||||||
#else
|
#else
|
||||||
const std::string transpose_16_src = read_file("ggml-opencl2_transpose_16.cl");
|
const std::string transpose_16_src = read_file("ggml-opencl_transpose_16.cl");
|
||||||
#endif
|
#endif
|
||||||
backend_ctx->program_transpose_16 = build_program_from_source(context, device, transpose_16_src.c_str(), compile_opts);
|
backend_ctx->program_transpose_16 = build_program_from_source(context, device, transpose_16_src.c_str(), compile_opts);
|
||||||
CL_CHECK((backend_ctx->kernel_transpose_16 = clCreateKernel(backend_ctx->program_transpose_16, "kernel_transpose_16", &err), err));
|
CL_CHECK((backend_ctx->kernel_transpose_16 = clCreateKernel(backend_ctx->program_transpose_16, "kernel_transpose_16", &err), err));
|
||||||
|
@ -664,10 +664,10 @@ static ggml_backend_opencl2_context * ggml_cl2_init(ggml_backend_dev_t dev) {
|
||||||
}
|
}
|
||||||
#ifdef GGML_OPENCL_EMBED_KERNELS
|
#ifdef GGML_OPENCL_EMBED_KERNELS
|
||||||
const std::string kernel_src_CL_gemv_general {
|
const std::string kernel_src_CL_gemv_general {
|
||||||
#include "ggml-opencl2_gemv_noshuffle_general.cl.h"
|
#include "ggml-opencl_gemv_noshuffle_general.cl.h"
|
||||||
};
|
};
|
||||||
#else
|
#else
|
||||||
const std::string kernel_src_CL_gemv_general = read_file("ggml-opencl2_gemv_noshuffle_general.cl");
|
const std::string kernel_src_CL_gemv_general = read_file("ggml-opencl_gemv_noshuffle_general.cl");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
backend_ctx->program_CL_gemv_general = build_program_from_source(
|
backend_ctx->program_CL_gemv_general = build_program_from_source(
|
||||||
|
@ -686,10 +686,10 @@ static ggml_backend_opencl2_context * ggml_cl2_init(ggml_backend_dev_t dev) {
|
||||||
}
|
}
|
||||||
#ifdef GGML_OPENCL_EMBED_KERNELS
|
#ifdef GGML_OPENCL_EMBED_KERNELS
|
||||||
const std::string kernel_src_CL_gemv {
|
const std::string kernel_src_CL_gemv {
|
||||||
#include "ggml-opencl2_gemv_noshuffle.cl.h"
|
#include "ggml-opencl_gemv_noshuffle.cl.h"
|
||||||
};
|
};
|
||||||
#else
|
#else
|
||||||
const std::string kernel_src_CL_gemv = read_file("ggml-opencl2_gemv_noshuffle.cl");
|
const std::string kernel_src_CL_gemv = read_file("ggml-opencl_gemv_noshuffle.cl");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
backend_ctx->program_CL_gemv_4096_1_4096 = build_program_from_source(
|
backend_ctx->program_CL_gemv_4096_1_4096 = build_program_from_source(
|
||||||
|
@ -743,10 +743,10 @@ static ggml_backend_opencl2_context * ggml_cl2_init(ggml_backend_dev_t dev) {
|
||||||
// Gemm
|
// Gemm
|
||||||
#ifdef GGML_OPENCL_EMBED_KERNELS
|
#ifdef GGML_OPENCL_EMBED_KERNELS
|
||||||
const std::string kernel_src_CL_gemm {
|
const std::string kernel_src_CL_gemm {
|
||||||
#include "ggml-opencl2_mul_mat_Ab_Bi_8x4.cl.h"
|
#include "ggml-opencl_mul_mat_Ab_Bi_8x4.cl.h"
|
||||||
};
|
};
|
||||||
#else
|
#else
|
||||||
const std::string kernel_src_CL_gemm = read_file("ggml-opencl2_mul_mat_Ab_Bi_8x4.cl");
|
const std::string kernel_src_CL_gemm = read_file("ggml-opencl_mul_mat_Ab_Bi_8x4.cl");
|
||||||
#endif
|
#endif
|
||||||
backend_ctx->program_CL_gemm = build_program_from_source(context, device, kernel_src_CL_gemm.c_str(), compile_opts);
|
backend_ctx->program_CL_gemm = build_program_from_source(context, device, kernel_src_CL_gemm.c_str(), compile_opts);
|
||||||
CL_CHECK((backend_ctx->CL_mul_mat_Ab_Bi_8x4 = clCreateKernel(backend_ctx->program_CL_gemm, "kernel_mul_mat_Ab_Bi_8x4", &err), err));
|
CL_CHECK((backend_ctx->CL_mul_mat_Ab_Bi_8x4 = clCreateKernel(backend_ctx->program_CL_gemm, "kernel_mul_mat_Ab_Bi_8x4", &err), err));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue