[clfft] 25/109: workaround to make clfft run on NV
Jérôme Kieffer
kieffer-guest at moszumanska.debian.org
Wed May 20 07:29:22 UTC 2015
This is an automated email from the git hooks/post-receive script.
kieffer-guest pushed a commit to branch debian
in repository clfft.
commit fd063c24278660d1217f1c6df1f20d730eb5e02c
Author: AMD-FirePro <FirePro.Developers at amd.com>
Date: Fri Oct 11 09:41:43 2013 +0100
workaround to make clfft run on NV
---
src/library/generator.stockham.cpp | 21 ++++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)
diff --git a/src/library/generator.stockham.cpp b/src/library/generator.stockham.cpp
index 8a6f5a6..fdf3644 100644
--- a/src/library/generator.stockham.cpp
+++ b/src/library/generator.stockham.cpp
@@ -2348,7 +2348,7 @@ namespace StockhamGenerator
}
- void GenerateKernel(std::string &str)
+ void GenerateKernel(std::string &str, cl_device_id Dev_ID)
{
std::string twType = RegBaseType<PR>(2);
std::string rType = RegBaseType<PR>(1);
@@ -2501,8 +2501,19 @@ namespace StockhamGenerator
else str += "fft_back";
str += "(";
- // TODO : address this kludge
- str += "__constant cb_t *cb __attribute__((max_constant_size(32))), ";
+ // TODO : address this kludge
+ size_t SizeParam_ret = 0;
+ clGetDeviceInfo(Dev_ID, CL_DEVICE_VENDOR, 0, NULL, &SizeParam_ret);
+ char* nameVendor = new char[SizeParam_ret];
+ clGetDeviceInfo(Dev_ID, CL_DEVICE_VENDOR, SizeParam_ret, nameVendor, NULL);
+
+ //nv compiler doesn't support __constant kernel argument
+ if (strncmp(nameVendor, "NVIDIA",6)!=0)
+ str += "__constant cb_t *cb __attribute__((max_constant_size(32))), ";
+ else
+ str += "__global cb_t *cb, ";
+
+ delete [] nameVendor;
// Function attributes
if(params.fft_placeness == CLFFT_INPLACE)
@@ -3230,12 +3241,12 @@ clfftStatus FFTPlan::GenerateKernelPvt<Stockham>(FFTRepo& fftRepo ) const
case P_SINGLE:
{
Kernel<P_SINGLE> kernel(params);
- kernel.GenerateKernel(programCode);
+ kernel.GenerateKernel(programCode, devices[0]);
} break;
case P_DOUBLE:
{
Kernel<P_DOUBLE> kernel(params);
- kernel.GenerateKernel(programCode);
+ kernel.GenerateKernel(programCode, devices[0]);
} break;
}
--
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