Xmipp  v3.23.11-Nereus
Static Public Member Functions | List of all members
cuFFTAdvisor::Advisor Class Reference

#include <advisor.h>

Static Public Member Functions

static std::vector< BenchmarkResult const * > * benchmark (int device, int x, int y=1, int z=1, int n=1, Tristate::Tristate isBatched=Tristate::TRUE, Tristate::Tristate isFloat=Tristate::TRUE, Tristate::Tristate isForward=Tristate::TRUE, Tristate::Tristate isInPlace=Tristate::TRUE, Tristate::Tristate isReal=Tristate::TRUE)
 
static std::vector< Transform const * > * recommend (int howMany, int device, int x, int y=1, int z=1, int n=1, Tristate::Tristate isBatched=Tristate::TRUE, Tristate::Tristate isFloat=Tristate::TRUE, Tristate::Tristate isForward=Tristate::TRUE, Tristate::Tristate isInPlace=Tristate::TRUE, Tristate::Tristate isReal=Tristate::TRUE, int maxSignalInc=INT_MAX, int maxMemory=INT_MAX, bool allowTransposition=false, bool squareOnly=false, bool crop=false)
 
static std::vector< BenchmarkResult const * > * find (int howMany, int device, int x, int y=1, int z=1, int n=1, Tristate::Tristate isBatched=Tristate::TRUE, Tristate::Tristate isFloat=Tristate::TRUE, Tristate::Tristate isForward=Tristate::TRUE, Tristate::Tristate isInPlace=Tristate::TRUE, Tristate::Tristate isReal=Tristate::TRUE, int maxSignalInc=INT_MAX, int maxMemory=INT_MAX, bool allowTransposition=false, bool squareOnly=false, bool crop=false)
 

Detailed Description

Definition at line 10 of file advisor.h.

Member Function Documentation

◆ benchmark()

std::vector< BenchmarkResult const * > * cuFFTAdvisor::Advisor::benchmark ( int  device,
int  x,
int  y = 1,
int  z = 1,
int  n = 1,
Tristate::Tristate  isBatched = Tristate::TRUE,
Tristate::Tristate  isFloat = Tristate::TRUE,
Tristate::Tristate  isForward = Tristate::TRUE,
Tristate::Tristate  isInPlace = Tristate::TRUE,
Tristate::Tristate  isReal = Tristate::TRUE 
)
static

Definition at line 5 of file advisor.cpp.

8  {
9  Validator::validate(x, y, z, n, device);
10  std::vector<Transform const *> transforms;
11  TransformGenerator generator;
12  generator.generate(device, x, y, z, n, isBatched, isFloat, isForward,
13  isInPlace, isReal, transforms);
14  std::vector<BenchmarkResult const *> *result = benchmark(transforms);
15  return result;
16 }
static double * y
static void validate(int x, int y, int z, int n, int device)
Definition: validator.cpp:43
static std::vector< BenchmarkResult const * > * benchmark(int device, int x, int y=1, int z=1, int n=1, Tristate::Tristate isBatched=Tristate::TRUE, Tristate::Tristate isFloat=Tristate::TRUE, Tristate::Tristate isForward=Tristate::TRUE, Tristate::Tristate isInPlace=Tristate::TRUE, Tristate::Tristate isReal=Tristate::TRUE)
Definition: advisor.cpp:5
doublereal * x
double z
int * n

◆ find()

std::vector< BenchmarkResult const * > * cuFFTAdvisor::Advisor::find ( int  howMany,
int  device,
int  x,
int  y = 1,
int  z = 1,
int  n = 1,
Tristate::Tristate  isBatched = Tristate::TRUE,
Tristate::Tristate  isFloat = Tristate::TRUE,
Tristate::Tristate  isForward = Tristate::TRUE,
Tristate::Tristate  isInPlace = Tristate::TRUE,
Tristate::Tristate  isReal = Tristate::TRUE,
int  maxSignalInc = INT_MAX,
int  maxMemory = INT_MAX,
bool  allowTransposition = false,
bool  squareOnly = false,
bool  crop = false 
)
static

Definition at line 43 of file advisor.cpp.

48  {
49  std::vector<Transform const *> *candidates =
50  recommend(howMany, device, x, y, z, n, isBatched, isFloat, isForward,
51  isInPlace, isReal, maxSignalInc, maxMemory, allowTransposition,
52  squareOnly, crop);
53  std::vector<BenchmarkResult const *> *result = benchmark(*candidates);
54  std::sort(result->begin(), result->end(), BenchmarkResult::execSort);
55  delete candidates;
56  return result;
57 }
static double * y
static std::vector< BenchmarkResult const * > * benchmark(int device, int x, int y=1, int z=1, int n=1, Tristate::Tristate isBatched=Tristate::TRUE, Tristate::Tristate isFloat=Tristate::TRUE, Tristate::Tristate isForward=Tristate::TRUE, Tristate::Tristate isInPlace=Tristate::TRUE, Tristate::Tristate isReal=Tristate::TRUE)
Definition: advisor.cpp:5
doublereal * x
double z
void sort(struct DCEL_T *dcel)
Definition: sorting.cpp:18
static std::vector< Transform const * > * recommend(int howMany, int device, int x, int y=1, int z=1, int n=1, Tristate::Tristate isBatched=Tristate::TRUE, Tristate::Tristate isFloat=Tristate::TRUE, Tristate::Tristate isForward=Tristate::TRUE, Tristate::Tristate isInPlace=Tristate::TRUE, Tristate::Tristate isReal=Tristate::TRUE, int maxSignalInc=INT_MAX, int maxMemory=INT_MAX, bool allowTransposition=false, bool squareOnly=false, bool crop=false)
Definition: advisor.cpp:25
static bool execSort(const BenchmarkResult *l, const BenchmarkResult *r)
int * n

◆ recommend()

std::vector< Transform const * > * cuFFTAdvisor::Advisor::recommend ( int  howMany,
int  device,
int  x,
int  y = 1,
int  z = 1,
int  n = 1,
Tristate::Tristate  isBatched = Tristate::TRUE,
Tristate::Tristate  isFloat = Tristate::TRUE,
Tristate::Tristate  isForward = Tristate::TRUE,
Tristate::Tristate  isInPlace = Tristate::TRUE,
Tristate::Tristate  isReal = Tristate::TRUE,
int  maxSignalInc = INT_MAX,
int  maxMemory = INT_MAX,
bool  allowTransposition = false,
bool  squareOnly = false,
bool  crop = false 
)
static

Definition at line 25 of file advisor.cpp.

30  {
31  Validator::validate(device);
32  maxMemory = getMaxMemory(device, maxMemory);
33  Validator::validate(x, y, z, n, device, maxSignalInc, maxMemory, allowTransposition, squareOnly);
34  GeneralTransform tr = GeneralTransform(device, x, y, z, n, isBatched, isFloat,
35  isForward, isInPlace, isReal);
36 
37  SizeOptimizer optimizer(CudaVersion::V_8, tr, allowTransposition);
38  std::vector<const Transform *> *result =
39  optimizer.optimize(howMany, maxSignalInc, maxMemory, squareOnly, crop);
40  return result;
41 }
static double * y
static void validate(int x, int y, int z, int n, int device)
Definition: validator.cpp:43
doublereal * x
double z
int * n

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