草庐IT

target-cpu

全部标签

c++ - 返回的 cpu 时钟时间必须在运行中完全相同吗?

我有一个用C++编写的大项目。它可能有一些稳定性问题(即随机运行时),但我不确定。我知道由于操作系统多任务处理,执行时间(以挂钟时间衡量)在运行中可能会有所不同。但我不知道,对于稳定的程序来说,在具有相同输入的运行中,执行时间由cpu时钟时间测量不同是否正常。我尝试使用time.h中的clock()和boost::chrono:::process_user_cpu_clock::now();但在这两种情况下,我都在图表上看到了尖峰。我会给你一个这样的图表的例子。这里Y轴-执行时间,X轴-同一程序在相同输入数据上的连续运行。红色图-挂钟时间,红色-cpu时钟时间,由clock()从tim

c++ - 限制 CPU 速度以进行分析

我正在尝试优化应用程序的几个瓶颈,这些应用程序应该在非常广泛的CPU和架构(其中一些非常接近嵌入式设备)上运行。但是,由于我的CPU速度,我的分析器的结果并不是很重要。有没有什么方法(最好是在Windows或MacOSX下)来限制我的CPU速度以进行分析?我考虑过使用虚拟机,但还没有找到具有这种功能的虚拟机。 最佳答案 这很好用并且支持多核。http://www.cpukiller.com/ 关于c++-限制CPU速度以进行分析,我们在StackOverflow上找到一个类似的问题:

c++ - x64 CPU 上的原子 16 字节读取

我需要以原子方式读/写16个字节。我只使用cmpxchg16进行写作,它在所有x64处理器上都可用,除了我认为是一个不起眼的AMD处理器。现在的问题是对齐的16字节值,仅使用cmpxchg16进行修改(它就像一个完整的内存屏障)是否有可能读取一半旧数据和一半新数据的16字节位置?只要我用SSE指令读取(所以线程不能在读取中间中断)我认为读取是不可能的(即使在多处理器numa系统中)看到不一致的数据。我认为它必须是原子的。我假设当执行cmpxchg16时,它会原子地修改16个字节,而不是通过写入两个8字节的block,其他线程有可能在两者之间进行读取(老实说,我不明白它是怎么做到的)如果

c++ - ld 链接器错误 "cpu model hidden symbol"

尝试在ubuntu16.04上编译sfml程序时出现ld错误。这显然是一个已知问题,应该有解决方法,但我不明白它是什么...http://web.archive.org/web/20160509014317/https://gitlab.peach-bun.com/pinion/SFML/commit/3383b4a472f0bd16a8161fb8760cd3e6333f1782.patchld吐出的错误是hiddensymbol`__cpu_model'in/usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc.a(cpuinfo.o)isreferenc

c++ - 为什么 std::shared_ptr 使用原子 cpu 操作

我无法理解为什么shared_ptr使用原子cpu指令...我无法找出原因,因为它不是线程安全的。有人可以解释一下吗。如果你想知道我是怎么知道它使用原子结构的:有一段来自C++的剪辑以及Herb和Andrei谈论它的地方,但他们从未提及为什么会这样。 最佳答案 shared_ptr的任何实例都是多线程安全的。它指向的数据不是多线程安全的。参见this.如果正确应用原子指令(通过竞争线程访问以相同顺序完成保护)是实现线程安全的一种方法。另一种方法是使用互斥体。查看BOOST的类似问题:Isboostshared_ptrxxxthrea

c++ - msvcprtd.lib(MSVCP100D.dll): fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'

我创建了一个vs2010win32程序(操作系统:Win8-64bit)然后,我尝试通过这样做将这个win32程序转换为x64:ConfigurationManager->newsolutionplatform(selectx64)->copysettingsfromwin32vs2010在之前的win32程序的基础上新建了一个x64程序。但是,当我尝试编译和运行x64程序时,出现一个错误:msvcprtd.lib(MSVCP100D.dll):fatalerrorLNK1112:模块机器类型“X86”与目标机器类型“x64”冲突通过重命名msvcprtd.lib的win32版本和x6

CPU、MPU、MCU、SOC的概念与区别

参考资料:SoC和MCU的区别CPU、MCU和SOC的区别以及外设的概念理解CPU、MPU、MCU和SOC还傻傻分不清楚看这篇文章就够了1.概念1.1CPU(CentralProcessingUnit)CPU(CentralProcessingUnit),是一台计算机的运算核心和控制核心。CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。众所周知的三级流水线:取址、译码、执行的对象就是CPU,差不多所有的CPU的运作原理可分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。CPU从存储器或高速缓冲存储器中取出指

c# - Windows 上的 Java 需要记录 CPU 负载和类似的操作系统特定性能信息

有一个在Windows机器上运行的Java库需要记录有关操作系统的信息,例如CPU负载、JVM占用的内存等。我很确定Java本身无法获取这些信息,因为它是特定于操作系统的。此库的日志中需要此信息,以便向客户指出某些操作因库无法获得足够的资源而失败。无法选择JVM,即我们不能要求我们的客户应使用实现Windows操作系统特定功能的特定JVM。是否有可以通过JNI使用的Windows库(DLL)或API?我们也可以自己用C++或C#实现DLL,我需要在哪里查看如何最有效地完成此操作?编辑:我需要访问有关JVM本身进程的数据,我猜我只能通过nativeWindowsAPI获得这些数据。所以我

windows - PHP 进程 ram 和 cpu 使用率 (windows)

我制作了一个webadmin系统,我想用PHP监控进程的CPU和RAM使用情况谁能帮帮我? 最佳答案 “要监控的计数器和日志”=>http://support.microsoft.com/kb/300504保存为CSV并通过PHP读取它()[或]http://pecl.php.net/package/win32ps[或]使用WMI:ExecQuery("SELECTLoadPercentageFROMWin32_Processor");foreach($cpusas$cpu):echo$cpu->LoadPercentage.'%'

windows - 使用 Nvidia 显卡安装 AMD OpenCL CPU 驱动程序

我已经多次看到这个问题,但从未找到适用于Windows的答案。我最近将我的CUDA代码移植到了OpenCL。当使用ATI卡进行测试时,Catalyst驱动程序包含一个CPUOpenCL驱动程序,因此我可以在CPU上运行OpenCL代码。使用NVIDIA卡进行测试时,没有CPU的驱动程序。问题是:使用Nvidia卡运行时如何安装(和部署)CPU驱动程序?非常感谢 最佳答案 要在CPU上使用OpenCL,您不需要任何驱动程序,您只需要支持CPU的OpenCL运行时,它(在AMD/ATI的情况下)是APPSDK的一部分.无论你有什么GPU