← Back to C-Kernel-Engine Docs Doxygen Source Documentation
 
Loading...
Searching...
No Matches
audio_conv1d_parallel.c File Reference
#include "ckernel_audio_conv_checked.h"
#include "ck_threadpool.h"
#include "audio_conv1d_checked_internal.h"
#include <limits.h>

Go to the source code of this file.

Functions

int audio_conv1d_checked_channel_major_f32_avx2_parallel (const float *input, size_t input_elements, size_t input_stride, const float *weight, size_t weight_elements, const float *bias, size_t bias_elements, float *output, size_t output_elements, size_t output_stride, float *scratch, size_t scratch_elements, size_t input_channels, size_t output_channels, size_t input_frames, size_t kernel_size, size_t stride, size_t padding, size_t output_frames, void *worker_pool, size_t worker_count)
 
int audio_conv1d_dilated_checked_channel_major_f32_avx2_parallel (const float *input, size_t input_elements, size_t input_stride, const float *weight, size_t weight_elements, const float *bias, size_t bias_elements, float *output, size_t output_elements, size_t output_stride, float *scratch, size_t scratch_elements, size_t input_channels, size_t output_channels, size_t input_frames, size_t kernel_size, size_t stride, size_t padding, size_t dilation, size_t output_frames, void *worker_pool, size_t worker_count)
 
static int audio_conv1d_parallel_checked_impl (const float *input, size_t input_elements, size_t input_stride, const float *weight, size_t weight_elements, const float *bias, size_t bias_elements, float *output, size_t output_elements, size_t output_stride, float *scratch, size_t scratch_elements, size_t input_channels, size_t output_channels, size_t input_frames, size_t kernel_size, size_t stride, size_t padding, size_t dilation, size_t output_frames, void *worker_pool, size_t worker_count)
 

Function Documentation

◆ audio_conv1d_checked_channel_major_f32_avx2_parallel()

int audio_conv1d_checked_channel_major_f32_avx2_parallel ( const float *  input,
size_t  input_elements,
size_t  input_stride,
const float *  weight,
size_t  weight_elements,
const float *  bias,
size_t  bias_elements,
float *  output,
size_t  output_elements,
size_t  output_stride,
float *  scratch,
size_t  scratch_elements,
size_t  input_channels,
size_t  output_channels,
size_t  input_frames,
size_t  kernel_size,
size_t  stride,
size_t  padding,
size_t  output_frames,
void *  worker_pool,
size_t  worker_count 
)

Definition at line 82 of file audio_conv1d_parallel.c.

91{
92 return audio_conv1d_parallel_checked_impl(input, input_elements,
93 input_stride, weight, weight_elements, bias, bias_elements, output,
94 output_elements, output_stride, scratch, scratch_elements,
95 input_channels, output_channels, input_frames, kernel_size, stride,
96 padding, 1, output_frames, worker_pool, worker_count);
97}
static int audio_conv1d_parallel_checked_impl(const float *input, size_t input_elements, size_t input_stride, const float *weight, size_t weight_elements, const float *bias, size_t bias_elements, float *output, size_t output_elements, size_t output_stride, float *scratch, size_t scratch_elements, size_t input_channels, size_t output_channels, size_t input_frames, size_t kernel_size, size_t stride, size_t padding, size_t dilation, size_t output_frames, void *worker_pool, size_t worker_count)

References audio_conv1d_parallel_checked_impl().

◆ audio_conv1d_dilated_checked_channel_major_f32_avx2_parallel()

int audio_conv1d_dilated_checked_channel_major_f32_avx2_parallel ( const float *  input,
size_t  input_elements,
size_t  input_stride,
const float *  weight,
size_t  weight_elements,
const float *  bias,
size_t  bias_elements,
float *  output,
size_t  output_elements,
size_t  output_stride,
float *  scratch,
size_t  scratch_elements,
size_t  input_channels,
size_t  output_channels,
size_t  input_frames,
size_t  kernel_size,
size_t  stride,
size_t  padding,
size_t  dilation,
size_t  output_frames,
void *  worker_pool,
size_t  worker_count 
)

Definition at line 99 of file audio_conv1d_parallel.c.

108{
109 return audio_conv1d_parallel_checked_impl(input, input_elements,
110 input_stride, weight, weight_elements, bias, bias_elements, output,
111 output_elements, output_stride, scratch, scratch_elements,
112 input_channels, output_channels, input_frames, kernel_size, stride,
113 padding, dilation, output_frames, worker_pool, worker_count);
114}

References audio_conv1d_parallel_checked_impl().

◆ audio_conv1d_parallel_checked_impl()

static int audio_conv1d_parallel_checked_impl ( const float *  input,
size_t  input_elements,
size_t  input_stride,
const float *  weight,
size_t  weight_elements,
const float *  bias,
size_t  bias_elements,
float *  output,
size_t  output_elements,
size_t  output_stride,
float *  scratch,
size_t  scratch_elements,
size_t  input_channels,
size_t  output_channels,
size_t  input_frames,
size_t  kernel_size,
size_t  stride,
size_t  padding,
size_t  dilation,
size_t  output_frames,
void *  worker_pool,
size_t  worker_count 
)
static

Definition at line 45 of file audio_conv1d_parallel.c.

54{
55#if (defined(__x86_64__) || defined(__i386__)) && \
56 (defined(__GNUC__) || defined(__clang__))
59 if (!worker_pool || worker_count == 0 || worker_count > INT_MAX)
61 ck_audio_conv1d_parallel_context context = {
62 .pool = (ck_threadpool_t *)worker_pool,
63 .workers = (int)worker_count,
64 };
65 return ck_audio_conv1d_checked_execute(input, input_elements, input_stride,
66 weight, weight_elements, bias, bias_elements, output, output_elements,
67 output_stride, scratch, scratch_elements, input_channels,
68 output_channels, input_frames, kernel_size, stride, padding, dilation,
69 output_frames, audio_conv1d_compute_parallel, &context);
70#else
71 (void)input; (void)input_elements; (void)input_stride;
72 (void)weight; (void)weight_elements; (void)bias; (void)bias_elements;
73 (void)output; (void)output_elements; (void)output_stride;
74 (void)scratch; (void)scratch_elements; (void)input_channels;
75 (void)output_channels; (void)input_frames; (void)kernel_size;
76 (void)stride; (void)padding; (void)dilation; (void)output_frames;
77 (void)worker_pool; (void)worker_count;
79#endif
80}
int ck_audio_conv1d_checked_execute(const float *input, size_t input_elements, size_t input_stride, const float *weight, size_t weight_elements, const float *bias, size_t bias_elements, float *output, size_t output_elements, size_t output_stride, float *scratch, size_t scratch_elements, size_t input_channels, size_t output_channels, size_t input_frames, size_t kernel_size, size_t stride, size_t padding, size_t dilation, size_t output_frames, ck_audio_conv1d_compute_fn compute, void *compute_context)
int audio_conv1d_checked_avx2_fma_available(void)
@ CK_AUDIO_CONV_CHECKED_UNSUPPORTED
@ CK_AUDIO_CONV_CHECKED_INVALID

References audio_conv1d_checked_avx2_fma_available(), ck_audio_conv1d_checked_execute(), CK_AUDIO_CONV_CHECKED_INVALID, and CK_AUDIO_CONV_CHECKED_UNSUPPORTED.

Referenced by audio_conv1d_checked_channel_major_f32_avx2_parallel(), and audio_conv1d_dilated_checked_channel_major_f32_avx2_parallel().