SPEC CPU 2017 quick start

SPEC CPU 2017 quick start

我这里选择在 linux(ubuntu22.04.3) 上安装 SPEC CPU 2017,gcc、g++、gfortran 均使用 sudo apt install xxx 安装(其版本为11.4.0)

官方的 SPEC CPU 2017 在 Unix Systems 安装示例:

https://www.spec.org/cpu2017/Docs/install-guide-unix.html

1、首先要检查系统配置

以下是官方提供的系统需求:

在这里插入图片描述

我自己的配置:x86-64、Linux、32G内存、512G磁盘

2、验证下载

这部分我没有操作,官方提供示例为可选,我跳过了,可以参考官方的示例进行验证

3、挂在ISO镜像

根据自己的操作系统选择合适的方法装载镜像

我这里是 linux,nix Systems 安装示例:命令如下:

mount -t iso9660 -o ro,exec,loop cpu2017.iso /mnt

我在挂载的时候出现过无法挂载的情况,使用 sudo 权限得到了解决

4、进入挂载的目录
cd /mnt
5、使用install.sh
./install.sh

安装过程中可能需要选择安装的目录,一般安装在/home/xxx/cpu2017,其中xxx为用户名

随后确认,即可安装在指定的目录下

安装过程中会消耗一段时间来解压以及测试工具,测试完成后会提示installation successful

windows 上这一步使用 install.bat 安装时,出现 utf-8 相关的报错,没有在 windows 上成功安装,修改系统的默认编码为 utf-8 仍有问题,并没有找到合适的解决方案,遂放弃

6、设置路径、使用shrc或cshrc

使用如下命令查看shell是哪一种兼容

echo $SHELL

我这里是 bash,也就是 Bourne-shell 兼容的Bash shell,大多数应该是这种

所以应该使用的是 shrc

cd /home/xxx/cpu2017
source shrc

每次要执行 SPEC CPU 2017 时,要执行上述命令,在 cpu2017 目录下 source shrc !

7、选择配置未见并尝试构建一个基准测试
(1)查找配置文件

根据安装时的配置,其位于 /home/xxx/cpu2017/config,目录下的 Example* 即为安装的配置文件

官方提供了另一种方式:www.spec.org/cpu2017/results,查找当前系统类似的系统,单击 “配置” 链接

其中提供了很多公司提交的测试结果,并附上了其使用的配置

(2)命名

将选择的配置文件复制到配置目录中,并制定一个不使用空格的名称,最好该名称有有用的含义

$SPEC/config/JeffWantsYetAnotherTest.cfg

示例:

cp Example-gcc-linux-x86.cfg try1.cfg 

以下内容采用 vim 工具或其他文本编辑工具,对 try1.cfg 进行修改

(3)编辑标签

最好编辑并修改以下行

label=something

如果没有这样的行,就在顶部自己添加一行,标签是添加到二进制文件和目录中的任意标签,当需要查找运行目录、分析问题和清理磁盘空间时有用,最好使用有意义的名字,并且不允许有空格

示例:

%define label mytest
# 将上述内容修改成为如下内容
%define label firstrun
(4)其他编辑

下面几条为官方给的说明:

查找标记为 Edit 的位置并进行修改

查找路径并根据需要进行调整(例如编译器在/opt/bin但配置文件使用/usr/bin)

在配置文件中查找任何命令,并验证他们不会引起意外

SPEC CPU 配置文件可以执行任意 shell 命令,使用之前先阅读配置文件,不要以管理员身份运行

示例:

%define build_ncpus 8
# 比如修改成4,也可以在命令行中配置, runcpu --define build_ncpus=nn
%define build_ncpus 4
%define gcc_dir /SW/compilers/GCC/Linux/x86_64/gcc-6.3.0
# 这个根据实际情况修改成如下内容, gcc 地址看本地情况
%define gcc_dir /usr/bin/gcc

可以通过 diff 命令查看相较于 Example 修改了哪些内容

diff Example-gcc-linux-x86.cfg try1.cfg  | grep define
# 终端显示如下内容
< %define label mytest                # (2)      Use a label meaningful to *you*.
> %define label firstrun                # (2)      Use a label meaningful to *you*.
< %   define  build_ncpus 8      #      Or, you can set it on the command line: 
> %   define  build_ncpus 4      #      Or, you can set it on the command line: 
< %   define  gcc_dir        /SW/compilers/GCC/Linux/x86_64/gcc-6.3.0
> %   define  gcc_dir        /usr

注意:我这里的 gcc 使用 sudo apt 安装的,安装在 gcc 命令为 /usr/bin/gcc

之前配置 gcc_dir 为 /usr/bin/gcc(实际上是命令,而非地址),导致出现如下问题:

# 查看提示中的 "/home/jingyu/cpu2017/benchspec/CPU/505.mcf_r/build/build_base_firstrun-m64.0000/make.out" 有如下错误:
specmake: execvp: /usr/bin/gcc/bin/gcc: Not a directory
specmake: *** [/home/jingyu/cpu2017/benchspec/Makefile.defaults:347: mcf.o] Error 127

其中地址明显非本意,对于 sudo apt 安装的 gcc,gcc_dir 只需要填写 /usr 即可,会自动找到 bin/gcc,如果是手动编译的 gcc,则要使用为其创建的路径即可

(5)尝试建立一个单一的基准
# 前提:前面进行了 source shrc 的操作,否则可能找不到 runcpu 命令
runcpu --config=try1 --action=build 505.mcf_r

得到如下内容,则说明成功!

SPEC CPU(r) 2017 Benchmark Suites
Copyright 1995-2017 Standard Performance Evaluation Corporation (SPEC)

runcpu v5825
Using 'linux-x86_64' tools
Reading file manifests... read 32325 entries from 2 files in 0.07s (470161 files/s)
Loading runcpu modules.................
Locating benchmarks...found 47 benchmarks in 53 benchsets.
Reading config file '/home/jingyu/cpu2017/config/try1.cfg'
1 configuration selected:

Action   Benchmarks
------   ----------------------------------------------------------------------
build    505.mcf_r                                                             
-------------------------------------------------------------------------------

Setting up environment for running 505.mcf_r...
Starting runcpu for 505.mcf_r...部分
Running "specperl /home/jingyu/cpu2017/bin/sysinfo" to gather system information.
sysinfo: r5797 of 2017-06-14 (96c45e4568ad54c135fd618bcc091c0f)
sysinfo: Getting system information for Linux...
sysinfo: ...getting CPU info
sysinfo: ...getting info from numactl
sysinfo: ...getting memory info
sysinfo: ...getting OS info
sysinfo: ...getting disk info
sysinfo: ...trying to get DIMM info from dmidecode
Retrieving flags file (/home/jingyu/cpu2017/config/flags/gcc.xml)...
Benchmarks selected: 505.mcf_r
Compiling Binaries
  Building 505.mcf_r base firstrun-m64: (build_base_firstrun-m64.0000) [2024-01-15 17:05:50]

Build successes for intrate: 505.mcf_r(base)
Build errors for intrate: None

Build Complete
The log for this run is in /home/jingyu/cpu2017/result/CPU2017.005.log

runcpu finished at 2024-01-15 17:05:52; 2 total seconds elapsed
(5) 尝试编译一个完整的套件并测试负载

SPEC CPU 2017 包含 43 个benchmarks,它们被分成了 4 个套件:

  • int rate
  • int speed
  • fp rate
  • fp speed
# 示例
runcpu --config=try1 --size=test --copies=1 --noreportable --iterations=1 intrate

参数表示:选择最小的工作负载大小,确保仅运行一份副本,CPU 不应该进行完整的、可报告的运行,每个基准仅运行一次

遇到的相关问题采用如下方式解决:

  • 502.gcc_r 编译报错:部分

https://blog.csdn.net/yi_1973/article/details/83150183

在 OPTIMIZE 后添加了一个配置选项 fgnu89-inline

# EDIT if needed -- Older GCC might not support some of the optimization
#                   switches here.  See also 'About the -fno switches' below.
#
default=base:        # flags for all base 
   OPTIMIZE       = -g -O3 -march=native -fno-unsafe-math-optimizations  -fno-tree-loop-vectorize -fgnu89-inline

对于 502、602 这样的问题,GPT 4:在旧版本的GCC中,-fgnu89-inline 是默认的内联行为,新版本中可能已经发生改变,显示指定该内联行为

注意:该套件下部分测试需要使用g++、gfortran,也需要安装,我使用 sudo apt install g++ gfortran 将其安装在 /usr/bin 目录下

  • 520.omnetpp_r 执行报错如下:
...
520.omnetpp_r: copy 0 non-zero return code (exit code=1, signal=0)

****************************************
Contents of omnetpp.General-0.err
****************************************
<!> Error during startup: Register_Function() or cMathFunction: attempt to register function "SPEC_HYPOT" with wrong number of arguments 2, should be 3.
...

参考

https://www.codetds.com/article/16153919

https://github.com/ccelio/Speckle/issues/21

在 try1.cfg 里补充以下内容:

# Benchmark-specific portability (ordered by last 2 digits of bmark number)
...
520.omnetpp_r:
   CXXPORTABILITY  = -Wno-error=register --std=c++14
...# SPEC CPU 2017 quick start

我这里选择在 **linux(ubuntu22.04.3)** 上安装 SPEC CPU 2017,gcc、g++、gfortran 均使用 sudo apt install xxx 安装(其版本为11.4.0)

官方的 SPEC CPU 2017 在 Unix Systems 安装示例:

https://www.spec.org/cpu2017/Docs/install-guide-unix.html

#### 1、首先要检查系统配置

以下是官方提供的系统需求:

![select 24-01-15 15-45-26](/home/jingyu/图片/shutter/select 24-01-15 15-45-26.png)

我自己的配置:x86-64、Linux、32G内存、512G磁盘

#### 2、验证下载

这部分我没有操作,官方提供示例为可选,我跳过了,可以参考官方的示例进行验证

#### 3、挂在ISO镜像

根据自己的操作系统选择合适的方法装载镜像

我这里是 linux,nix Systems 安装示例:命令如下:

```shell
mount -t iso9660 -o ro,exec,loop cpu2017.iso /mnt

我在挂载的时候出现过无法挂载的情况,使用 sudo 权限得到了解决

4、进入挂载的目录
cd /mnt
5、使用install.sh
./install.sh

安装过程中可能需要选择安装的目录,一般安装在/home/xxx/cpu2017,其中xxx为用户名

随后确认,即可安装在指定的目录下

安装过程中会消耗一段时间来解压以及测试工具,测试完成后会提示installation successful

windows 上这一步使用 install.bat 安装时,出现 utf-8 相关的报错,没有在 windows 上成功安装,修改系统的默认编码为 utf-8 仍有问题,并没有找到合适的解决方案,遂放弃

6、设置路径、使用shrc或cshrc

使用如下命令查看shell是哪一种兼容

echo $SHELL

我这里是 bash,也就是 Bourne-shell 兼容的Bash shell,大多数应该是这种

所以应该使用的是 shrc

cd /home/xxx/cpu2017
source shrc

每次要执行 SPEC CPU 2017 时,要执行上述命令,在 cpu2017 目录下 source shrc !

7、选择配置未见并尝试构建一个基准测试
(1)查找配置文件

根据安装时的配置,其位于 /home/xxx/cpu2017/config,目录下的 Example* 即为安装的配置文件

官方提供了另一种方式:www.spec.org/cpu2017/results,查找当前系统类似的系统,单击 “配置” 链接

其中提供了很多公司提交的测试结果,并附上了其使用的配置

(2)命名

将选择的配置文件复制到配置目录中,并制定一个不使用空格的名称,最好该名称有有用的含义

$SPEC/config/JeffWantsYetAnotherTest.cfg

示例:

cp Example-gcc-linux-x86.cfg try1.cfg 

以下内容采用 vim 工具或其他文本编辑工具,对 try1.cfg 进行修改

(3)编辑标签

最好编辑并修改以下行

label=something

如果没有这样的行,就在顶部自己添加一行,标签是添加到二进制文件和目录中的任意标签,当需要查找运行目录、分析问题和清理磁盘空间时有用,最好使用有意义的名字,并且不允许有空格

示例:

%define label mytest
# 将上述内容修改成为如下内容
%define label firstrun
(4)其他编辑

下面几条为官方给的说明:

查找标记为 Edit 的位置并进行修改

查找路径并根据需要进行调整(例如编译器在/opt/bin但配置文件使用/usr/bin)

在配置文件中查找任何命令,并验证他们不会引起意外

SPEC CPU 配置文件可以执行任意 shell 命令,使用之前先阅读配置文件,不要以管理员身份运行

示例:

%define build_ncpus 8
# 比如修改成4,也可以在命令行中配置, runcpu --define build_ncpus=nn
%define build_ncpus 4
%define gcc_dir /SW/compilers/GCC/Linux/x86_64/gcc-6.3.0
# 这个根据实际情况修改成如下内容, gcc 地址看本地情况
%define gcc_dir /usr/bin/gcc

可以通过 diff 命令查看相较于 Example 修改了哪些内容

diff Example-gcc-linux-x86.cfg try1.cfg  | grep define
# 终端显示如下内容
< %define label mytest                # (2)      Use a label meaningful to *you*.
> %define label firstrun                # (2)      Use a label meaningful to *you*.
< %   define  build_ncpus 8      #      Or, you can set it on the command line: 
> %   define  build_ncpus 4      #      Or, you can set it on the command line: 
< %   define  gcc_dir        /SW/compilers/GCC/Linux/x86_64/gcc-6.3.0
> %   define  gcc_dir        /usr

注意:我这里的 gcc 使用 sudo apt 安装的,安装在 gcc 命令为 /usr/bin/gcc

之前配置 gcc_dir 为 /usr/bin/gcc(实际上是命令,而非地址),导致出现如下问题:

# 查看提示中的 "/home/jingyu/cpu2017/benchspec/CPU/505.mcf_r/build/build_base_firstrun-m64.0000/make.out" 有如下错误:
specmake: execvp: /usr/bin/gcc/bin/gcc: Not a directory
specmake: *** [/home/jingyu/cpu2017/benchspec/Makefile.defaults:347: mcf.o] Error 127

其中地址明显非本意,对于 sudo apt 安装的 gcc,gcc_dir 只需要填写 /usr 即可,会自动找到 bin/gcc,如果是手动编译的 gcc,则要使用为其创建的路径即可

(5)尝试建立一个单一的基准
# 前提:前面进行了 source shrc 的操作,否则可能找不到 runcpu 命令
runcpu --config=try1 --action=build 505.mcf_r

得到如下内容,则说明成功!

SPEC CPU(r) 2017 Benchmark Suites
Copyright 1995-2017 Standard Performance Evaluation Corporation (SPEC)

runcpu v5825
Using 'linux-x86_64' tools
Reading file manifests... read 32325 entries from 2 files in 0.07s (470161 files/s)
Loading runcpu modules.................
Locating benchmarks...found 47 benchmarks in 53 benchsets.
Reading config file '/home/jingyu/cpu2017/config/try1.cfg'
1 configuration selected:

Action   Benchmarks
------   ----------------------------------------------------------------------
build    505.mcf_r                                                             
-------------------------------------------------------------------------------

Setting up environment for running 505.mcf_r...
Starting runcpu for 505.mcf_r...部分
Running "specperl /home/jingyu/cpu2017/bin/sysinfo" to gather system information.
sysinfo: r5797 of 2017-06-14 (96c45e4568ad54c135fd618bcc091c0f)
sysinfo: Getting system information for Linux...
sysinfo: ...getting CPU info
sysinfo: ...getting info from numactl
sysinfo: ...getting memory info
sysinfo: ...getting OS info
sysinfo: ...getting disk info
sysinfo: ...trying to get DIMM info from dmidecode
Retrieving flags file (/home/jingyu/cpu2017/config/flags/gcc.xml)...
Benchmarks selected: 505.mcf_r
Compiling Binaries
  Building 505.mcf_r base firstrun-m64: (build_base_firstrun-m64.0000) [2024-01-15 17:05:50]

Build successes for intrate: 505.mcf_r(base)
Build errors for intrate: None

Build Complete
The log for this run is in /home/jingyu/cpu2017/result/CPU2017.005.log

runcpu finished at 2024-01-15 17:05:52; 2 total seconds elapsed
(5) 尝试编译一个完整的套件并测试负载

SPEC CPU 2017 包含 43 个benchmarks,它们被分成了 4 个套件:

  • int rate
  • int speed
  • fp rate
  • fp speed
# 示例
runcpu --config=try1 --size=test --copies=1 --noreportable --iterations=1 intrate

参数表示:选择最小的工作负载大小,确保仅运行一份副本,CPU 不应该进行完整的、可报告的运行,每个基准仅运行一次

遇到的相关问题采用如下方式解决:

  • 502.gcc_r 编译报错:部分

https://blog.csdn.net/yi_1973/article/details/83150183

在 OPTIMIZE 后添加了一个配置选项 fgnu89-inline

# EDIT if needed -- Older GCC might not support some of the optimization
#                   switches here.  See also 'About the -fno switches' below.
#
default=base:        # flags for all base 
   OPTIMIZE       = -g -O3 -march=native -fno-unsafe-math-optimizations  -fno-tree-loop-vectorize -fgnu89-inline

对于 502、602 这样的问题,GPT 4:在旧版本的GCC中,-fgnu89-inline 是默认的内联行为,新版本中可能已经发生改变,显示指定该内联行为

注意:该套件下部分测试需要使用g++、gfortran,也需要安装,我使用 sudo apt install g++ gfortran 将其安装在 /usr/bin 目录下

  • 520.omnetpp_r 执行报错如下:
...
520.omnetpp_r: copy 0 non-zero return code (exit code=1, signal=0)

****************************************
Contents of omnetpp.General-0.err
****************************************
<!> Error during startup: Register_Function() or cMathFunction: attempt to register function "SPEC_HYPOT" with wrong number of arguments 2, should be 3.
...

参考

https://www.codetds.com/article/16153919

https://github.com/ccelio/Speckle/issues/21

在 try1.cfg 里补充以下内容:

# Benchmark-specific portability (ordered by last 2 digits of bmark number)
...
520.omnetpp_r:
   CXXPORTABILITY  = -Wno-error=register --std=c++14
...

并未对原因进行分析,通过查阅资料的方式暂时解决了以上问题

最终的结果保存在/home/jingyu/cpu2017/result

可以通过浏览器查看 html 格式的结果(这里仅展示部分内容)

在这里插入图片描述

8、尝试执行一个可报告的run

上面一切正常,就可以尝试该部分

# 查看本机有几个物理核心
grep 'core id' /proc/cpuinfo | sort | uniq
# 查看本机有几个硬件线程	(超线程技术相关)
grep 'processor' /proc/cpuinfo | sort | uniq

以上信息也可以通过 lscpu 命令查看,并且会更仔细

我这里是 1 个物理CPU、包括 8 个核心、16 个硬件线程

对于个人电脑,一般为一个socket,即一个肉眼可以看得见的CPU插槽

一个 CPU 由多个核心组成,一个核心可以通过超线程技术执行多个硬件线程(一般为两个)

服务器等高性能计算机系统一般会有多个物理 CPU 插槽(socket)

SPECrate 和 SPECspeed 都可以测试多个芯片/核心/硬件线程

  • 对于 SPECrate 可以设置 copies 的数量
  • 对于 SPECspeed 可以设置 threads 的数量

示例:

# 修改 try1.cfg 文件
# 因为我是 8 个核心, 所以设置为了 8
intrate,fprate:
   copies           = 8   # EDIT to change number of copies (see above)

# 可以尝试匹配核心数量或者也可以根据 grep -c processor /proc/cpuinfo 来进行设置
# 以下是配置文件中对其的描述:
#		copies - This config file defaults to testing only 1 copy.   You might
#              try changing it to match the number of cores on your system, 
#              or perhaps the number of virtual CPUs as reported by:
#                     grep -c processor /proc/cpuinfo
#              Be sure you have enough memory.  See:
#              https://www.spec.org/cpu2017/Docs/system-requirements.html#memory

执行:

runcpu --config=try1 --reportable intrate

等待执行完成即可


> 并未对原因进行分析,通过查阅资料的方式暂时解决了以上问题

最终的结果保存在`/home/jingyu/cpu2017/result`

可以通过浏览器查看 html 格式的结果(这里仅展示部分内容)

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=%2Fhome%2Fjingyu%2F.config%2FTypora%2Ftypora-user-images%2Fimage-20240115184335567.png&pos_id=img-1BKYPsME-1705642519698)



#### 8、尝试执行一个可报告的run

上面一切正常,就可以尝试该部分

```shell
# 查看本机有几个物理核心
grep 'core id' /proc/cpuinfo | sort | uniq
# 查看本机有几个硬件线程	(超线程技术相关)
grep 'processor' /proc/cpuinfo | sort | uniq

