Тест полосы пропускания RoCE/IB сетевой карты RDMA MellanoxCX-4
Тест полосы пропускания RoCE/IB сетевой карты RDMA MellanoxCX-4

введение

Эта статья используется только для обмена и записи базового содержания изучения сетевого протокола RDMA/RoCE v2. Если есть какие-либо ошибки, пожалуйста, оставьте сообщение в области комментариев.

Основные типы и выбор сетевых карт

В мире центров обработки данных, высокопроизводительных вычислений и сетевых хранилищ выбор оборудования сетевых карт имеет решающее значение для обеспечения производительности, надежности и эффективности системы. Поскольку я делаю это в учебных целях, я стараюсь выбирать недорогую сетевую карту, поддерживающую RDMA. Существует множество сетевых карт Mellanox: некоторые поддерживают VPI, некоторые поддерживают только Ethernet, а некоторые поддерживают только Infiniband. Выбрать подходящую сетевую карту вы можете по ссылке ниже.

firmware-download

аппаратное обеспечение

Сетевая карта: Mellanox ConnectX-4 MCX455A-ECAT 100G 2 шт.

Оптический модуль: оптический модуль 100G QSFP28 AOC

Операционная система: Ubuntu20.04.

Тестовая машина: ASUS z390 — материнская плата, память 4G, DDR4

1. Mellanox ConnectX-4 setup

1.1 Проверьте, пронумеровано ли устройство сетевой карты:

Язык кода:sh
копировать
bing@ubuntu2004:~$ lspci -k | grep Mellanox
01:00.0 Ethernet controller: Mellanox Technologies MT27700 Family [ConnectX-4]
	Subsystem: Mellanox Technologies MT27700 Family [ConnectX-4]
02:00.0 Ethernet controller: Mellanox Technologies MT27700 Family [ConnectX-4]
	Subsystem: Mellanox Technologies MT27700 Family [ConnectX-4]

Если отображается вышеуказанное содержимое, значит, устройство сетевой карты было пронумеровано.

1.2 Скачать драйвер mlnx_ofed

ссылка для скачивания драйвера mlox_ofed

Согласно подсказкам, поскольку у меня сетевая карта ConnectX-4, я выбрал версию MLNX_OFED 5.4/5.8-x LTS.

Центр загрузки MLNX_OFED позволяет вам выбрать нужный вам ISO-файл.

download center
download center

1.3 Установите драйвер mlnx_ofed

Скопируйте ISO-файл на тестовую машину, выполните команду монтирования, а затем выполните сценарий mlnxofedinstall. Во время выполнения этого сценария будут скомпилированы некоторые модули ядра, что будет медленнее, поэтому просто терпеливо ждите. После установки драйвера вам будет предложено перезагрузить компьютер.

Язык кода:sh
копировать
➜ scp -r MLNX_OFED_LINUX-5.8-4.1.5.0-ubuntu20.04-x86_64.iso bing@192.168.100.101:/tmp
root@ubuntu2004:/tmp# mount -o ro,loop MLNX_OFED_LINUX-5.8-4.1.5.0-ubuntu20.04-x86_64.iso /mnt/
root@ubuntu2004:/tmp# cd /mnt/
root@ubuntu2004:/mnt# ls
DEBS     RPM-GPG-KEY-Mellanox  common_installers.pl            distro  mlnx-ofed-keyring.gpg       mlnxofedinstall  uninstall.sh
LICENSE  common.pl             create_mlnx_ofed_installers.pl  docs    mlnx_add_kernel_support.sh  src
root@ubuntu2004:/mnt#./mlnxofedinstall

Журнал установки будет храниться в каталоге /tmp. Если вам необходимо подтвердить конкретную модель купленной сетевой карты, вы можете использовать команду, чтобы найти ключевое слово Part Number.

Язык кода:sh
копировать
root@ubuntu2004:/tmp# grep -Rsn "Part Number" ./
./mlnx_fw_update.log:8:  Part Number:      MCX455A-ECA_Ax
./mlnx_fw_update.log:28:  Part Number:      MCX455A-ECA_Ax
root@ubuntu2004:/tmp#

1.4 Просмотр результатов установки

Большая часть результатов установки находится в каталоге /usr, некоторые — в каталоге /opt/, а установки, связанные с драйверами, — в каталоге /lib/modules/.

