[clfft] 13/74: some bug fixes
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Thu Jan 14 19:52:12 UTC 2016
This is an automated email from the git hooks/post-receive script.
ghisvail-guest pushed a commit to branch debian/sid
in repository clfft.
commit 8bcee100042c4442fd5f0b81de458083f5c14f2d
Author: santanu-thangaraj <t.santanu at gmail.com>
Date: Sat Nov 14 18:32:29 2015 +0530
some bug fixes
---
src/library/action.h | 2 +-
src/library/generator.transpose.nonsquare.cpp | 11 +++++-----
src/library/plan.cpp | 29 +++++++++++----------------
3 files changed, 19 insertions(+), 23 deletions(-)
diff --git a/src/library/action.h b/src/library/action.h
index 5722b58..a60eba2 100644
--- a/src/library/action.h
+++ b/src/library/action.h
@@ -112,7 +112,7 @@ class FFTTransposeNonSquareAction : public FFTAction
public:
FFTTransposeNonSquareAction(clfftPlanHandle plHandle, FFTPlan * plan, cl_command_queue queue, clfftStatus & err);
- clfftGenerators getGenerator() { return Transpose_SQUARE; }
+ clfftGenerators getGenerator() { return Transpose_NONSQUARE; }
};
//
diff --git a/src/library/generator.transpose.nonsquare.cpp b/src/library/generator.transpose.nonsquare.cpp
index c3df829..8e1ac32 100644
--- a/src/library/generator.transpose.nonsquare.cpp
+++ b/src/library/generator.transpose.nonsquare.cpp
@@ -291,7 +291,7 @@ static clfftStatus genTransposeKernel(const FFTGeneratedTransposeNonSquareAction
// This detects whether the input matrix is rectangle of ratio 1:2
- bool not_1x2_nonSquare;
+
if ((params.fft_N[0] != 2 * params.fft_N[1]) && (params.fft_N[1] != 2 * params.fft_N[0]))
{
return CLFFT_TRANSPOSED_NOTIMPLEMENTED;
@@ -889,7 +889,8 @@ clfftStatus FFTGeneratedTransposeNonSquareAction::initParams()
ARG_CHECK(this->signature.fft_N[0] != 0)
ARG_CHECK((this->plan->large1D % this->signature.fft_N[0]) == 0)
this->signature.fft_3StepTwiddle = true;
- ARG_CHECK(this->plan->large1D == (this->signature.fft_N[1] * this->signature.fft_N[0]));
+ //ToDo:ENABLE ASSERT
+ // ARG_CHECK(this->plan->large1D == (this->signature.fft_N[1] * this->signature.fft_N[0]));
}
// Query the devices in this context for their local memory sizes
@@ -939,16 +940,16 @@ clfftStatus FFTGeneratedTransposeNonSquareAction::generateKernel(FFTRepo& fftRep
OPENCL_V(status, _T("clGetCommandQueueInfo failed"));
- OPENCL_V(fftRepo.setProgramCode(Transpose_SQUARE, this->getSignatureData(), programCode, Device, QueueContext), _T("fftRepo.setclString() failed!"));
+ OPENCL_V(fftRepo.setProgramCode(Transpose_NONSQUARE, this->getSignatureData(), programCode, Device, QueueContext), _T("fftRepo.setclString() failed!"));
// Note: See genFunctionPrototype( )
if (this->signature.fft_3StepTwiddle)
{
- OPENCL_V(fftRepo.setProgramEntryPoints(Transpose_SQUARE, this->getSignatureData(), "transpose_nonsquare_tw_fwd", "transpose_nonsquare_tw_back", Device, QueueContext), _T("fftRepo.setProgramEntryPoint() failed!"));
+ OPENCL_V(fftRepo.setProgramEntryPoints(Transpose_NONSQUARE, this->getSignatureData(), "transpose_nonsquare_tw_fwd", "transpose_nonsquare_tw_back", Device, QueueContext), _T("fftRepo.setProgramEntryPoint() failed!"));
}
else
{
- OPENCL_V(fftRepo.setProgramEntryPoints(Transpose_SQUARE, this->getSignatureData(), "transpose_nonsquare", "transpose_nonsquare", Device, QueueContext), _T("fftRepo.setProgramEntryPoint() failed!"));
+ OPENCL_V(fftRepo.setProgramEntryPoints(Transpose_NONSQUARE, this->getSignatureData(), "transpose_nonsquare", "transpose_nonsquare", Device, QueueContext), _T("fftRepo.setProgramEntryPoint() failed!"));
}
return CLFFT_SUCCESS;
diff --git a/src/library/plan.cpp b/src/library/plan.cpp
index 33568c1..bccdd45 100644
--- a/src/library/plan.cpp
+++ b/src/library/plan.cpp
@@ -237,11 +237,12 @@ std::string getKernelName(const clfftGenerators gen, const clfftPlanHandle plHan
switch( gen )
{
- case Stockham: generatorName = "Stockham"; break;
- case Transpose_GCN: generatorName = "Transpose"; break;
- case Transpose_SQUARE: generatorName = "Transpose"; break;
- case Transpose_VLIW: generatorName = "Transpose"; break;
- case Copy: generatorName = "Copy"; break;
+ case Stockham: generatorName = "Stockham"; break;
+ case Transpose_GCN: generatorName = "Transpose"; break;
+ case Transpose_SQUARE: generatorName = "Transpose"; break;
+ case Transpose_NONSQUARE: generatorName = "TransposeNonSquare"; break;
+ case Transpose_VLIW: generatorName = "Transpose"; break;
+ case Copy: generatorName = "Copy"; break;
}
kernelPath << kernelPrefix << generatorName ;
@@ -260,15 +261,6 @@ clfftStatus selectAction(FFTPlan * fftPlan, FFTAction *& action, cl_command_queu
// set the action we are baking a leaf
clfftStatus err;
- /*Temproary code just for testing*/
- static int test_performed = 1;
- if (!test_performed)
- {
- test_performed = 1;
- action = new FFTGeneratedTransposeNonSquareAction(fftPlan->plHandle, fftPlan, *commQueueFFT, err);
- OPENCL_V(err, "FFTGeneratedTransposeNonSquareAction() failed");
-
- }
switch (fftPlan->gen)
{
case Stockham:
@@ -1889,17 +1881,20 @@ clfftStatus clfftBakePlan( clfftPlanHandle plHandle, cl_uint numQueues, cl_comma
else if (fftPlan->gen == Transpose_SQUARE)
{
static int test_performed = 0;
- size_t backup = fftPlan->length[1];
+ size_t backup_0 = fftPlan->length[0];
+ size_t backup_1 = fftPlan->length[1];
if (!test_performed)
{
- test_performed = 1;
+ //test_performed = 1;
fftPlan->length[1] = fftPlan->length[0] * 2;
fftPlan->action = new FFTGeneratedTransposeNonSquareAction(plHandle, fftPlan, *commQueueFFT, err);
OPENCL_V(err, "FFTGeneratedTransposeNonSquareAction() failed");
}
- fftPlan->length[1] = backup;
+ fftPlan->length[0] = backup_0;
+ fftPlan->length[1] = backup_1;
+
fftPlan->action = new FFTGeneratedTransposeSquareAction(plHandle, fftPlan, *commQueueFFT, err);
}
else
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/clfft.git
More information about the debian-science-commits
mailing list