- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 Nvidia TX1 开发套件,我使用 JetPack-L4T-3.1-linux-x64.run(在完整安装模式)在其上安装了 Ubuntu 16.04。安装过程基于以下链接:“http://docs.nvidia.com/jetpack-l4t/2_1/content/developertools/mobile/jetpack/jetpack_l4t/2.0/jetpack_l4t_install.htm”
我想为我们的应用程序测试它的 GPU 性能,但由于它的时钟设置为最小值 76800000 HZ。我无法从中获得足够的性能。我读过这个链接:“Changing the GPU clock rate on a linux like system (Nvidia Jetson TX1)”来更改GPU时钟频率的值,但是我的Linux发生了权限被拒绝的情况!是否有希望改变该板上 GPU 的时钟速度?
值得一提的是,没有这条路径来改变时钟速率/sys/kernel/debug/clock/override.gbus/rate我有这条路:/sys/kernel/debug/clk/override.gbus/clk_rate
所以你可以看到我没有任何时钟文件夹或速率文件!我可以在此文件中看到 GPU 时钟速率的不同选项:/sys/kernel/debug/clk/gbus/clk_possible_rates
谢谢
最佳答案
解决方案是您不应该在该路径中查找更改时钟。
只需使用 sudo 运行以下 bash 文件即可。
#!/bin/bash
# Copyright (c) 2015-2017, NVIDIA CORPORATION. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of NVIDIA CORPORATION nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
CONF_FILE=${HOME}/l4t_dfs.conf
RED='\e[0;31m'
GREEN='\e[0;32m'
BLUE='\e[0;34m'
BRED='\e[1;31m'
BGREEN='\e[1;32m'
BBLUE='\e[1;34m'
NC='\e[0m' # No Color
usage()
{
if [ "$1" != "" ]; then
echo -e ${RED}"$1"${NC}
fi
cat >& 2 <<EOF
Maximize jetson performance by setting static max frequency to CPU, GPU and EMC clocks.
Usage:
jetson_clocks.sh [options]
options,
--show display current settings
--store [file] store current settings to a file (default: \${HOME}/l4t_dfs.conf)
--restore [file] restore saved settings from a file (default: \${HOME}/l4t_dfs.conf)
run jetson_clocks.sh without any option to set static max frequency to CPU, GPU and EMC clocks.
EOF
exit 0
}
restore()
{
for conf in `cat "${CONF_FILE}"`; do
file=`echo $conf | cut -f1 -d :`
data=`echo $conf | cut -f2 -d :`
case "${file}" in
/sys/devices/system/cpu/cpu*/online |\
/sys/kernel/debug/clk/override*/state)
if [ `cat $file` -ne $data ]; then
echo "${data}" > "${file}"
fi
;;
/sys/devices/system/cpu/cpu*/cpufreq/scaling_min_freq |\
/sys/kernel/debug/tegra_cpufreq/*_CLUSTER/cc3/enable)
echo "${data}" > "${file}" 2>/dev/null
;;
*)
echo "${data}" > "${file}"
ret=$?
if [ ${ret} -ne 0 ]; then
echo "Error: Failed to restore $file"
fi
;;
esac
done
}
store()
{
for file in $@; do
if [ -e "${file}" ]; then
echo "${file}:`cat ${file}`" >> "${CONF_FILE}"
fi
done
}
do_fan()
{
# Jetson-TK1 CPU fan is always ON.
if [ "${machine}" = "jetson-tk1" ] ; then
return
fi
if [ ! -w /sys/kernel/debug/tegra_fan/target_pwm ]; then
echo "Can't access Fan!"
return
fi
case "${ACTION}" in
show)
echo "Fan: speed=`cat /sys/kernel/debug/tegra_fan/target_pwm`"
;;
store)
store "/sys/kernel/debug/tegra_fan/target_pwm"
;;
*)
FAN_SPEED=255
echo "${FAN_SPEED}" > /sys/kernel/debug/tegra_fan/target_pwm
;;
esac
}
do_clusterswitch()
{
case "${ACTION}" in
show)
if [ -d "/sys/kernel/cluster" ]; then
ACTIVE_CLUSTER=`cat /sys/kernel/cluster/active`
echo "CPU Cluster Switching: Active Cluster ${ACTIVE_CLUSTER}"
else
echo "CPU Cluster Switching: Disabled"
fi
;;
store)
if [ -d "/sys/kernel/cluster" ]; then
store "/sys/kernel/cluster/immediate"
store "/sys/kernel/cluster/force"
store "/sys/kernel/cluster/active"
fi
;;
*)
if [ -d "/sys/kernel/cluster" ]; then
echo 1 > /sys/kernel/cluster/immediate
echo 0 > /sys/kernel/cluster/force
echo G > /sys/kernel/cluster/active
fi
;;
esac
}
do_hotplug()
{
case "${ACTION}" in
show)
echo "Online CPUs: `cat /sys/devices/system/cpu/online`"
;;
store)
for file in /sys/devices/system/cpu/cpu[0-9]/online; do
store "${file}"
done
;;
*)
if [ "${SOCFAMILY}" != "tegra186" ]; then
for file in /sys/devices/system/cpu/cpu*/online; do
if [ `cat $file` -eq 0 ]; then
echo 1 > "${file}"
fi
done
fi
esac
}
do_cpu()
{
FREQ_GOVERNOR="cpufreq/scaling_governor"
CPU_MIN_FREQ="cpufreq/scaling_min_freq"
CPU_MAX_FREQ="cpufreq/scaling_max_freq"
CPU_CUR_FREQ="cpufreq/scaling_cur_freq"
CPU_SET_SPEED="cpufreq/scaling_setspeed"
INTERACTIVE_SETTINGS="/sys/devices/system/cpu/cpufreq/interactive"
SCHEDUTIL_SETTINGS="/sys/devices/system/cpu/cpufreq/schedutil"
case "${ACTION}" in
show)
for folder in /sys/devices/system/cpu/cpu[0-9]; do
CPU=`basename ${folder}`
if [ -e "${folder}/${FREQ_GOVERNOR}" ]; then
echo "$CPU: Gonvernor=`cat ${folder}/${FREQ_GOVERNOR}`" \
"MinFreq=`cat ${folder}/${CPU_MIN_FREQ}`" \
"MaxFreq=`cat ${folder}/${CPU_MAX_FREQ}`" \
"CurrentFreq=`cat ${folder}/${CPU_CUR_FREQ}`"
fi
done
;;
store)
store "/sys/module/qos/parameters/enable"
for file in \
/sys/devices/system/cpu/cpu[0-9]/cpufreq/scaling_min_freq; do
store "${file}"
done
if [ "${SOCFAMILY}" = "tegra186" ]; then
store "/sys/kernel/debug/tegra_cpufreq/M_CLUSTER/cc3/enable"
store "/sys/kernel/debug/tegra_cpufreq/B_CLUSTER/cc3/enable"
fi
;;
*)
echo 0 > /sys/module/qos/parameters/enable
if [ "${SOCFAMILY}" = "tegra186" ]; then
echo 0 > /sys/kernel/debug/tegra_cpufreq/M_CLUSTER/cc3/enable 2>/dev/null
echo 0 > /sys/kernel/debug/tegra_cpufreq/B_CLUSTER/cc3/enable 2>/dev/null
fi
for folder in /sys/devices/system/cpu/cpu[0-9]; do
cat "${folder}/${CPU_MAX_FREQ}" > "${folder}/${CPU_MIN_FREQ}" 2>/dev/null
done
;;
esac
}
do_gpu()
{
case "${SOCFAMILY}" in
tegra186)
GPU_MIN_FREQ="/sys/devices/17000000.gp10b/devfreq/17000000.gp10b/min_freq"
GPU_MAX_FREQ="/sys/devices/17000000.gp10b/devfreq/17000000.gp10b/max_freq"
GPU_CUR_FREQ="/sys/devices/17000000.gp10b/devfreq/17000000.gp10b/cur_freq"
GPU_RAIL_GATE="/sys/devices/17000000.gp10b/railgate_enable"
;;
tegra210)
GPU_MIN_FREQ="/sys/devices/57000000.gpu/devfreq/57000000.gpu/min_freq"
GPU_MAX_FREQ="/sys/devices/57000000.gpu/devfreq/57000000.gpu/max_freq"
GPU_CUR_FREQ="/sys/devices/57000000.gpu/devfreq/57000000.gpu/cur_freq"
GPU_RAIL_GATE="/sys/devices/57000000.gpu/railgate_enable"
;;
*)
echo "Error! unsupported SOC ${SOCFAMILY}"
exit 1;
;;
esac
case "${ACTION}" in
show)
echo "GPU MinFreq=`cat ${GPU_MIN_FREQ}`" \
"MaxFreq=`cat ${GPU_MAX_FREQ}`" \
"CurrentFreq=`cat ${GPU_CUR_FREQ}`"
;;
store)
store "${GPU_MIN_FREQ}"
store "${GPU_RAIL_GATE}"
;;
*)
echo 0 > "${GPU_RAIL_GATE}"
cat "${GPU_MAX_FREQ}" > "${GPU_MIN_FREQ}"
ret=$?
if [ ${ret} -ne 0 ]; then
echo "Error: Failed to max GPU frequency!"
fi
;;
esac
}
do_emc()
{
case "${SOCFAMILY}" in
tegra186)
EMC_ISO_CAP="/sys/kernel/nvpmodel_emc_cap/emc_iso_cap"
EMC_MIN_FREQ="/sys/kernel/debug/bpmp/debug/clk/emc/min_rate"
EMC_MAX_FREQ="/sys/kernel/debug/bpmp/debug/clk/emc/max_rate"
EMC_CUR_FREQ="/sys/kernel/debug/clk/emc/clk_rate"
EMC_UPDATE_FREQ="/sys/kernel/debug/bpmp/debug/clk/emc/rate"
EMC_FREQ_OVERRIDE="/sys/kernel/debug/bpmp/debug/clk/emc/mrq_rate_locked"
;;
tegra210)
EMC_MIN_FREQ="/sys/kernel/debug/tegra_bwmgr/emc_min_rate"
EMC_MAX_FREQ="/sys/kernel/debug/tegra_bwmgr/emc_max_rate"
EMC_CUR_FREQ="/sys/kernel/debug/clk/override.emc/clk_rate"
EMC_UPDATE_FREQ="/sys/kernel/debug/clk/override.emc/clk_update_rate"
EMC_FREQ_OVERRIDE="/sys/kernel/debug/clk/override.emc/clk_state"
;;
*)
echo "Error! unsupported SOC ${SOCFAMILY}"
exit 1;
;;
esac
case "${ACTION}" in
show)
echo "EMC MinFreq=`cat ${EMC_MIN_FREQ}`" \
"MaxFreq=`cat ${EMC_MAX_FREQ}`" \
"CurrentFreq=`cat ${EMC_CUR_FREQ}`" \
"FreqOverride=`cat ${EMC_FREQ_OVERRIDE}`"
;;
store)
store "${EMC_FREQ_OVERRIDE}"
;;
*)
if [ "${SOCFAMILY}" = "tegra186" ]; then
emc_cap=`cat "${EMC_ISO_CAP}"`
if [ "$emc_cap" -eq 0 ]; then
cat "${EMC_MAX_FREQ}" > "${EMC_UPDATE_FREQ}"
else
echo "$emc_cap" > "${EMC_UPDATE_FREQ}"
fi
else
cat "${EMC_MAX_FREQ}" > "${EMC_UPDATE_FREQ}"
fi
echo 1 > "${EMC_FREQ_OVERRIDE}"
;;
esac
}
main ()
{
while [ -n "$1" ]; do
case "$1" in
--show)
echo "SOC family:${SOCFAMILY} Machine:${machine}"
ACTION=show
;;
--store)
[ -n "$2" ] && CONF_FILE=$2
ACTION=store
shift 1
;;
--restore)
[ -n "$2" ] && CONF_FILE=$2
ACTION=restore
shift 1
;;
-h|--help)
usage
exit 0
;;
*)
usage "Unknown option: $1"
exit 1
;;
esac
shift 1
done
[ `whoami` != root ] && \
echo Error: Run this script\($0\) as a root user && exit 1
case $ACTION in
store)
if [ -e "${CONF_FILE}" ]; then
echo "File $CONF_FILE already exists. Can I overwrite it? Y/N:"
read answer
case $answer in
y|Y)
rm -f $CONF_FILE
;;
*)
echo "Error: file $CONF_FILE already exists!"
exit 1
;;
esac
fi
;;
restore)
if [ ! -e "${CONF_FILE}" ]; then
echo "Error: $CONF_FILE file not found !"
exit 1
fi
restore
exit 0
;;
esac
do_hotplug
do_clusterswitch
do_cpu
do_gpu
do_emc
# do_fan
}
if [ -e "/sys/devices/soc0/family" ]; then
SOCFAMILY="`cat /sys/devices/soc0/family`"
if [ -e "/sys/devices/soc0/machine" ]; then
machine=`cat /sys/devices/soc0/machine`
fi
elif [ -e "/proc/device-tree/compatible" ]; then
grep "nvidia,tegra210" /proc/device-tree/compatible &>/dev/null
if [ $? -eq 0 ]; then
SOCFAMILY="tegra210"
else
grep "nvidia,tegra186" /proc/device-tree/compatible &>/dev/null
if [ $? -eq 0 ]; then
SOCFAMILY="tegra186"
fi
fi
if [ -e "/proc/device-tree/model" ]; then
machine="`cat /proc/device-tree/model`"
fi
fi
main $@
exit 0
关于linux - 更改 TX1 中的 GPU 时钟速率时权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45779938/
我遇到了这个 Solidity 代码: tx.destination.call.value(tx.value)(tx.data) 但不明白它是如何工作的...尤其是最后的 tx.data。 最佳答案
我在“tx:annotation-driven”行中收到上述错误,但我已在 beans 文件的顶部声明了命名空间,为什么以下 XML 会导致此错误?
当应用程序处于后台且用户尚未登录商店时,用户在应用程序购买(沙盒环境)中取消时我有一些奇怪的行为: 过程如下: 用户未登录/App Id 未在“设置”>“商店”中设置 用户点击购买按钮。这会调用 [[
为什么我仍然收到此消息? Exception in thread "main" org.springframework.beans.factory.parsing.BeanDefinitionPars
使用直接从github下载的浏览器版本是否需要安装npm ethereumjs-tx。如果是,那么我们如何在脚本文件中导入ethereumjs-tx模块。因为据我所知,两者是不同的东西。 最佳答案 e
我希望对两个 tx 进行双重哈希处理,以便构建 merkle tree 这个 const bsv = require("bsv"); var tx1 = '3a459eab5f0cf8394a21e0
我知道Spring必须实现一个专门用于事务的“建议”,那么实现tx:advice的代码在哪里?标签? 我也会感谢 标签的实现,如果你能指出在 spring jar 中的位置。 最佳答案 Spring
我想要设备传输功率的值。有什么方法可以得到吗? 最佳答案 对于任何给定的现有蓝牙 ACL 连接,都有一个 HCI 命令来读取传输功率级别。 蓝牙核心规范,4.0,[第 2 卷],E 部分,7.3.35
我试图在同一个全局数组上发送 2 个不同的字符串,并通过 UART 传输 DMA,作为我的终端日志。然而,发生的情况是它发送了第一个字符串,无论我尝试什么(重新初始化整个 DMA 和 UART),它都
我有这个演示代码,我想对其进行分类: var Tx = require('ethereumjs-tx') var privateKey = new Buffer('e331b6d69882b4cb4e
我正在尝试从扭曲的应用程序中从 Internet 下载文件。由于它直接提供的其他功能或具有维护良好的库来提供(重试、代理、缓存控制等),我想使用请求来执行此操作。我对没有这些功能的扭曲的唯一解决方案持
java.lang.IllegalStateException: Existing transaction detected in JobRepository. Please fix this and
我是这个领域的新手 我正在使用 Arduino Mega2560 并将其与自动售货机的投币机连接。投币机运行在称为 MDB(多点总线)的协议(protocol)上,该协议(protocol)是 9 位
我已经在 Ubuntu 12.04 中下载并构建了 Teigha SDK。当我构建 Teigha SDK 时,会生成很多 .tx 文件。我不确定它们到底是什么。从命令提示符的消息来看,它似乎是共享库的
我知道每个 NIC 在 RAM 中都有其 RX/TX 环,用于操作系统接收/传输数据包。环中的一项(数据包描述符)包括数据包的物理地址,数据包的长度等。我想知道这个描述符是否指向一个sk_buff?如
据我所知,在信标发送的包中,它包含有关校准 Tx 功率(或测量功率 - 1 米处的功率值)的信息。我只是想知道为什么信标发送校准的 Tx 功率,而不是广播功率(信标从源发送的信号功率)。因为计算逻辑可
我想用 ethtool 禁用 tx-checksum-ipv4 这是输出 ethtool -k eth0 Features for eth0: rx-checksumming: off [fixed]
我正在尝试使用RegEx验证通配符,并且在\ somefile.tx之间进行区分时遇到麻烦了?和\ somefile.txt。 我已经走了这么远 \\[^\\]*\.[a-zA-Z0-9 ?]{3}$
使用 Asterisk 我可以设置 TX 和 RX 的音量。但这些选择是什么?我已经用谷歌搜索过这个但找不到任何东西。 TX和RX有什么区别? 最佳答案 RX 正在接收、传入。TX 正在发送,正在传出
我正在使用 petermetz/cordova-plugin-ibeacon 检测我的移动设备周围的信标。我可以看到插件提供了有关信标的以下信息,例如 uuid, major, minor, rssi
我是一名优秀的程序员,十分优秀!