Язык кода:sh
копировать
root@ubuntu2004:/lib/modules/5.15.0-107-generic/updates/dkms# ls
ib_cm.ko     ib_iser.ko   ib_umad.ko    iw_cm.ko      mlx5_ib.ko     mlxfw.ko        rdma_cm.ko
ib_core.ko   ib_isert.ko  ib_uverbs.ko  knem.ko       mlx_compat.ko  mst_pci.ko      rdma_ucm.ko
ib_ipoib.ko  ib_srp.ko    irdma.ko      mlx5_core.ko  mlxdevm.ko     mst_pciconf.ko  scsi_transport_srp.ko
root@ubuntu2004:/lib/modules/5.15.0-107-generic/updates/dkms#
  • ib_cm.ko, ib_core.ko, ib_ipoib.ko, ib_iser.ko, ib_isert.ko, ib_srp.ko, ib_umad.ko, ib_uverbs.ko: это модули драйверов InfiniBand, отвечающие за различные уровни протоколов связи InfiniBand.
  • mlx5_core.ko, mlx5_ib.ko: это модули драйверов для сетевых устройств, производимые Mellanox Technologies и поддерживающие сетевые интерфейсные карты Mellanox Ethernet и InfiniBand.
  • rdma_cm.ko, rdma_ucm.ko: Эти модули поддерживают менеджер соединений RDMA (Remote Direct Memory Access).
  • knem.ko: Это модуль ядра.,Поддерживает высокопроизводительные операции с памятью.,Обычно используется в высокопроизводительных вычислительных средах.
  • mst_pci.ko, mst_pciconf.ko: эти модули представляют собой инструменты управления устройствами Mellanox, используемые для настройки и управления устройствами, подключенными через PCI.
  • scsi_transport_srp.ko: Модуль поддержки транспортного уровня для протокола SCSI over RDMA, позволяющий транспортировать SCSI через интерфейс RDMA.

2 Конфигурация сетевой карты MellanoxCX-4

2.1 mst(Mellanox Software Tools) или команду ibv_devinfoдля показа и проверкиMellanoxстатус устройства

Язык кода:txt
копировать
root@ubuntu2004:~# mst status
MST modules:
------------
    MST PCI module is not loaded
    MST PCI configuration module loaded

MST devices:
------------
/dev/mst/mt4115_pciconf0         - PCI configuration cycles access.
                                   domain:bus:dev.fn=0000:01:00.0 addr.reg=88 data.reg=92 cr_bar.gw_offset=-1
                                   Chip revision is: 00
/dev/mst/mt4115_pciconf1         - PCI configuration cycles access.
                                   domain:bus:dev.fn=0000:02:00.0 addr.reg=88 data.reg=92 cr_bar.gw_offset=-1
                                   Chip revision is: 00

root@ubuntu2004:~#
Язык кода:txt
копировать
root@ubuntu2004:~# ibv_devinfo
hca_id:	mlx5_0
	transport:			InfiniBand (0)
	fw_ver:				12.28.2006
	node_guid:			248a:0703:009c:81c4
	sys_image_guid:			248a:0703:009c:81c4
	vendor_id:			0x02c9
	vendor_part_id:			4115
	hw_ver:				0x0
	board_id:			MT_2180110032
	phys_port_cnt:			1
		port:	1
			state:			PORT_ACTIVE (4)
			max_mtu:		4096 (5)
			active_mtu:		1024 (3)
			sm_lid:			0
			port_lid:		0
			port_lmc:		0x00
			link_layer:		Ethernet

hca_id:	mlx5_1
	transport:			InfiniBand (0)
	fw_ver:				12.28.2006
	node_guid:			248a:0703:00a0:199a
	sys_image_guid:			248a:0703:00a0:199a
	vendor_id:			0x02c9
	vendor_part_id:			4115
	hw_ver:				0x0
	board_id:			MT_2180110032
	phys_port_cnt:			1
		port:	1
			state:			PORT_ACTIVE (4)
			max_mtu:		4096 (5)
			active_mtu:		1024 (3)
			sm_lid:			0
			port_lid:		0
			port_lmc:		0x00
			link_layer:		Ethernet

root@ubuntu2004:~#

2.2 Используйте команду mlxconfig для запроса информации о параметрах, поддерживаемых устройством.

Вы можете установить сетевую карту на IB (1) или Ethernet (2), изменив параметр LINK_TYPE_P1.

Язык кода:txt
копировать
root@ubuntu2004:~# mlxconfig  -d /dev/mst/mt4115_pciconf0 q

Device #1:
----------

Device type:    ConnectX4
Name:           MCX455A-ECA_Ax
Description:    ConnectX-4 VPI adapter card; EDR IB (100Gb/s) and 100GbE; single-port QSFP28; PCIe3.0 x16; ROHS R6
Device:         /dev/mst/mt4115_pciconf0

Configurations:                                      Next Boot
         MEMIC_BAR_SIZE                              0
         MEMIC_SIZE_LIMIT                            _256KB(1)
         FLEX_PARSER_PROFILE_ENABLE                  0
         FLEX_IPV4_OVER_VXLAN_PORT                   0
         ROCE_NEXT_PROTOCOL                          254
         NON_PREFETCHABLE_PF_BAR                     False(0)
         VF_VPD_ENABLE                               False(0)
         STRICT_VF_MSIX_NUM                          False(0)
         VF_NODNIC_ENABLE                            False(0)
         NUM_PF_MSIX_VALID                           True(1)
         NUM_OF_VFS                                  0
         NUM_OF_PF                                   1
         FPP_EN                                      True(1)
         SRIOV_EN                                    False(0)
         PF_LOG_BAR_SIZE                             5
         VF_LOG_BAR_SIZE                             1
         NUM_PF_MSIX                                 63
         NUM_VF_MSIX                                 11
         INT_LOG_MAX_PAYLOAD_SIZE                    AUTOMATIC(0)
         PCIE_CREDIT_TOKEN_TIMEOUT                   0
         PARTIAL_RESET_EN                            False(0)
         SW_RECOVERY_ON_ERRORS                       False(0)
         RESET_WITH_HOST_ON_ERRORS                   False(0)
         PCI_DOWNSTREAM_PORT_OWNER                   Array[0..15]
         CQE_COMPRESSION                             BALANCED(0)
         IP_OVER_VXLAN_EN                            False(0)
         MKEY_BY_NAME                                False(0)
         UCTX_EN                                     True(1)
         PCI_ATOMIC_MODE                             PCI_ATOMIC_DISABLED_EXT_ATOMIC_ENABLED(0)
         TUNNEL_ECN_COPY_DISABLE                     False(0)
         LRO_LOG_TIMEOUT0                            6
         LRO_LOG_TIMEOUT1                            7
         LRO_LOG_TIMEOUT2                            8
         LRO_LOG_TIMEOUT3                            13
         TX_SCHEDULER_BURST                          0
         LOG_DCR_HASH_TABLE_SIZE                     14
         MAX_PACKET_LIFETIME                         0
         DCR_LIFO_SIZE                               16384
         LINK_TYPE_P1                                ETH(2)
         ROCE_CC_PRIO_MASK_P1                        255
         CLAMP_TGT_RATE_AFTER_TIME_INC_P1            True(1)
         CLAMP_TGT_RATE_P1                           False(0)
         RPG_TIME_RESET_P1                           300
         RPG_BYTE_RESET_P1                           32767
         RPG_THRESHOLD_P1                            1
         RPG_MAX_RATE_P1                             0
         RPG_AI_RATE_P1                              5
         RPG_HAI_RATE_P1                             50
         RPG_GD_P1                                   11
         RPG_MIN_DEC_FAC_P1                          50
         RPG_MIN_RATE_P1                             1
         RATE_TO_SET_ON_FIRST_CNP_P1                 0
         DCE_TCP_G_P1                                1019
         DCE_TCP_RTT_P1                              1
         RATE_REDUCE_MONITOR_PERIOD_P1               4
         INITIAL_ALPHA_VALUE_P1                      1023
         MIN_TIME_BETWEEN_CNPS_P1                    0
         CNP_802P_PRIO_P1                            6
         CNP_DSCP_P1                                 48
         LLDP_NB_DCBX_P1                             False(0)
         LLDP_NB_RX_MODE_P1                          OFF(0)
         LLDP_NB_TX_MODE_P1                          OFF(0)
         DCBX_IEEE_P1                                True(1)
         DCBX_CEE_P1                                 True(1)
         DCBX_WILLING_P1                             True(1)
         KEEP_ETH_LINK_UP_P1                         True(1)
         KEEP_IB_LINK_UP_P1                          False(0)
         KEEP_LINK_UP_ON_BOOT_P1                     False(0)
         KEEP_LINK_UP_ON_STANDBY_P1                  False(0)
         DO_NOT_CLEAR_PORT_STATS_P1                  False(0)
         AUTO_POWER_SAVE_LINK_DOWN_P1                False(0)
         NUM_OF_VL_P1                                _4_VLs(3)
         NUM_OF_TC_P1                                _8_TCs(0)
         NUM_OF_PFC_P1                               8
         VL15_BUFFER_SIZE_P1                         0
         DUP_MAC_ACTION_P1                           LAST_CFG(0)
         SRIOV_IB_ROUTING_MODE_P1                    LID(1)
         IB_ROUTING_MODE_P1                          LID(1)
         PCI_WR_ORDERING                             per_mkey(0)
         MULTI_PORT_VHCA_EN                          False(0)
         PORT_OWNER                                  True(1)
         ALLOW_RD_COUNTERS                           True(1)
         RENEG_ON_CHANGE                             True(1)
         TRACER_ENABLE                               True(1)
         IP_VER                                      IPv4(0)
         BOOT_UNDI_NETWORK_WAIT                      0
         UEFI_HII_EN                                 False(0)
         BOOT_DBG_LOG                                False(0)
         UEFI_LOGS                                   DISABLED(0)
         BOOT_VLAN                                   1
         LEGACY_BOOT_PROTOCOL                        PXE(1)
         BOOT_INTERRUPT_DIS                          False(0)
         BOOT_LACP_DIS                               True(1)
         BOOT_VLAN_EN                                False(0)
         BOOT_PKEY                                   0
         P2P_ORDERING_MODE                           DEVICE_DEFAULT(0)
         DYNAMIC_VF_MSIX_TABLE                       False(0)
         EXP_ROM_UEFI_ARM_ENABLE                     False(0)
         EXP_ROM_UEFI_x86_ENABLE                     False(0)
         EXP_ROM_PXE_ENABLE                          True(1)
         ADVANCED_PCI_SETTINGS                       False(0)
         SAFE_MODE_THRESHOLD                         10
         SAFE_MODE_ENABLE                            True(1)
