Watch
1
0
Fork
You've already forked NeuroBook
0
forked from rosh/NeuroBook
NeuroBook/Include/algotrading/mult_vect_ocl.cl

48 lines
3.4 KiB
Common Lisp

2025-05-30 16:12:30 +02:00
<EFBFBD><EFBFBD>//--- By default, support for double type is disabled in most GPUs
//--- cl_khr_fp64 directive enables support for double type
//--- it can be used if double type is supported by hardware
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
//+------------------------------------------------------------------+
//| OpenCL kernel for product of a matrix by a vector |
//+------------------------------------------------------------------+
TYPE4 ToVect(__global TYPE *array, int start, int size, int shift)
{
TYPE4 result = (TYPE4)0;
if(start < size)
{
switch(size - start)
{
case 1:
result = (TYPE4)(array[shift+start], 0, 0, 0);
break;
case 2:
result = (TYPE4)(array[shift+start], array[shift+start + 1], 0, 0);
break;
case 3:
result = (TYPE4)(array[shift+start], array[shift+start + 1], array[shift+start + 2], 0);
break;
default: