小编Der*_*rek的帖子

如何在cuda中管理大型2D FFT

我成功地编写了一些CUDA FFT代码,用于对图像进行2D卷积,以及其他一些计算.

我如何确定我能运行的最大FFT是什么?似乎2D R2C卷积的计划占用了图像尺寸的2倍,而另外2倍于C2R的图像尺寸.这似乎是很多开销!

此外,似乎大多数基准测试都适用于相对较小的FFT ..为什么这样?对于大型图像,我似乎会很快耗尽内存.这通常如何处理?你能在图像的图块上执行FFT卷积并将这些结果组合起来,并期望它与在整个图像上运行2D FFT相同吗?

谢谢你回答这些问题

cuda fft image-processing

3
推荐指数
1
解决办法
2419
查看次数

来自grails项目的hibernate AssertionFailure

我收到的错误如下所示.这与我的级联设置方式有关吗?开始调查的适当场所在哪里?现在我有一个角色,有很多角色责任.RoleDuty属于角色.RoleDuty只有一个字段,duty,这是一个可以为空的字符串.Role具有RoleDuties列表的all-delete-orphan映射.

06.12.2010 10:02:17 *ERROR* AssertionFailure: an assertion failure occured (this may indicate a bug in Hibernate, but is
 more likely due to unsafe use of the session) (AssertionFailure.java, line 47)
org.hibernate.AssertionFailure: null id in RoleDuty entry (don't flush the Session after an exception occurs)
        at org.hibernate.event.def.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:78)
        at org.hibernate.event.def.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:187)
        at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:14
3)
        at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
        at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListen
er.java:99)
        at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:49)
        at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
        at org.springframework.orm.hibernate3.HibernateAccessor.flushIfNecessary(HibernateAccessor.java:390)
        at org.codehaus.groovy.grails.orm.hibernate.support.GrailsOpenSessionInViewInterceptor.flushIfNecessary(GrailsOp
enSessionInViewInterceptor.java:116)
        at org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor.postHandle(OpenSessionInViewIntercept
or.java:181)
        at org.codehaus.groovy.grails.orm.hibernate.support.GrailsOpenSessionInViewInterceptor.postHandle(GrailsOpenSess
ionInViewInterceptor.java:66)
        at org.springframework.web.servlet.handler.WebRequestHandlerInterceptorAdapter.postHandle(WebRequestHandlerInter
ceptorAdapter.java:61)
        at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:303)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) …
Run Code Online (Sandbox Code Playgroud)

sql grails groovy hibernate

2
推荐指数
1
解决办法
2871
查看次数

在Qt中显示QImage的灰度和大小

我能够使用以下内容在Qt中的标签中显示图像:

transformPixels(0,0,1,imheight,imwidth,1);//sets unsigned char** imageData

unsigned char* fullCharArray = new unsigned char[imheight * imwidth];
     for (int i = 0 ; i < imheight ; i++)
         for (int j = 0 ; j < imwidth ; j++)
                fullCharArray[(i*imwidth)+j] = imageData[i][j];

QImage *qi = new QImage(fullCharArray, imwidth, imheight, QImage::Format_RGB32);

ui->viewLabel->setPixmap(QPixmap::fromImage(*qi,Qt::AutoColor));
Run Code Online (Sandbox Code Playgroud)

所以fullCharArray是一个已经从2D数组imageData映射的无符号字符数组,换句话说,它是imighight*imwidth字节.

问题是,似乎我的图像中只有一部分显示在标签中.图像非常大.我希望显示完整的图像,按比例缩小以适应标签,并保留纵横比.

另外,那个QImage格式是我能找到的唯一一个似乎能让我近距离展示我想要展示的图像的格式,这是我应该期待的吗?我只使用每个像素一个字节(无符号字符 - 从0到255的值),似乎谎言RGB32对该数据类型没有多大意义,但没有其他任何显示任何远程正确

编辑:关于dan gallaghers的建议,我实现了这段代码:

QImage *qi = new QImage(fullCharArray, imwidth, imheight, QImage::Format_RGB32);
int labelWidth = ui->viewLabel->width();
int labelHeight = ui->viewLabel->height();

QImage small = qi->scaled(labelWidth, labelHeight,Qt::KeepAspectRatio);
ui->viewLabel->setPixmap(QPixmap::fromImage(small,Qt::AutoColor));
Run Code Online (Sandbox Code Playgroud)

但这导致我的程序"意外地完成"代码0

c++ qt qt4

2
推荐指数
2
解决办法
1万
查看次数

链接在库中,包含对cuda内核的引用

我试图找出如何使用CUDA内核作为库的一部分,以便我可以将库添加到我现有的C++源文件,并能够使用cuda内核.

那么你怎么做呢?我尝试创建一个包装器,如下所示:

.h文件:

#ifndef __reductions2d_H_
#define __reductions2d_H_
#include <stdio.h>
#include <cuda.h>
#include <cuda_runtime.h>
extern "C" void getMean_wrapper();
#endif
Run Code Online (Sandbox Code Playgroud)

