mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2025-11-15 11:17:31 +00:00
* opencl: refactor - split the kernel files --------- Co-authored-by: Shangqing Gu <quic_shawngu@quicinc.com> * opencl: split more kernels into separate files * opencl: specify subgroup size instead of querying it * opencl: refine Adreno cl compiler version parsing * opencl: skip some kernels not used by Adreno on old compilers * opencl: refine logic for selecting Adreno kernels * opencl: refine Adreno cl compiler version * opencl: cleanup preprocessor for kernels * opencl: consider Adreno CL compiler on Windows * opencl: add final newline for `mul_mv_f16_f16.cl` --------- Co-authored-by: Shangqing Gu <quic_shawngu@quicinc.com>
31 lines
897 B
Common Lisp
31 lines
897 B
Common Lisp
#pragma OPENCL EXTENSION cl_khr_fp16 : enable
|
|
|
|
//------------------------------------------------------------------------------
|
|
// silu
|
|
//------------------------------------------------------------------------------
|
|
kernel void kernel_silu(
|
|
global float * src0,
|
|
ulong offset0,
|
|
global float * dst,
|
|
ulong offsetd
|
|
) {
|
|
src0 = (global float*)((global char*)src0 + offset0);
|
|
dst = (global float*)((global char*)dst + offsetd);
|
|
|
|
float x = src0[get_global_id(0)];
|
|
dst[get_global_id(0)] = x / (1.0f + exp(-x));
|
|
}
|
|
|
|
kernel void kernel_silu_4(
|
|
global float4 * src0,
|
|
ulong offset0,
|
|
global float4 * dst,
|
|
ulong offsetd
|
|
) {
|
|
src0 = (global float4*)((global char*)src0 + offset0);
|
|
dst = (global float4*)((global char*)dst + offsetd);
|
|
|
|
float4 x = src0[get_global_id(0)];
|
|
dst[get_global_id(0)] = x / (1.0f + exp(-x));
|
|
}
|