以上信息也可以通过 lscpu 命令查看,并且会更仔细

我这里是 1 个物理CPU、包括 8 个核心、16 个硬件线程

对于个人电脑,一般为一个socket,即一个肉眼可以看得见的CPU插槽

一个 CPU 由多个核心组成,一个核心可以通过超线程技术执行多个硬件线程(一般为两个)

服务器等高性能计算机系统一般会有多个物理 CPU 插槽(socket)

SPECrate 和 SPECspeed 都可以测试多个芯片/核心/硬件线程

  • 对于 SPECrate 可以设置 copies 的数量
  • 对于 SPECspeed 可以设置 threads 的数量

示例:

# 修改 try1.cfg 文件
# 因为我是 8 个核心, 所以设置为了 8
intrate,fprate:
   copies           = 8   # EDIT to change number of copies (see above)

# 可以尝试匹配核心数量或者也可以根据 grep -c processor /proc/cpuinfo 来进行设置
# 以下是配置文件中对其的描述:
#		copies - This config file defaults to testing only 1 copy.   You might
#              try changing it to match the number of cores on your system, 
#              or perhaps the number of virtual CPUs as reported by:
#                     grep -c processor /proc/cpuinfo
#              Be sure you have enough memory.  See:
#              https://www.spec.org/cpu2017/Docs/system-requirements.html#memory

