草庐IT

硬件加速

全部标签

c++ - 隔离容易崩溃的 (SEGV) 但将关键的遗留代码加速到单独的二进制文件中

我有一个经过良好测试且没有崩溃的代码库(主要是C++)。大多。代码的一部分——不可替代、难以维护或改进并链接到一个二进制库*——导致所有崩溃。这些不会经常发生,但一旦发生,整个程序就会崩溃。+----------------------+|Shinynewsane||codebase||||+-----------------+|Ifthelegacycodecrashes,||||theentireprogramdoes,too.||LegacyCode||||*Crashprone*||||intabc(data)|||+-----------------+|||+--------

c++ - 是否可以在同一 gdb session 中跨重新运行保留硬件观察点?

假设我启动了一个gdbsession,并创建了一个断点并运行。断点后,我根据当前执行的某个符号的内存地址创建观察点,并删除原来的断点。一段时间后,我使用Control-C中断程序,仍在gdb中,我发出run命令从头重新启动程序。但是,我想在调试进程重新启动时保留硬件观察点。是否有gdb设置允许我在重新运行时保留硬件观察点?更新:这是重现问题的示例。intmain(){intNeverGoOutOfScope=0;NeverGoOutOfScope=7;while(1);}下面是gdb命令的顺序。break3runwatchNeverGoOutOfScopeinfowatchrun#Af

c++ - 在硬件接口(interface)之间切换的最佳设计模式

我正在就我当前的方法是否合理征求意见。如果没有,我想要一些关于某种类型的设计模式的建议,而不是用来取代我目前的直觉。我的前提是,我有一个相机,它需要一个带有CameraLink或CoaXPress电缆接口(interface)的图像采集卡来连接到PC。相机和计算机之间的所有通信和数据传输都必须使用图像采集卡进行控制,因此这两个物理硬件对象之间的耦合非常紧密。我的问题是我想创建一个“Camera”对象(用于GUI),它有一个“FrameGrabber”卡对象,用于获取数据和发送/接收命令和数据.但是,我有许多不同类型的图像采集卡。我们称它们为CoaxGrabberA、CoaxGrabbe

MPPT工作流程及算法和硬件的选择

MPPT算法选择目前,MPPT算法有开路电压比率(离线)、短路电流比率(离线)、观察调节(在线)、极限追踪控制法(在线)。在光伏控制系统中,因为日照、温度等条件的变化,光伏电池的输出功率也是在不断变化的,为保证使得光伏电池的输出功率保持在最大点,需要调整光伏电池输出电压(日照强度发生变化时,短路电流变化大,开路电压受影响小;环境温度发生变化时,短路电流受影响小,开路电压变化大)。另外,光伏电池的输出电压和电流也和负载有很大关系,负载大,输出电压大,输出电流小;负载小,输出电压小,输出电流大。光伏电池的MPP中的电压是指光伏电池的输出电压。开路电压比率法——这可以说是非常经典也相当古老的方法了,

c++ - 加速 RcppArmadillo : How to link to OpenBlas in an R package

我正在开发一个使用RcppArmadillo的R包。我正在尝试利用OpenBLAS中更快的矩阵乘法。在documentation在C++armadillo库中,它说如果我们的机器上有OpenBLAS,那么Armadillo将使用OpenBLAS而不是BLAS。然而,当我编译我的R包时,我得到如下信息:g++-m64-std=c++11-shared-L/usr/lib64/R/lib-Wl,-z,relro-specs=/usr/lib/rpm/redhat/redhat-hardened-ld-oPackageTest.soclass1.oclass2.oclass3.oclass4

C++ 加速键不起作用

我无法让加速器工作。我正在使用C++。在我的窗口设置并显示之后。MENUITEMINFOWmAbout;mAbout.cbSize=sizeof(MENUITEMINFO);mAbout.fMask=MIIM_TYPE|MIIM_ID;mAbout.wID=(UINT)ID_ABOUT;mAbout.fType=MFT_STRING;mAbout.dwTypeData=(LPWSTR)L"&About";InsertMenuItemW(HelpMenu,0,TRUE,&mAbout);我的菜单工作正常,调用我的“关于”框,没问题。现在,在消息循环之前,我加载加速器://Loadacce

c++ - 使用 kinect (libfreenect) 加速度计数据

我正在通过openFrameworks在C++中访问Kinect加速度计和ofxKinect并且在某些角度上有一些问题。如果我将kinect向下倾斜90度,我会得到nan值。我看了一下getAccelPitch()方法,这种方法很有意义,因为当值大于9.80665除以10.1/9.80665时asin将返回0。但主要问题是在我将设备倾斜90度后,滚动似乎不可靠(似乎变化不大)。在我的设置中,我需要将设备倾斜90度,但也知道它是新的滚动。关于我如何做到这一点的任何提示和技巧?有没有一种简单的方法来获取数据以使用3条线(轴)绘制kinect的方向。我正在尝试检测这样的方向:

全定制FPGA硬件电路设计实现最大公约数求取算法(Quartus II)

目录一、设计需求二、设计工具及版本三、设计原理及结构方案四、电路设计描述1. 32位D触发器2.32位多路选择器3.32位减法器4.32位求余电路5.GCDOUT信号产生电路6.DONE_L信号产生电路五、仿真激励设计方案及电路仿真结构六、设计总结当前,FPGA设计在很多场合得到了广泛的应用,如集成电路设计、SoC开发等领域。常规的设计方法采用硬件描述语言或高级综合的方式对功能进行描述,优点是设计周期较短,便于调试,然而难以满足对性能要求较高的场合。因此,笔者尝试采用纯硬件电路的方式,针对基本的数学运算进行设计。本文为采用硬件电路实现最大公约数的求取算法。一、设计需求已知最大公约数的求取算法如

c++ - MPI - 随着进程数量的增加没有加速

我正在编写程序来测试数字是否为素数。一开始我计算分配给每个进程的数字,然后将这个数量发送给进程。接下来,执行计算并将数据发送回保存结果的进程0。下面的代码有效,但是当我增加进程数时,我的程序不会加速。在我看来,我的程序不能并行运行。怎么了?这是我在MPI的第一个项目,因此欢迎任何建议。我使用mpich2,并在IntelCorei7-950上测试我的程序。主要.cpp:if(rank==0){intworkers=(size-1);readFromFile(path);intelements_per_proc=(N+(workers-1))/workers;intrest=N%eleme

c++ - 加速 Qt 中的 Oracle 数据库接口(interface) (QOCI)

我有一个项目涉及将Oracle数据库集成到Qt桌面应用程序中。由于Qt有一个非常易于使用的数据库交互界面,我编译了QOCI驱动程序以支持Oracle连接。一切正常,但查询的处理时间非常慢。我怎样才能提高性能?我处理任意查询的代码如下所示:QList>DBWrapper::executeQuery(QStringconst&queryString){QList>results;if(_db.isOpen()){QSqlQueryqry(queryString);if(qry.exec()){while(qry.next()){QListrow;results.append(row);fo