我正在尝试找出CPU / GPU的良好划分。有没有一种方法可以监视CPU和GPU的使用情况,以查看应该在哪里进行拆分?

评论

这个问题可能对您有用。

海事组织,这个问题令人困惑。您是否想知道应用程序和图形的内存使用情况(以便您可以定义拆分),还是想知道当前的CPU / GPU负载?

@ otakun85我想知道应用程序的当前使用情况,以便可以对在哪里进行拆分做出很好的决定

@Jivings是的,这是一个很好的问题。很高兴知道某些功能会打开或关闭,具体取决于分配给GPU的内存量。如果可能的话,虽然知道确切的用法也很有帮助,但也可以确定我属于哪个类别

#1 楼

一种简单的解决方案是让Raspberry Pi本身通过动态内存拆分来管理如何在CPU和GPU之间拆分RAM。
虽然raspi-config无法为您做到这一点,但/ boot / config仍具有示例设置.txt在论坛上可用。

评论


谢谢你我不知道团队拥有动态分配权。

– Vincent P
13年1月8日在5:34

如果您使用的是开源GPU驱动程序-vc3-fkms-v3d和vc4-kms-v3d-启用了动态拆分-但如果您使用的是Broadcom封闭源驱动程序,那么..根据raspberry pi内核开发人员,通过Broadcom封闭源代码驱动程序进行动态拆分-AKA CMA拆分-从来没有正确运行过,目前不建议使用(该参考在github上的raspberry pi的内核开发项目中的某处)。

–zertyz
20年1月21日在15:59

#2 楼

您可以使用tophtop命令获得内存使用情况的实时视图。如果收到消息htop,则可能需要安装htop: command not found。假设您正在使用Raspbian,请通过运行sudo apt-get install htop
进行安装

评论


与常规上衣相比有什么好处?

–摩根·库尔贝(Morgan Courbet)
2013年1月7日19:23



htop似乎“更好” htop.sourceforge.net/index.php?page=comparison

–独家新闻
13年1月8日,0:15

htop更加用户友好。我总是用htop代替top

– w0rldart
13年1月23日在13:02

另外,如果您使用的是诸如RPi 2的多核计算机,则可以在漂亮的条形图中看到每个核的负载,例如,当您在任务列表中看到“ python”时,它会显示整个命令行,因此您查看正在运行的程序

– jpw
16年1月23日在22:39



@jpwynn请注意,在顶部按1也会看到所有处理器。但是我同意htop通常更好/更易于使用。

– Alexis Wilke
18-3-14的2:11

#3 楼

对于CPU使用率和系统内存,请尝试使用htop命令,该命令非常详细且可自定义,如果此命令不起作用,请使用top(或apt install htop)。

GPU内存使用率(还有许多其他细节)与/opt/vc/bin/vcdbg reloc stats。总内存位于顶部,空闲内存位于底部

关于最佳CPU / GPU分配。这实际上取决于您使用RPi的目的。如果您不播放视频和游戏(GPU优化),则为CPU提供最大的RAM。另外,如果运行的“无头”(未连接到屏幕),则为CPU分配尽可能多的RAM。

Chromium GPU支持在很大程度上取决于您拥有的RPi版本和格式。以及您期望卸载到GPU的内容。

评论


所以问题是我不确定chrome是否使用gpu。如果确实如此,那是什么类型的事情。这对使用GPU很有用,但可能无法实现

–独家新闻
13年1月8日,0:23

@Scoop我已经相应更新了我的答案。

– Vincent P
13年1月8日,下午5:33

@Scoop根据我今天(2018年)的测试,Chrome浏览器中包含对GPU的支持。您可以转到chrome:// gpu看到它。

– Alexis Wilke
18年3月14日在4:14

您可能需要更新答案,现在我们有了命令“ / opt / vc / bin / vcdbg reloc stats”

–zertyz
20年1月21日在15:52

#4 楼

要监视RAM使用情况,可以运行free -h -s 1。每秒(-s 1)都会显示类似的表格:

             total       used       free     shared    buffers     cached
Mem:          438M       146M       292M         0B        15M       102M
-/+ buffers/cache:        28M       409M
Swap:          99M         0B        99M


Mem:行是您要查找的内容。

在上面的示例中,您可以看到当前总共使用了438MB的内存146MB,还有292MB的可用空间。在我的512MB RPi上,我为GPU设置了64MB。

评论


请注意,这实际上不是CPU使用率,而是RAM使用率。

–小屋8
13年8月15日在18:25

#5 楼

要监视Raspbian中的CPU,RAM和SWAP使用情况,可以使用TOP或HTOP。