执行:

runcpu --config=try1 --reportable intrate

等待执行完成即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/333133.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024-01-18 在Android Studio中,可以通过修改build.gradle文件(位于你的应用模块目录下)来自定义生成的APK名称

一、在Android Studio中&#xff0c;可以通过修改build.gradle文件&#xff08;位于你的应用模块目录下&#xff09;来自定义生成的APK名称&#xff0c;在build.gradle里面增加下面的代码 applicationVariants.all { variant ->variant.outputs.all {outputFileName "…

349. 两个数组的交集(力扣)(OJ题)

题目链接&#xff1a;349. 两个数组的交集 - 力扣&#xff08;LeetCode&#xff09; 个人博客主页&#xff1a;https://blog.csdn.net/2301_79293429?typeblog 专栏&#xff1a;https://blog.csdn.net/2301_79293429/category_12545690.html 给定两个数组 nums1 和 nums2 &a…

json-server的基础使用

json-server 是什么? 用来快速搭建模拟的 REST API 的工具包 可以30秒内快速为我们搭建一个假的基于 REST API的服务 我们要如何使用呢&#xff1f; 1.先安装 //全局安装 npm i -g json-server 2.创建文件 db.json 我们需要在db.json放入一点内容 放入示例&#xff1a; {/…

用 Python 制作可视化 GUI 界面,一键实现证件照背景颜色的替换

今天&#xff0c;我们来分享一下如何通过Python的十来行代码来替换证件照的背景颜色&#xff0c;那么在最后&#xff0c;小编也会将上述的流程制作成一个GUI界面来方便大家使用。关于界面的大致模样其实和先前的相差不大&#xff0c;大家应该都看过上一篇的内容 界面大体的样子…

Python项目——久坐提醒定时器(PySide6)编写

1、介绍 使用Python编写一个久坐提醒软件。功能&#xff1a; 设置工作时间。设置休息时间。选择休息时是否播放音乐。休息时&#xff0c;软件置顶&#xff0c;且不能关闭。 2、工具 语言&#xff1a;python3.11UI设计工具&#xff1a;Qt designer编译器&#xff1a;PyCharm包…

北斗卫星:助力社区矫正人员追踪与管理的科技突破

北斗卫星&#xff1a;助力社区矫正人员追踪与管理的科技突破 社区矫正人员是一个重要的社会群体&#xff0c;他们的安全和管理对于社会的和谐稳定至关重要。随着技术的飞跃发展&#xff0c;北斗卫星系统作为我国自主研发的卫星导航系统&#xff0c;正逐渐在社区矫正工作中发挥…

《世界之外》提前开测,网易打响国乙大战

1月18日&#xff0c;国乙市场迎来了一场大战。 原定于1月26日开服的网易新乙游《世界之外》&#xff0c;突然宣布在1月18日进行不删档、不限量测试&#xff0c;从某种意义上来说&#xff0c;其实就等同于提前公测。 而同一天开服的还有叠纸的全新3D乙游《恋与深空》&#xff…

比特币狂人引爆达沃斯论坛

点击查看TechubNews原文链接&#xff1a;比特币狂人引爆达沃斯论坛 比特币狂人、自称无政府资本主义者的阿根廷总统米莱在达沃斯的最新演讲引爆社交网络大讨论。 1 月 15 日&#xff0c;第 54 届世界经济论坛在瑞士阿尔卑斯山的达沃斯开幕。来自约 60 个国家首脑和跨国公司的领…

音乐人声分离工具:极简的人声和背景音乐分离工具

这是一个极简的人声和背景音乐分离工具&#xff0c;本地化网页操作&#xff0c;无需连接外网&#xff0c;使用 2stems/4stems/5stems 模型。 将一首歌曲或者含有背景音乐的音视频文件&#xff0c;拖拽到本地网页中&#xff0c;即可将其中的人声和音乐声分离为单独的音频wav文件…

编程笔记 html5cssjs 045 网页布局

编程笔记 html5&css&js 045 网页布局 一、网页布局二、头部区域三、菜单导航区域三、内容区域四、不相等的列五、底部区域六、box-sizingbox-sizing 属性可以被用来调整这些表现&#xff1a;属性值content-boxborder-box 六、响应式网页布局小结 网页布局有很多种方式&…

MySQL(视图,存储函数,存储过程)

