首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果 CPU/GPU 使用率不是100%,为应用程序设置更高的优先级是否会产生影响?

问:如果 CPU/GPU 使用率不是 100%,为应用程序设置更高的优先级是否会产生影响?

答:关于为应用程序设置更高优先级的问题的快速细分。这是一个常见且有趣的查询。它让我想起了我早期在我的第一台游戏电脑上调整性能设置的日子!

现在,让我们澄清这一点:即使您的 CPU/GPU 使用率没有达到 100%,提高应用程序的优先级仍然可以产生显着的差异。您会看到,您的计算机就像一个繁忙的餐厅厨房,每个应用程序就像一个订单。

较高的优先级基本上意味着更快的服务,因此 CPU 会比中或低优先级的应用程序更快地执行高优先级应用程序的任务,就像厨师在转向其他人之前急于完成 VIP 订单一样。当资源在高峰时段耗尽时,这一点尤其重要。

始终将应用程序置于高优先级并不总是最好的主意。这就好像,如果厨师只专注于 VIP 订单,则可能会破坏平衡,导致其他订单(任务)缺乏关注,并可能导致延误甚至崩溃。

这都是关于平衡的。必要时提高优先级,但不要过度。

问:为什么在对图像进行分类之前需要将卷积神经网络转换为单列(一维数组)?

答:首先你应该检查一下——卷积、池化,这一切听起来就像一场疯狂的舞会,不是吗?

当您的 CNN 处理图像时,我们的伙伴会将这些视觉效果分解为微小的像素网格。我们在这里讨论的是 2D 和 3D 多元宇宙之间的宇宙战斗。感觉就像星际迷航,对吧?现在,每个小方块、这些像素都充满了细节,可以帮助机器了解正在发生的事情。

但事情是这样的。计算机虽然很智能,但就像我老人家的文件系统。他们喜欢整齐、有序、单一文件的东西,而 2D 或 3D 数据会破坏这一点。为了解决这个问题,我们将数据填充到一列中,也称为一维数组,所以基本上你的 CNN 正在处理一些大量的数字并产生预测!

问:为什么量子力学这么难理解?为什么现代科学家还没有证明它是正确的?这是一个如此广泛的话题,以至于没有人能够证明它是对是错吗?

答:为什么量子力学这么难理解呢,因为它绝对违背你的直觉。

你的直觉进化到让你对中等大小的物体相对于彼此移动相当缓慢有一种直觉的理解。每当你进入非常小、非常大或非常快的领域时,事物就会以你的直觉绝对无法处理的方式运行。

这就是为什么那些从未受过大学物理学教育却坐在那里猜测宇宙如何运作或黑洞如何运作的人总是会出错的原因——因为我们的直觉极其有限,只适用于某些狭窄的领域。

为什么现代科学家还没有证明它是正确的?这是一个如此广泛的话题,以至于没有人能够证明它是对是错吗?

科学永远不会“证明任何事情都是正确的”。科学提出想法,然后对其进行测试。准确预测事物运作方式的模型非常有用。

量子力学是所有现代思想中经过最充分测试、记录最充分、最成功的思想之一。它是如此“正确”——也就是说,能够正确地预测宇宙实际运作的方式——以至于当理论物理学家提出了一个复杂的模型来解释晶体如何包含小于电子波长的空隙时,因此能够基本上将电子捕获在零维空间中,并且如果电子落入这些空隙之一,海森堡的不确定性原理将导致其隧道返回……工程师利用这个想法来制造小工具。这就是蓝光播放器中激光的工作原理!

我们知道量子力学是“正确的”,因为我们用它来预测事物在现实世界中的行为……而且它们确实做到了。

问:如果我构建一个新的 CPU 架构,像 Linux 这样的操作系统如何知道如何运行它?

答:那真够你喝一壶的。

首先,您需要一个 C 编译器。最好也是 C++。因此,您可以为 gcc 或 Clang 编写一个后端。向 LLVM 添加一种语言,以便 Clang 可以使用它,您也可以使用一堆其他语言,所以现在您可能会选择它。当然,您可能早在拥有任何芯片之前就已经这样做了,因为拥有编译器对于 CPU 的设计验证非常有用。

然后,您开始在内核的 asm/ 和 arch/ 目录中编写所有代码,以便内核的基本原语具有实现。

然后,您需要一台围绕该 CPU 构建的具体机器,以便您可以瞄准它。像内存映射和 IRQ 分配之类的东西都放在这里……或者如何与固件通信以找出什么在哪里。该代码位于 arch/ 中。

你需要一个引导加载程序。

您的所有 I/O 接口都需要设备驱动程序。如果您明智的话,您可以使用标准 IP 核来实现这一点,并且实际上不必编写驱动程序,只需告诉内核寄存器在哪里即可。

现在你要调试所有这些很长一段时间。可能需要将 JTAG 调试器插入硬件,因为在大多数过程中您将没有可用的 I/O,因此您必须通过硬件调试进行探索。

最终,您的引导加载程序跳入内核,并因“找不到 init”而崩溃。

恭喜,现在是时候构建用户空间了。唯一真正的问题是让 libc 工作,这样你就可以进行内存管理、系统调用和信号……但是一旦你这样做了,机器就应该启动。当您开发这些接口的内核部分时,许多工作就已经完成。

许多现代 CPU 在 CPU 本身之前就已经完成了所有这些工作,因此 Linux 很可能早在任何物理芯片存在之前就已经在 CPU 模拟上启动了。对于 RISCV 来说确实如此,也许一些较新的 ARM 变体也是如此。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OhiLU1c9SPTytBWN_4IN_u0Q0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券