Caffe2 - C++ API
A deep learning, cross platform ML framework
Data Structures | Public Member Functions | Data Fields | Static Public Attributes
GLConvolution Class Reference

Copyright (c) 2016-present, Facebook, Inc. More...

#include <GLConvolution.h>

Inheritance diagram for GLConvolution:

Data Structures

struct  descriptor

Public Member Functions

 GLConvolution (const descriptor &_geometry, const float *_kernel, const float *_bias, const float *_prelu_scale=nullptr, int _prelu_scale_size=0, int _input_batch_size=1, int _output_batch_size=1, int _input_tiles=1, int _output_tiles=1, int _input_tile_chunk_size=1, int _output_tile_chunk_size=1, int _input_tile_batch_size=1, int _output_tile_batch_size=1, bool _tiling=false)
template<typename T >
void convolution (const GLImageVector< T > &input_images, const GLImageVector< T > &output_images)
- Public Member Functions inherited from GLFilter
 GLFilter (const std::string kernel_name, const std::string vertex_shader, const std::string fragment_shader, const std::vector< binding * > uniforms, const std::vector< binding * > uniform_blocks={}, const std::vector< binding * > attributes={}, const replacements_t &replacements={})
 Copyright (c) 2016-present, Facebook, Inc. More...
void throwRuntimeError (std::function< void(std::stringstream &errmsg)> error_formatter) const
void checkGLError (std::function< void(std::stringstream &errmsg)> error_formatter) const
template<typename T >
void attach_uniform_buffer (const binding *block, GLuint bindingPoint, std::function< void(T *, size_t)> loader)
void run (const std::vector< texture_attachment > &input, const std::vector< const GLTexture * > &output, std::function< void(void)> uniforms_initializer, int width, int height)
void releaseBuffers ()
void deleteProgram ()
void deleteBindings ()

Data Fields

const float * kernel
const float * bias
const float * prelu_scale
bindinginputData [MaxInputBatchSize]
bindingpreviousData [MaxOutputBatchSize]
bindingkernel_block [MaxInputBatchSize]
const descriptor geometry
const int prelu_scale_size
const int input_batch_size
const int output_batch_size
const int input_tiles
const int output_tiles
const int input_tile_chunk_size
const int output_tile_chunk_size
const int input_tile_batch_size
const int output_tile_batch_size
const bool tiling

Static Public Attributes

static constexpr int MaxInputBatchSize = 8
static constexpr int MaxOutputBatchSize = 4
static const char * fragment_shader
- Static Public Attributes inherited from GLFilter
static const char * vertex_shader

Additional Inherited Members

- Public Types inherited from GLFilter
typedef std::vector< std::pair< std::string, std::string > > replacements_t
- Protected Attributes inherited from GLFilter
const std::string kernel_name
GLuint program = 0
GLuint frameBuffer = 0
GLuint uniformBlock [kMaxUniformBlocks] = {0}
GLint blockSize [kMaxUniformBlocks] = {0}
bool frame_buffer_initialized = false
- Static Protected Attributes inherited from GLFilter
static constexpr int kMaxUniformBlocks = 12
static constexpr bool check_opengl_errors = true

Detailed Description

Copyright (c) 2016-present, Facebook, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Definition at line 23 of file GLConvolution.h.

The documentation for this class was generated from the following files: