MCPcopy Create free account
hub / github.com/clMathLibraries/clFFT / initParams

Method initParams

src/library/action.transpose.cpp:105–190  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

103const std::string pmComplexOut("pmComplexOut");
104
105clfftStatus FFTGeneratedTransposeNonSquareAction::initParams()
106{
107
108 this->signature.fft_precision = this->plan->precision;
109 this->signature.fft_placeness = this->plan->placeness;
110 this->signature.fft_inputLayout = this->plan->inputLayout;
111 this->signature.fft_outputLayout = this->plan->outputLayout;
112 this->signature.fft_3StepTwiddle = false;
113 this->signature.nonSquareKernelType = this->plan->nonSquareKernelType;
114
115 this->signature.fft_realSpecial = this->plan->realSpecial;
116
117 this->signature.transOutHorizontal = this->plan->transOutHorizontal; // using the twiddle front flag to specify horizontal write
118 // we do this so as to reuse flags in FFTKernelGenKeyParams
119 // and to avoid making a new one
120
121 ARG_CHECK(this->plan->inStride.size() == this->plan->outStride.size());
122
123 if (CLFFT_INPLACE == this->signature.fft_placeness)
124 {
125 // If this is an in-place transform the
126 // input and output layout
127 // *MUST* be the same.
128 //
129 ARG_CHECK(this->signature.fft_inputLayout == this->signature.fft_outputLayout)
130
131 /* for (size_t u = this->plan->inStride.size(); u-- > 0; )
132 {
133 ARG_CHECK(this->plan->inStride[u] == this->plan->outStride[u]);
134 }*/
135 }
136
137 this->signature.fft_DataDim = this->plan->length.size() + 1;
138
139 int i = 0;
140 for (i = 0; i < (this->signature.fft_DataDim - 1); i++)
141 {
142 this->signature.fft_N[i] = this->plan->length[i];
143 this->signature.fft_inStride[i] = this->plan->inStride[i];
144 this->signature.fft_outStride[i] = this->plan->outStride[i];
145
146 }
147 this->signature.fft_inStride[i] = this->plan->iDist;
148 this->signature.fft_outStride[i] = this->plan->oDist;
149
150 if (this->plan->large1D != 0) {
151 ARG_CHECK(this->signature.fft_N[0] != 0)
152 //ToDo:ENABLE ASSERT
153 // ARG_CHECK((this->plan->large1D % this->signature.fft_N[0]) == 0)
154 this->signature.fft_3StepTwiddle = true;
155 //ToDo:ENABLE ASSERT
156 // ARG_CHECK(this->plan->large1D == (this->signature.fft_N[1] * this->signature.fft_N[0]));
157 }
158
159 // Query the devices in this context for their local memory sizes
160 // How we generate a kernel depends on the *minimum* LDS size for all devices.
161 //
162 const FFTEnvelope * pEnvelope = NULL;

Calls 2

sizeMethod · 0.80
GetEnvelopeMethod · 0.80

Tested by

no test coverage detected