在指令集和仿真的简单性方面.我想实现一个虚拟CPU,并想出为什么不模拟现有的,所以能够编译C代码.
我怎么知道OpenCL可以编程哪个CPU?例如,奔腾E5200.有没有办法知道没有运行和查询它?
(问题不是特定于three.js,但我会以它为例)
我最近一直在使用three.js开发一个Web应用程序界面,并在WebGL和Canvas渲染器(用于桌面浏览器)之间编写了一些很好的回退.
但现在问题变成了如何正确检测设备功能,问题有两个方面:
一个值得注意的例子:Firefox移动/ Opera移动声称支持WebGL但是有缺陷或受到设备硬件的限制.
到目前为止我提出了一些解决方法:
或者也许它不一定很难,还有其他建议吗?
有没有办法将运行在GPU上的着色器的结果返回到CPU上运行的程序?
我想基于GPU上的计算成本高的算法从简单的体素数据生成多边形网格,但我需要在CPU上进行物理计算.
从操作系统的角度来看,异常如何运作?
来自C++,我可以从程序员的角度理解异常.
抛出异常时,堆栈开始展开,每个激活记录都有机会捕获并处理异常.
但是,他们的责任是首先抛出异常?
这是两个崩溃的程序,说明了我的不确定性.
int main(){
int i = 1/0; //did the OS tell the process to end?
return 0;
}
Run Code Online (Sandbox Code Playgroud)
#include <exception>
int main(){
throw 11; //did the process tell the OS it needs to end?
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我有一些关于堆栈的问题.
亚历山大·斯捷潘诺夫在A9的一篇精彩讲座(强烈推荐,顺便说一句)中指出,关联属性为我们提供了可并行性 - 这些日子是编译器,CPU和程序员自己可以利用的非常有用和重要的特性:
// expressions in parentheses can be done in parallel
// because matrix multiplication is associative
Matrix X = (A * B) * (C * D);
Run Code Online (Sandbox Code Playgroud)
但是,交换性财产给我们带来了什么?重新排序?乱序执行?
math parallel-processing cpu cpu-architecture compiler-optimization
我使用的是Google Chrome 63.
在Performance选项卡的DevTools中,有三种CPU限制设置:" 无限制","4x减速"和"6x减速".
是否可以设置自定义限制,例如"20x减速"?它可以通过在chrome.exe文件中设置一些标志或通过NodeJS库以编程方式设置.
我发现Lighthouse库有一些有用的功能,但如果我将其中的默认值(CPU_THROTTLE_METRICS似乎等于4)从4更改为(例如)20并运行它,我怎么能确定它真的是20x减速下?
另外,我想知道,如果有可能以类似的方式对GPU进行模拟"减速"吗?
谢谢你的建议.
我正在寻找一种方法,以一致的方式占用单个CPU的80%(或任何其他数量).
我需要这个用于测试在特定CPU利用率条件下触发的组件的单元测试.
为此,我可以假设机器处于空闲状态.
什么是强大的,可能是独立于操作系统的方法呢?
编程中一种非常常见的模式是在某种更新后将值限制在最大值.我想知道的是,如果以下两段代码之间存在差异,并且是否应该首选:
value += increment;
value = std::min(value, valueMax);
Run Code Online (Sandbox Code Playgroud)
VS
value += increment;
if (value > valueMax)
value = valueMax;
Run Code Online (Sandbox Code Playgroud)
我的想法是,这取决于CPU是否有获取两个值并产生最小值的指令.如果是这样,对std :: min的调用应该导致该指令并避免不必要的分支.如果不是,则第二个版本在值<= valueMax时避免不必要的赋值.
我对这种事情不是很了解,但我确信有老派的黑客大佬会知道这一点.我问他们:哪个更好?
cpu ×10
c++ ×2
performance ×2
eip ×1
emulation ×1
exception ×1
gcc ×1
html5 ×1
javascript ×1
math ×1
memory ×1
minimum ×1
opcode ×1
opencl ×1
opengl ×1
shader ×1
stack ×1
three.js ×1
throttling ×1
unit-testing ×1
video-card ×1