.CU

 __global__ void getMean(float *devDataPtr, size_t pitch, int rows, int cols)
       {
          for (int r = 0; r < height; ++r)
          { 
             float* row = (float*)((char*)devPtr + r * pitch);
             for (int c = 0; c < width; ++c)
             {
                printf("Row[%i][%i]: %4.3f \n",r,c row[c]);
             }
          }
       }


   void getMean_wrapper()
   {
   // Host code 
     int width = 3, height = 3;
     int N …
Run Code Online (Sandbox Code Playgroud)

c++ cuda g++ linker-errors

2
推荐指数
1
解决办法
1万
查看次数

函数调用不接受我的论点

当我尝试调用我已经重载的函数以接受来自CUDA的结构cuComplex时,我收到以下错误.

../common/Filter.cpp:73: error: no matching function for call to ‘ReaderIF::getData(float2&, int&)’
../readers/ReaderIF.h:63: note: candidates are: virtual bool ReaderIF::getData(cuComplex*, offset)
../readers/ReaderIF.h:65: note: virtual bool ReaderIF::getData(std::complex<float>*, offset)
../readers/ReaderIF.h:82: note: virtual bool ReaderIF::getData(float*, offset)
Run Code Online (Sandbox Code Playgroud)

为什么我得到这个?

这是我如何调用getData函数:

cuComplex *h_hhBuff = (cuComplex *)malloc(memsize);
for (int r = 0; r < rows; r++)

{
hhReader->getData(h_hhBuff[r*cols], r);
}
Run Code Online (Sandbox Code Playgroud)

因为我显然将malloc作为cuComplex投射,我不能称之为第一个候选人吗?

c++

2
推荐指数
1
解决办法
73
查看次数

提交按钮什么都不做

我有以下代码:

<button  data-dojo-type="dijit.form.Button" data-dojo-props='baseClass:"styleButton"'
   name="_action_update"
   type="submit"
   label="Save"
>Save</button>
Run Code Online (Sandbox Code Playgroud)

问题是,这似乎不再作为提交动作.如果我带走dojo相关的东西,它会按预期工作.我之前使用过这个baseClass方法将样式应用于按钮,但不是提交按钮.我应该怎么改变这个?

javascript css dojo

2
推荐指数
1
解决办法
1177
查看次数

伯恩贝壳小写

有没有办法让bourne shell不关心字符串比较的情况?或者,我可以将变量转换为全部小写吗?

我试图使用带有echo的tr,但永远不能让它覆盖我的变量.

sh

2
推荐指数
1
解决办法
1293
查看次数

QByteArray转换为十六进制失败

我在QT项目中使用GMP,我正在尝试使用QByteArray来存储一些数字.

当我想将字节数组转换为mpz_t时,我正在执行以下操作:

const char *hexstring = qbyteval.toHex().toStdString().c_str();
mpz_t myval;
mpz_init (myval);
mpz_set_str(myval, hexstring, 16);

mpz_t zero;
mpz_init(zero);
mpz_set_str(zero, "0", 10);

if(mpz_comp(myval, zero) == 0) {
//...set a breakpoint or do something here. This line shouldn't be reached ever.
}
Run Code Online (Sandbox Code Playgroud)

就我而言,qbyteval永远不会为零.如果我在mpz_comp if block中设置断点,则qbyteval.toHex()始终是十六进制字符串.

什么是失败,导致hexstring是一个空字符串(因此myval = 0)?

c++ qt gmp

2
推荐指数
1
解决办法
364
查看次数

如何在C中动态分配连续的3D数组?

在C中,我想按此顺序遍历数组

 for(int z = 0; z < NZ; z++)
    for(int x = 0; x < NX; x++)
       for(int y = 0; y < NY; y++)
           3Darray[x][y][z] = 100;
Run Code Online (Sandbox Code Playgroud)

如何以3Darray [0] [1] [0]在内存中的3Darray [0] [2] [0]之前出现的方式创建此数组?

我可以进行初始化工作,给我"z-major"排序,但我真的想要这个3d数组的y主要排序

这是我一直在尝试使用的代码:

char *space;
char ***Arr3D;
int y, z;
ptrdiff_t diff;



space = malloc(X_DIM * Y_DIM * Z_DIM * sizeof(char))

Arr3D = malloc(Z_DIM * sizeof(char **));

for (z = 0; z < Z_DIM; z++)
{
    Arr3D[z] = malloc(Y_DIM * sizeof(char *));

    for (y = 0; …
Run Code Online (Sandbox Code Playgroud)

c arrays 3d malloc

1
推荐指数
1
解决办法
1852
查看次数

C语言结构的malloc异常

我有一个像这样定义的结构:

typedef struct {
 int n;
 int *n_p;
 void **list_pp;
 size_t rec_size;
 int n_buffs;
 size_t buff_size
} fl_hdr_type;
Run Code Online (Sandbox Code Playgroud)

在我的代码中我有一个initlialization函数,具有以下功能

fl_hdr_type *fl_hdr;
fl_hdr = malloc(sizeof(fl_hdr_type) + (buff_size_n * rec_size_n));
Run Code Online (Sandbox Code Playgroud)

将那些缓冲区大小传递给函数,以便为缓冲区提供空间.

尺寸通常很小...... 100*50或者类似的东西.这个系统上有很多内存来分配它.我实际上无法发布堆栈跟踪,因为此代码位于另一个网络上,但是从核心文件中的dbx中提取了一些信息:

buff_size_n = 32,rec_size_n = 186

和malloc.c中的stack..line数字

 t_splay:861
 t_delete:796
 realfree: 531
 cleanfree:945
 _malloc:230
 _malloc:186
Run Code Online (Sandbox Code Playgroud)

任何想法为什么失败?

c malloc structure

1
推荐指数
1
解决办法
1675
查看次数

标签 统计

c++ ×4

c ×2

cuda ×2

malloc ×2

qt ×2

3d ×1

arrays ×1

css ×1

dojo ×1

fft ×1

g++ ×1

gmp ×1

grails ×1

groovy ×1

hibernate ×1

image-processing ×1

javascript ×1

linker-errors ×1

qt4 ×1

sh ×1

sql ×1

structure ×1