在终端中,运行top。默认情况下,TOP是可用的,并且提供了适当的详细信息。


但是,我发现HTOP更有用,具有更好的细节和功能。 HTOP默认情况下不可用,需要安装。

在终端中运行sudo apt-get update && sudo apt-get install htop以安装HTOP。

在终端中,安装完成后运行htop。 />


希望有所帮助。

#6 楼

可让您深入了解GPU分配的命令是sudo vcdbg reloc。输出看起来像从这里开始。以我为例,我看到分配的236M太接近/boot/config.txt-> gpu_mem=256中的值,所以我需要将其稍微提高一点。

Relocatable heap version 4 found at 0x30000000
total space allocated is 236M, with 234M relocatable, 2.3M legacy and 0 offline
1 legacy blocks of size 2359296

free list at 0x3ad9aaa0
352 free memory in 2 free block(s)
largest free block is 320 bytes

0x30000000: legacy block 2.3M
0x30240000: free 320
[  80] 0x30240140: used  608 (refcount 1 lock count 0, size      540, align    4, data 0x30240160, d0rual) 'GLXX_TEXTURE_T'
[  78] 0x302403a0: used  192 (refcount 1 lock count 0, size      128, align    4, data 0x302403c0, D1rual) 'GLXX_BUFFER_INNER_T.storage'


评论


您可能会对您说的有些困惑,“在我看来,我看到分配的236M太接近了/boot/config.txt-> gpu_mem = 256中的值”,因为乍一看这意味着您从第一行获得了第一个数字,该数字将始终相同。可用内存量实际上位于第二个节中,并且已使用的内存量将是分配的值(236M)减去此值。这些将符合vcgencmd get_mem reloc和vcgencmd get_mem reloc_total。 raspberrypi.org/forums/viewtopic.php?t=158157

–金锁♦
19年7月19日在14:04

#7 楼

这个问题很老,但是被接受的答案并不能说明如何监视GPU使用情况。

有一种方法-仅使用封闭的Broadcom驱动程序进行测试:

# /opt/vc/bin/vcdbg reloc stats

Relocatable heap version 4 found at 0x17800000
total space allocated is 116M, with 114M relocatable, 2.3M legacy and 0 offline
1 legacy blocks of size 2359296

small_allocs                  : 1163
allocs                        : 6731
alloc_fails                   : 0
legacy_block_fails            : 0
compactions                   : 0
discard_compactions           : 0
aggressive_compactions        : 0
aggressive_compaction_waits   : 0
aggressive_compaction_timeouts: 0
locks                         : 0
small_locks                   : 0

free list at 0x1ebf24e0
86M free memory in 6 free block(s)
largest free block is 86M bytes


有关更多信息,

# /opt/vc/bin/vcdbg help
Usage: /opt/vc/bin/vcdbg command [args ...]

Where command is one of the following:
  addr2line        ADDR [ADDRS...]            - Convert addresses to function names
  bootfs           [dump|get [ARGS]]          - Commands related to BootFS
  dump             ADDR|SYM [LEN]             - Dumps memory (Hex and ASCII)
  dumpstate                                   - One shot dump of all minimal commands
  elfsym           SYMBOL [SYMBOLS...]        - Prints out the values of the indicated ELF-file symbol
  grep             WORD                       - Search memory for a 32-bit word
  help             [command]                  - Prints command help information
  hist                                        - Processes task history log
  hostmemuse                                  - Dump host memory usage scoreboard
  image            ADDR|HNDL|all W H TYPE     - Save image data to file in current directory, with given size and type (8bpp, rgbx32, tf_rgbx32, yuv420, ...)
  isp_timeout_dump                            - Dump ISP hardware state after a timeout
  log              COMMAND [ARGS]             - Commands related to logging
  malloc                                      - Report on the VC malloc heap
  pools            [NAME] [images]            - Report on vc_pools [optionally save images to files in current directory]
  reloc            [small|stats]              - Dump out relocatable heap [or just small, or stats]
  save             FILENAME [ADDR|SYM [LEN]]  - Saves the indicated memory (or all) to a file
  set              ADDR|SYM VALUE [VALUES...] - Writes 32-bit words to memory (address, or VC_DEBUG_VAR or ELF symbol)
  sym              SYMBOL                     - Prints out the values of the indicated VC_DEBUG_VAR symbol
  syms                                        - Prints out the values of the available VC_DEBUG_VAR symbols
  trash            ADDR [LEN]                 - Trash VC memory [default: 1 byte]
  tx                                          - Examine ThreadX state
  vchiqdump                                   - Examine vchiq state
  vchiqslot                                   - Examine vchiq slot data
  version                                     - Print VC firmware version