作业1&#xff1a; 作业实现&#xff1a; 首先创建学生表&#xff0c;课程表&#xff0c;以及学生选课表。 CREATE TABLE Student (Sno INT PRIMARY KEY,Sname VARCHAR(20) NOT NULL,Ssex CHAR(1) CHECK (Ssex IN (男, 女)),Sage INT,SDept VARCHAR(20) DEFAULT 计算机 );CRE…

zabbix监控扩展

目录 一、zabbix自动发现与自动注册 &#xff08;一&#xff09;理论定义 1.自动发现 2.自动注册 &#xff08;二&#xff09;实操部署 1.自动发现 &#xff08;1&#xff09;新增一台客户端命名为zbx-agent02 ① 配置时间同步 ② 在服务端和客户端上配置 hosts 解析 …

枚举类型缝缝补补

✅作者简介&#xff1a;大家好&#xff0c;我是橘橙黄又青&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;橘橙黄又青-CSDN博客 1.关键字enum的定义 enum是C语言中的一个关键字&#xff0c;enum叫枚举数据类型&#…

天津想转行学python培训班靠谱吗?

现在的职业如此繁多&#xff0c;很多人把高薪当成衡量工作好坏的重要标准&#xff0c;因此IT行业以超出其他行业几倍薪资水平成为不错的选择&#xff0c;而Python又以其简单易学好上手成为大家所青睐的学习目标。 Python发展前景如何 Python语言就业发展方向广泛&#xff1a;…

C-Lodop (Print)前端自定义打印控件

1.首先安装C-Lodop.exe软件&#xff0c;参考地址 Welcome to C-Lodop 2.软件下载地址 下载中心 - Lodop和C-Lodop官网主站 3.案列 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><script srchttp://19…

Nginx前后端分离部署springboot和vue项目

Nginx前后端分离部署springboot和vue项目&#xff0c;其实用的比较多&#xff0c;有的小伙伴对其原理和配置还一知半解&#xff0c;现在就科普一下&#xff1a; 1、准备后端项目 后端工程无论是微服务还是单体&#xff0c;一般最终都是jar启动&#xff0c;关键点就是把后端服…

谷达冠楠科技:抖音开网店新手小白可以卖的产品

随着互联网的发展&#xff0c;越来越多的人选择在网上开设自己的店铺。而抖音作为目前最火的短视频平台&#xff0c;也提供了开店的功能。那么&#xff0c;对于新手小白来说&#xff0c;抖音开网店可以卖哪些产品呢? 我们可以考虑的是服装类商品。抖音上有很多时尚博主&#x…

工厂企业消防安全AI可视化视频智能监管解决方案

一、方案背景 2023年11月20日下午6时30分许&#xff0c;位于江苏省无锡市惠山区前洲街道的某公司突发严重火灾&#xff0c;共造成7人死亡。这次火灾提醒我们工业安全至关重要&#xff0c;企业都应该时刻保持警惕&#xff0c;加强安全意识和培训&#xff0c;提高应对突发事件的…

【单片机】改写DS2431芯片的地址码,地址ROM,DS2431芯片解密

对DS2431里面的128字节可以进行任意读写&#xff0c;方式可以看这里&#xff1a;https://blog.csdn.net/x1131230123/article/details/132248958 但DS2431芯片的地址码是光刻不可修改的&#xff0c;所以只有使用模拟芯片。 原理&#xff1a; https://www.dianyuan.com/article…

“一键中日文件夹名转换 - 批量修改,轻松实现中文到日语的名称翻译“

在处理大量文件夹时&#xff0c;你是否曾为中日文件夹名称的转换而感到困扰&#xff1f;现在&#xff0c;有了我们的批量修改工具&#xff0c;这些烦恼全部消失&#xff01;只需简单几步&#xff0c;就能将中文名的文件夹名称翻译成日语&#xff0c;让你的文件管理更加高效。 …