root@ubuntu2004:~#

2.3. Настройте VPI, настройте IP и используйте iperf3 для проверки пропускной способности.

Язык кода:txt
копировать
#Установить ETH
mlxconfig -d /dev/mst/mt4115_pciconf0 set LINK_TYPE_P1=2
#Установить ИБ
mlxconfig -d /dev/mst/mt4115_pciconf0 set LINK_TYPE_P1=1
#Необходимо перезагрузить компьютер после завершения настройки
Язык кода:txt
копировать
sudo ip addr add 192.168.1.1/24 dev enp1s0np0
sudo ip link set enp1s0np0 up
sudo ip addr add 192.168.1.2/24 dev enp2s0np0
sudo ip link set enp2s0np0 up
ifconfig
enp1s0np0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.1  netmask 255.255.255.0  broadcast 0.0.0.0
        ether 24:8a:07:9c:81:c4  txqueuelen 1000  (Ethernet)
        RX packets 101  bytes 21028 (21.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 204  bytes 31375 (31.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp2s0np0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.2  netmask 255.255.255.0  broadcast 0.0.0.0
        ether 24:8a:07:a0:19:9a  txqueuelen 1000  (Ethernet)
        RX packets 102  bytes 21268 (21.2 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 195  bytes 30044 (30.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
#Открываем терминал как сервер
root@ubuntu2004:/home/bing# iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.1.1, port 51764
[  5] local 192.168.1.1 port 5201 connected to 192.168.1.1 port 51768
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  5.69 GBytes  48.8 Gbits/sec
[  5]   1.00-2.00   sec  5.93 GBytes  51.0 Gbits/sec
[  5]   2.00-3.00   sec  5.86 GBytes  50.4 Gbits/sec
[  5]   3.00-4.00   sec  5.90 GBytes  50.7 Gbits/sec
[  5]   4.00-5.00   sec  5.90 GBytes  50.7 Gbits/sec
[  5]   5.00-6.00   sec  5.88 GBytes  50.5 Gbits/sec
[  5]   6.00-7.00   sec  5.89 GBytes  50.6 Gbits/sec
[  5]   7.00-8.00   sec  5.94 GBytes  51.0 Gbits/sec
[  5]   8.00-9.00   sec  5.94 GBytes  51.0 Gbits/sec
[  5]   9.00-10.00  sec  5.91 GBytes  50.7 Gbits/sec
[  5]  10.00-10.04  sec   251 MBytes  50.5 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.04  sec  59.1 GBytes  50.5 Gbits/sec                  receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
#Открываем другой терминал
root@ubuntu2004:/home/bing# iperf3 -c 192.168.1.1
Connecting to host 192.168.1.1, port 5201
[  5] local 192.168.1.1 port 51768 connected to 192.168.1.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  5.93 GBytes  51.0 Gbits/sec    0   1.44 MBytes
[  5]   1.00-2.00   sec  5.93 GBytes  51.0 Gbits/sec    0   1.44 MBytes
[  5]   2.00-3.00   sec  5.86 GBytes  50.4 Gbits/sec    0   2.37 MBytes
[  5]   3.00-4.00   sec  5.90 GBytes  50.6 Gbits/sec    0   2.37 MBytes
[  5]   4.00-5.00   sec  5.90 GBytes  50.7 Gbits/sec    0   2.37 MBytes
[  5]   5.00-6.00   sec  5.88 GBytes  50.5 Gbits/sec    0   2.37 MBytes
[  5]   6.00-7.00   sec  5.89 GBytes  50.6 Gbits/sec    0   2.37 MBytes
[  5]   7.00-8.00   sec  5.94 GBytes  51.0 Gbits/sec    0   2.37 MBytes
[  5]   8.00-9.00   sec  5.94 GBytes  51.0 Gbits/sec    0   2.37 MBytes
[  5]   9.00-10.00  sec  5.91 GBytes  50.7 Gbits/sec    0   2.37 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  59.1 GBytes  50.8 Gbits/sec    0             sender
[  5]   0.00-10.04  sec  59.1 GBytes  50.5 Gbits/sec                  receiver

iperf Done.
root@ubuntu2004:/home/bing#

2.4 Анализ узких мест

Очевидно, что 100G не достигнуто. Где узкое место?

Поскольку материнская плата тестовой машины, которую я использовал, относительно старая, я проверил руководство пользователя материнской платы и обнаружил, что она поддерживает только 1 PCIe x 16. Когда одновременно вставлены две сетевые карты, скорость PCIe снижается вдвое. , и это только скорость PCIe x8 и gen3. Вы также можете проверить это через dmesg.

Язык кода:txt
копировать
root@ubuntu2004:/home/bing# dmesg  | grep mlx5_core
[    0.996646] mlx5_core 0000:01:00.0: firmware version: 12.28.2006
[    0.996676] mlx5_core 0000:01:00.0: 63.008 Gb/s available PCIe bandwidth, limited by 8.0 GT/s PCIe x8 link at 0000:00:01.0 (capable of 126.016 Gb/s with 8.0 GT/s PCIe x16 link)
[    1.253026] mlx5_core 0000:01:00.0: E-Switch: Total vports 2, per vport: max uc(1024) max mc(16384)
[    1.256063] mlx5_core 0000:01:00.0: Port module event: module 0, Cable plugged
[    1.261729] mlx5_core 0000:01:00.0: mlx5_fw_tracer_start:821:(pid 152): FWTracer: Ownership granted and active
[    1.270139] mlx5_core 0000:02:00.0: firmware version: 12.28.2006
[    1.270170] mlx5_core 0000:02:00.0: 63.008 Gb/s available PCIe bandwidth, limited by 8.0 GT/s PCIe x8 link at 0000:00:01.1 (capable of 126.016 Gb/s with 8.0 GT/s PCIe x16 link)
[    1.517526] mlx5_core 0000:02:00.0: E-Switch: Total vports 2, per vport: max uc(1024) max mc(16384)
[    1.520523] mlx5_core 0000:02:00.0: Port module event: module 0, Cable plugged
[    1.523676] mlx5_core 0000:02:00.0: mlx5_fw_tracer_start:821:(pid 152): FWTracer: Ownership granted and active
[    1.531393] mlx5_core 0000:01:00.0: MLX5E: StrdRq(0) RqSz(1024) StrdSz(256) RxCqeCmprss(0)
[    1.728205] mlx5_core 0000:01:00.0: Supported tc offload range - chains: 4294967294, prios: 4294967295
[    1.760452] mlx5_core 0000:02:00.0: MLX5E: StrdRq(0) RqSz(1024) StrdSz(256) RxCqeCmprss(0)
[    1.951984] mlx5_core 0000:02:00.0: Supported tc offload range - chains: 4294967294, prios: 4294967295
[    1.982937] mlx5_core 0000:01:00.0 enp1s0np0: renamed from eth0
[    2.002012] mlx5_core 0000:02:00.0 enp2s0np0: renamed from eth1
[    9.867953] mlx5_core 0000:01:00.0 enp1s0np0: Link up
[    9.960668] mlx5_core 0000:02:00.0 enp2s0np0: Link up
root@ubuntu2004:/home/bing#

2.5 В режиме IB вы можете использовать следующую команду для тестирования пропускной способности.

Язык кода:txt
копировать
sudo opensm
sudo ip addr add 192.168.1.1/24 dev ibp1s0
sudo ip link set ibp1s0 up
sudo ip addr add 192.168.1.2/24 dev ibp2s0
sudo ip link set ibp2s0 up

ib_send_bw -d mlx5_0 -i 1 --report_gbits
#Открываем другой терминал
ib_send_bw -d mlx5_1 -i 1 192.168.1.1 --report_gbits

Заключение:

У меня много знаний о RDMA и RoCE v2. Что касается части кода и теста пропускной способности в режиме IB, я напишу об этом в следующей статье, если у меня будет возможность.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose