标签: cpu

硬件中大整数乘法器的权衡

这是一个理论上的问题,我真的没有经营任何工厂或任何东西;-)

对于小N,N-by-N乘法器可以实现为深度log(N)和N ^ 2门的3到2加法器的树 - 让我们忽略Booth编码等.这是超快的,但是需要不合理的硬件数量.

这个门数很快就会变得不合理(以及接线).但是kN-by-kN通过k ^ 2 2N位部分产品的软件乘法并将它们加在一起将会非常缓慢.

我的问题是 - 在N ^ 2门变得太多(用于门和布线)之后,我们对中等N的非常快速的硬件辅助乘法有什么权衡,但我们仍然希望比纯软件更好.

我可以想象这会出现很多自定义加密芯片,但我只是好奇.

hardware cpu electronics

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

用于GetLogicalProcessorInformation函数的PInvoke

我想通过c#/ PInvoke调用GetLogicalProcessorInformation函数,但是我坚持使用SYSTEM_LOGICAL_PROCESSOR_INFORMATIONstruct和CACHE_DESCRIPTORstruct.

我该如何定义这些结构以便正确使用?

主要表现在:
1.SYSTEM_LOGICAL_PROCESSOR_INFORMATION有工会在其定义
2. SYSTEM_LOGICAL_PROCESSOR_INFORMATION具有ULONGLONG在其定义
3. CACHE_DESCRIPTOR具有WORDDWORD在它的定义.

你能帮我解决这些问题吗?

c# windows cpu pinvoke

8
推荐指数
2
解决办法
3693
查看次数

如何使用Javascript测试用户计算机的处理能力?

我制作了一个相当CPU密集型的网页,里面有很多CSS3和Javascript.我想使用Javascript来测试用户的计算机是否能够处理脚本.我认为一种可能的方法是运行一些CPU密集型脚本并查看它花了多长时间.但是,我不知道如何实际实现这一点.

这是网页:http://leojiang.me/(3D立方体只能在webkit浏览器中查看).

javascript cpu css3

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

Intel E7和E5 Xeon型号之间的区别?

我正在研究构建面向HPC(FLOP)计算的强大机器集群的可能性,因此我一直在审查顶级Intel Xeon模型,并且惊讶地发现Xeon E7型号不支持AVX矢量化,而Xeon E5则支持AVX矢量化.另一方面,E7支持SSE 4.2,它似乎是与FLOP计算和HPC无关的优化,而是适合加速字符计算,例如XML解析.

为了确保我得到正确的差异,我想问一下是否是这种情况E7 Xeon型号不支持AVX并且面向"系统"而E5 Xeon型号支持AVX并且面向HPC密集型FLOP计算.

cpu intel avx

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

如何在终端(mac)中以%为单位获得CPU利用率

我在linux和windows上看过同样的问题,但不是mac(终端).任何人都可以告诉我如何以%为单位获得当前处理器利用率,因此示例输出将是40%.谢谢

macos terminal cpu

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

NIC中的描述符概念

我试图理解网络驱动程序代码中使用的Rx和Tx描述符的概念.

  1. 是软件(RAM)或硬件(NIC卡)中的描述符.
  2. 他们是如何被填补的.

编辑:所以在Realtek卡驱动程序代码中.我定义了以下结构.

struct Desc
{
        uint32_t opts1;
        uint32_t opts2;
        uint64_t addr;
};

txd->addr = cpu_to_le64(mapping);
txd->opts2 = cpu_to_le32(opts2);
txd->opts1 = cpu_to_le32(opts1 & ~DescOwn);
Run Code Online (Sandbox Code Playgroud)

所以,是opts1 and opts2有位喜欢DescOwn特定的卡?它们是否会由制造商在数据表中定义?

谢谢Nayan

cpu cpu-architecture

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

在指定精确容量时,为什么HashMap会再次调整大小()?

代码说的不仅仅是文字,因此:

final int size = 100;
Map<Integer, String> m = new HashMap<>(size);
for (int i = 0; i < size; i++) m.put(i, String.valueOf(i));
Run Code Online (Sandbox Code Playgroud)

为什么HashMap内部调用时间!resize() 21 2(感谢Andreas在内部确认JVM使用HashMaps,21个cals中的19个来自其他进程)

resize()我的申请仍然无法接受两次通话.我需要对此进行优化.

如果我是一个新的java开发人员,我首先直观地猜测HashMap构造函数中的"容量"意味着它是我(HashMap的使用者)将要放入Map中的元素数量的容量.但是这是错误的.

如果我想优化我对HashMap的使用,以便它根本不需要自己调整大小,那么我需要非常了解HashMap的内部结构,以确切知道HashMap存储桶阵列需要多么稀疏.这在我看来很奇怪.HashMap应隐式为您执行此操作.这是OOP中封装的全部要点.

注意:我已经确认resize()是我的应用程序用例的瓶颈,所以这就是为什么我的目标是减少调用resize()的次数.

问题:

如果我知道我要预先在地图中输入的确切数量.我选择了什么容量,以防止任何额外的呼叫resize()操作?有点像size * 10?我还想了解为什么这样HashMap设计的背景.

编辑:我被问到很多为什么这个优化是必要的.我的应用程序在hashmap.resize()中花费了大量的CPU时间.我的应用程序使用的哈希映射被初始化,其容量等于我们放入其中的元素数量.因此,如果我们可以减少resize()调用(通过选择更好的初始容量),那么我的应用程序性能会得到改善.

java cpu optimization hashmap data-structures

8
推荐指数
2
解决办法
1244
查看次数

CPU如何从磁盘读取?

我对 IO 的整个概念有点困惑;我想知道 CPU 如何从磁盘(例如 SATA 磁盘)读取数据?

当带有 read()/write() 的程序符合对特定文件的引用并且 CPU 遇到此引用时,它是否直接从磁盘读取(通过内存映射的 IO 端口)?还是先写入 RAM,然后再写回磁盘?

architecture linux io cpu block

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

CPU中是否有计时器

我们在代码中使用计时器,我只是对它的实际实现感到好奇,是否有计时器

CPU逻辑电路或CPU外部,例如,外部时钟或类似的东西.

如果没有,那么地狱的计时器在哪里?请帮帮我,不需要任何详细的解释

如何制作硬件定时器,只需关注我们所拥有的硬件板上的定时器.

提前致谢 .

hardware cpu timer clock

7
推荐指数
2
解决办法
5349
查看次数

为什么 ThreadPoolExecutor 的默认 max_workers 是根据 CPU 数量决定的?

的文档concurrent.futures.ThreadPoolExecutor说:

改变在3.5版本中:如果max_workersNone或者没有给出,将默认为机器上的处理器,乘以数量5,假设的ThreadPoolExecutor通常用于重叠I / O,而不是CPU的工作,工人的数量应该更高比ProcessPoolExecutor的工人数量。

我想了解为什么默认max_workers值取决于 CPU 的数量。不管我有多少 CPU,在任何时间点都只能运行一个 Python 线程。

让我们假设每个线程都是 I/O 密集型的,它只有 10% 的时间在 CPU 上,90% 的时间在等待 I/O。然后让我们假设我们有 2 个 CPU。我们只能运行 10 个线程来使用 100% 的 CPU。我们不能再使用 CPU,因为在任何时间点都只有一个线程在运行。即使有 4 个 CPU,也是如此。

那么为什么默认是max_workers根据 CPU 数量来决定的呢?

python cpu performance multithreading gil

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