- Much cleaner and more concise source - Better exceptions handling - Checks local minima to see if retuning is needed. Resolved conflicts: bench/blas.cpp include/isaac/backend/templates/mproduct.h include/isaac/driver/buffer.h lib/array.cpp lib/backend/templates/mproduct.cpp lib/driver/buffer.cpp python/setup.py tune/pysrc/autotune.py tune/pysrc/dataset.py tune/pysrc/misc_tools.py
35 lines
1.3 KiB
C++
35 lines
1.3 KiB
C++
#ifndef ISAAC_BACKEND_TEMPLATES_MAXPY_H
|
|
#define ISAAC_BACKEND_TEMPLATES_MAXPY_H
|
|
|
|
#include <vector>
|
|
#include "isaac/backend/templates/base.h"
|
|
|
|
namespace isaac
|
|
{
|
|
|
|
class maxpy_parameters : public base::parameters_type
|
|
{
|
|
public:
|
|
maxpy_parameters(unsigned int _simd_width, unsigned int _local_size_0, unsigned int _local_size_1, unsigned int _num_groups_0, unsigned int _num_groups_1, fetching_policy_type _fetching_policy);
|
|
|
|
unsigned int num_groups_0;
|
|
unsigned int num_groups_1;
|
|
fetching_policy_type fetching_policy;
|
|
};
|
|
|
|
class maxpy : public base_impl<maxpy, maxpy_parameters>
|
|
{
|
|
private:
|
|
int is_invalid_impl(driver::Device const &, expressions_tuple const &) const;
|
|
std::string generate_impl(const char * suffix, expressions_tuple const & expressions, driver::Device const & device, std::vector<mapping_type> const & mappings) const;
|
|
public:
|
|
maxpy(parameters_type const & parameters, binding_policy_t binding_policy = BIND_ALL_UNIQUE);
|
|
maxpy(unsigned int simd, unsigned int ls1, unsigned int ls2, unsigned int ng1, unsigned int ng2, fetching_policy_type fetch, binding_policy_t bind = BIND_ALL_UNIQUE);
|
|
std::vector<int_t> input_sizes(expressions_tuple const & expressions) const;
|
|
void enqueue(driver::CommandQueue & queue, driver::Program & program, const char * suffix, base & fallback, controller<expressions_tuple> const &);
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|