机器学习平台在Kubernetes上的实践 资源不能最大化的利用
过去音乐算法的模型训练任务,是在物理机上进行开发、调试以及定时调度。每个算法团队使用属于自己的独立物理机,这种现状会造成一些问题。比如物理机的分布零散,缺乏统一的管理,主要依赖于doc文档的表格记录机器的使用与归属;各业务间机器资源的调配,有时需要机器在不同机房的搬迁,耗时耗力。另外,由于存在多人共用、开发与调度任务共用等情况,会造成环境的相互影,以及资源的争夺。针对当前的情况,总结问题如下:
资源利用率低:部分机器资源利用率偏低;无法根据各个业务的不同阶段,在全局内快速、动态的实现扩缩容,以达到资源的合理配置,提升资源整体利用率; 环境相互影响:存在多人共用、测试与调度混用同一开发机,未做任何的隔离,造成可能的环境、共享资源的相互影响与争夺; 监控报警缺失:物理机模式,任务监控报警功能缺失,导致任务无法运维,或者效率低。
资源没有全局统一的合理调配,会出现负载不均衡,资源不能最大化的利用。
Kubernetes的尝试
在快速的扩缩容、环境隔离、资源监控等方面,Kubernetes及其相关扩展,可以很好的解决问题。现将物理机集中起来,并构建成一个Kubernetes集群。通过分析算法同事以往的工作方式,机器学习平台(GoblinLab)决定尝试基于Kubernetes提供在线的开发调试容器环境以及任务的容器化调度两种方案,其分别针对任务开发和任务调度两种场景。
任务开发
为最大化的减少算法同事由物理机迁移到容器化环境的学习成本,GoblinLab系统中基本将Kubernetes的容器当做云主机使用。容器的镜像以各版本Tensoflow镜像为基础(底层是Ubuntu),集成了大数据开发环境(Hadoop、Hive、Spark等Client),安装了常用的软件。另外,为了方便使用,容器环境提供了Jupyter Lab、SSH登录、Code Server(VSCode)三种使用方式。
在GoblinLab中新建容器化开发环境比较简单,只需选择镜像,填写所需的资源,以及需要挂载的外部存储即可(任务开发的环境下文简称开发实例)。
新建环境配置后,点击启动实例,容器初始化时,会自动启动Jupyter lab、SSH以及CodeServer。
Jupyter Lab:
Code Server:
SSH登录:
算法可以选择以上任意一种方式进行任务的开发,或者调试。由于提供了Code Server(VSCode),所以可以获得更好的体验。
任务开发所用的容器化环境,在底层Kubernetes上是通过StatefulSet类型实现,对应资源编排文件如下(已精简细节):
kind:StatefulSetapiVersion:apps/v1metadata:name:${name}namespace:"${namespace}"spec:replicas:1selector:matchLabels:statefulset:${name}system/app:${name}template:spec:<#if(gpu>0)>tolerations:-effect:NoSchedulekey:nvidia.com/gpuvalue:"true"<#ifusePrivateRepository=="true">imagePullSecrets:-name:registrykey-myhubvolumes:-name:localtimehostPath:path:/etc/localtime<#ifMountPVCs??&&(MountPVCs?size>0)><#listMountPVCs?keysaskey>-name:"${key}"persistentVolumeClaim:claimName:"${key}"containers:-name:notebookimage:${image}imagePullPolicy:IfNotPresentvolumeMounts:-name:localtimemountPath:/etc/localtime<#ifreadMountPVCs??&&(readMountPVCs?size>0)><#listreadMountPVCs?keysaskey>-name:"${key}"mountPath:"${readMountPVCs[key]}"readOnly:true<#ifwriteMountPVCs??&&(writeMountPVCs?size>0)><#listwriteMountPVCs?keysaskey>-name:"${key}"mountPath:"${writeMountPVCs[key]}"env:-name:NOTEBOOK_TAGvalue:"${name}"-name:HADOOP_USERvalue:"${hadoopUser}"-name:PASSWORDvalue:"${password}"resources:requests:cpu:${cpu}memory:${memory}Gi<#if(gpu>0)>nvidia.com/gpu:${gpu}limits:cpu:${cpu}memory:${memory}Gi<#if(gpu>0)>nvidia.com/gpu:${gpu}
目前GolbinLab已提供基于Tensoflow各版本的CPU与GPU通用镜像11个,以及多个定制化镜像。
任务调度
算法同事在使用容器化环境之前,任务的开发调度都是在GPU物理机器上完成,调度一般都是通过定时器或crontab命令调度任务,任务无失败、超时等报警,以及也没有重试等机制,基本无相关的任务运维工具。
在介绍容器中开发的任务如何上线调度之前,先简要介绍一下GoblinLab的系统架构。
上图为GoblinLab简化的系统架构,其中主要分为四层,由上到下分别为:
Application-应用层:提供直接面向用户的机器学习开发平台(GoblinLab) Middle-中间层: 中间层,主要是接入了统一的调度、报警、以及配置等服务 Wizard-执行服务: 其提供统一的执行服务,提供包含Kubernetes、Spark、Jar等各类任务的提交执行。插件式,支持快速扩展 Infrastructure-基础设施: 底层的基础设施,主要包含Kubernetes集群、Spark集群以及普通服务器等
GolbinLab为了保障调度任务的稳定性,将任务的开发与调度拆分,改变之前算法直接在物理机上开发完任务后,通过定时器或者crontab调度任务的方式。如上图所示,在开发完成后,任务的调度是通过任务流中的容器化任务调度组件实现,用户需填组件的相关参数(代码所在PVC及路径,配置镜像等),再通过任务流的调度功能实现任务调度。与任务开发不同,每个调度任务执行在独立的容器中,保证任务间相互隔离,同时通过后续介绍的资源隔离方案,可以优先保障线上调度任务所需资源。
任务调度执行的一般流程如下:
任务调度执行时在Kubernetes上资源编排文件(已精简细节):
apiVersion:batch/v1kind:Jobmetadata:name:${name}namespace:${namespace}spec:template:spec:containers:-name:jupyter-jobimage:${image}env:-name:ENV_TESTvalue:${envTest}command:["/bin/bash","-ic","cd${workDir}&&${execCommand}/root/${entryPath}${runArgs}"]volumeMounts:-mountPath:"/root"name:"root-dir"resources:requests:cpu:${cpu}memory:${memory}Gi<#if(gpu>0)>nvidia.com/gpu:${gpu}limits:cpu:${cpu}memory:${memory}Gi<#if(gpu>0)>nvidia.com/gpu:${gpu}volumes:-name:"root-dir"persistentVolumeClaim:claimName:"${pvc}"backoffLimit:0
权限控制
容器化开发环境配置启动后,用户可以通过SSH登录、CodeServer或JupyterLab等其中一种方式使用。为了避免容器化开发环境被其他人使用,GoblinLab给每种方式都设置了统一的密钥,而密钥在每次启动时随机生成。
1、随机生成密码
2、设置账号密码(SSH登录密码)
echo"root:${password}"|chpasswd
3、设置Code Server密码 (VSCode)
#设置环境变量PASSWORD即可env:-name:PASSWORDvalue:"${password}"
4、设置Jupyter Lab密码
jupyternotebook--generate-config,~/.jupyter目录下生成jupyter_notebook_config.py,并添加代码importosfromIPython.libimportpasswdc=c#pylint:disable=undefined-variablec.NotebookApp.ip='0.0.0.0'#https://github.com/jupyter/notebook/issues/3946c.NotebookApp.port=int(os.getenv('PORT',8888))c.NotebookApp.open_browser=FalsesetsapasswordifPASSWORDissetintheenvironmentif'PASSWORD'inos.environ:password=os.environ['PASSWORD']ifpassword:c.NotebookApp.password=passwd(password)else:c.NotebookApp.password=''c.NotebookApp.token=''delos.environ['PASSWORD']
数据持久化
在Kubernetes容器中,如无特殊配置,容器中的数据是没有进行持久化,这意味着随着容器的删除或者重启,数据就会丢失。对应的解决方法比较简单,只需给需要持久化的目录,挂载外部存储即可。在GoblinLab中,会给每个用户自动创建一个默认的外部存储PVC,并挂载到容器的/root目录。另外,用户也可以自定义外部存储的挂载。
除了自动创建的PVC外,用户也可以自己创建PVC,并支持将创建的PVC只读或者读写分享给其他人。
另外,在Goblinlab上也可以对PVC里的数据进行管理。
服务暴露
Kubernetes集群中创建的服务,在集群外无法直接访问,GoblinLab使用Nginx Ingress + Gateway访问,将集群内的服务暴露到外部。
容器化开发环境的Service资源编排文件如下(已精简细节):
apiVersion:v1kind:Servicemetadata:name:${name}namespace:${namespace}spec:clusterIP:Noneports:-name:port-notebookport:8888protocol:TCPtargetPort:8888-name:port-sshdport:22protocol:TCPtargetPort:22-name:port-vscodeport:8080protocol:TCPtargetPort:8080-name:port-tensofboardport:6006protocol:TCPtargetPort:6006<#ifports??&&(ports?size>0)><#listportsasport>-name:port-${port}port:${port}targetPort:${port}selector:statefulset:${name}type:ClusterIP
每当用户启动一个容器化开发环境,GoblinLab将通过接口自动修改Nginx Ingress配置,将服务暴露出来,以供用户使用,Ingress转发配置如下:
apiVersion:v1kind:ConfigMapmetadata:name:tcp-servicesnamespace:kube-systemdata:"20000":ns/notebook-test:8888"20001":ns/notebook-test:8080"20002":ns/notebook-test:22
资源管控
为提高资源的利用率,GoblinLab底层Kubernetes中的资源,基本都是以共享的方式使用,并进行一定比例的超售。但是当多个团队共享一个资源总量固定的集群时,为了确保每个团队公平的共享资源,此时需要对资源进行管理和控制。在Kubernetes中,资源配额就是解决此问题的工具。目前GoblinLab需要管控的资源主要为CPU、内存、GPU以及存储等。平台在考虑各个团队的实际需求后,将资源划分为多个队列(Kubernetes中的概念为namespace),提供给各个团队使用。
apiVersion:v1kind:ResourceQuotametadata:name:skiff-quotanamespace:testspec:hard:limits.cpu:"2"limits.memory:5Girequests.cpu:"2"requests.memory:5Girequests.nvidia.com/gpu:"1"requests.storage:10Gi
在集群中,最常见的资源为CPU与内存,由于可以超售(overcommit),所以存在limits与requests两个配额限制。除此以外,其他资源为扩展类型,由于不允许overcommit,所以只有requests配额限制。参数说明:
limits.cpu:Across all pods in a non-terminal state, the sum of CPU limits cannot exceed this value. limits.memory: Across all pods in a non-terminal state, the sum of memory limits cannot exceed this value. requests.cpu:Across all pods in a non-terminal state, the sum of CPU requests cannot exceed this value. requests.memory:Across all pods in a non-terminal state, the sum of memory requests cannot exceed this value. http://requests.nvidia.com/gpu:Across all pods in a non-terminal state, the sum of gpu requests cannot exceed this value. requests.storage:Across all persistent volume claims, the sum of storage requests cannot exceed this value.
可以进行配额控制的资源不仅有CPU、内存、存储、GPU,其他类型参见官方文档:https://kubernetes.io/docs/con ... otas/
资源隔离
GoblinLab的资源隔离,指的是在同一Kubernetes集群中,资源在调度层面的相对隔离,其中包含GPU机器资源的隔离、线上与测试任务的隔离。
GPU机器资源的隔离
在Kubernetes集群中,相对于CPU机器,GPU机器资源较为珍贵,因此为了提供GPU的利用率,禁止CPU任务调度在GPU机器上。
GPU节点设置污点(Taint):禁止一般任务调度在GPU节点
key:nvidia.com/gpuvalue:trueeffect:NoSchedule
Taint的effect可选配置:
NoSchedule:Pod不会被调度到标记为taints节点。 PreferNoSchedule:NoSchedule的软策略版本。尽量避免将Pod调度到存在其不能容忍taint的节点上。 NoExecute:该选项意味着一旦Taint生效,如该节点内正在运行的Pod没有对应Tolerate设置,会直接被逐出。
GPU任务设置容忍(Toleration):让GPU任务可以调度在GPU节点
<#if(gpu>0)>tolerations:-effect:NoSchedulekey:nvidia.com/gpuvalue:"true"
线上与测试任务隔离
线上与测试任务(GolbinLab中线上任务与测试任务为业务层面的定义,指的是周期调度任务和开发测试任务)使用同一Kubernetes集群,但为了保障线上任务的资源,会特殊设置一些机器节点为线上任务的专有资源池。线上任务执行时优先调度在线上节点上,线上资源池无资源时,也可调度于非线上节点。
线上资源池节点设置污点(Taint):禁止一般任务调度在线上资源池
key:node.netease.com/node-poolvalue:onlineeffect:NoSchedule
线上任务添加容忍(Toleration):允许线上任务调度于线上资源池,但不是必须调度于线上资源池中
tolerations:-effect:NoSchedulekey:node.netease.com/node-poolvalue:"online"operator:Equal
线上资源池中机器节点设置标签 + 线上任务设置节点亲和性(nodeAffinity):优先将线上任务调度在线上资源池中,但如果线上资源池中无已资源,此时也可以调度在其他节点上
线上资源池中节点设置标签:为了方便,标签与污点同名:
node.netease.com/node-pool:online
线上任务设置节点亲和性(nodeAffinity):线上任务优先调度在线上资源池中
affinity:nodeAffinity:preferredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:-matchExpressions:-key:node.netease.com/node-pooloperator:Invalues:-online
目前Node affinity有以下几种策略,官方文档affinity-and-anti-affinity:
requiredDuringSchedulingIgnoredDuringExecution表示Pod必须部署到满足条件的节点上,如果没有满足条件的节点,就不停重试。其中IgnoreDuringExecution表示Pod部署之后运行的时候,如果节点标签发生了变化,不再满足Pod指定的条件,Pod也会继续运行。 requiredDuringSchedulingRequiredDuringExecution表示Pod必须部署到满足条件的节点上,如果没有满足条件的节点,就不停重试。其中RequiredDuringExecution表示Pod部署之后运行的时候,如果节点标签发生了变化,不再满足Pod指定的条件,则重新选择符合要求的节点。 preferredDuringSchedulingIgnoredDuringExecution表示优先部署到满足条件的节点上,如果没有满足条件的节点,就忽略这些条件,按照正常逻辑部署。 preferredDuringSchedulingRequiredDuringExecution表示优先部署到满足条件的节点上,如果没有满足条件的节点,就忽略这些条件,按照正常逻辑部署。其中RequiredDuringExecution表示如果后面节点标签发生了变化,满足了条件,则重新调度到满足条件的节点。
策略生效后效果如下图所示, 线上任务优先执行与线上资源池节点中,但当线上资源池没有空闲资源后,线上任务Job5也可以去使用普通节点的资源。
阶段性结果
截止今日,音乐机器学习平台(GoblinLab)在容器化方面的尝试,已开展了一段时间,并且已经有了阶段性的成果。
集群建设
经过近一段时间的尝试,目前音乐数据平台的Kubernetes,随着承载的业务越来越多,以及基于Kubernetes的大数据计算平台(Flink等)的落地,后续将有大量的CPU资源加入, 其稳定性将会成为比较大的挑战。
用户使用
任务迁移:目前协助算法同事已完成80%任务迁移
任务开发
用户情况 : 已有60%算法同学使用开发实例的容器化环境;其中用户来源包含音乐推荐算法、社交视频推荐算法、搜索算法、音视频、数据应用、实时计算算法等团队 开发实例:平台鼓励组内共用开发实例,限制了每人最多创建3个开发实例 任务调度: 覆盖云音乐音乐推荐、社交视频推荐算法、搜索算法、音视频、数据应用、实时计算算法等多个团队
容器化的好处
对于算法同事,由物理机迁移到机器学习平台提供容器化的环境,能够带来的好处是:
更多资源:由于整理资源利用率的提高,将有机会获取到比之前单独使用物理机更多的资源;另外资源扩缩容的周期由之前的以天为单位减少到秒级别即可完成 更好体验:通过打通大数据、Git环境,提供多样化的使用方式(SSH和在线IDE),由机器学习平台统一维护环境镜像,避免了每个团队需自己搭建、运维环境的苦恼 更完善的任务调度:GoblinLab的调度,提供了更完善的报警、重试、依赖检查等功能,并且能够与之前已有PS、Ironbaby任务的整合,实现在一个任务流的统一调度 更好的隔离:环境隔离是容器化的天然优势。另外资源在调度层面的隔离,可以更好的保障线上任务 统一的入口:统一了开发的入口后,可以有更大的操作空间。例如将通用的服务抽象后由平台直接提供(依赖检查、调度、报警监控等等)、数据的共享、镜像的更新以及后面持续的支持服务等 后续规划
目前音乐机器学习平台已能提供完整的容器化开发基础能力,为进一步提高集群的资源利用率、提升运维效率,后续计划从资源调度策略优化(抢占等)、更丰富的资源监控等方面入手,进一步优化。
关键词: 机器学习
相关阅读
-
Misty为Furhat收购机器人公司Misty Robotics
Misty经历了一段地狱般的旅程。在从Foundry和Venrock筹集了1150万美... -
人物形象丰富多样,AI合成人物商业应用渐热
我是新华社AI合成主播新小浩,我们不仅仅长得像主播本人,还可以不... -
瑞士研究人员进行一个利用人工智能和机...
建筑和施工总是悄悄地处于技术和材料趋势的前沿。因此,特别是在像... -
Alphabet 正致力于将机器人带到办公...
谷歌的母公司 Alphabet 正致力于将机器人带到办公室来执行日常任... -
ModelMesh使开发者能够在Kubernetes之上...
模型服务是AI用例的一个关键组成部分。它涉及从人工智能模型中提供... -
研究人员:85%的人口受到人类活动引起的...
据外媒CNET报道,气候变化已经到来。如果我们不尽快采取行动,它将...
精彩推送
-
女子追尾后 质问前车司机为何刹车:急...
女子追尾后质问前车司机为何刹车:急得直跺脚 -
疑似东风本田2022年新车规划:新一代CR-...
疑似东风本田2022年新车规划:新一代CR-V、思域Type-R要来! -
车载摄像头真有这么香?特斯拉前脚释出...
车载摄像头真有这么香?特斯拉前脚释出大额订单知名日企也官宣入局 -
月薪5000也能买!2021款比亚迪e2试驾体...
月薪5000也能买!2021款比亚迪e2试驾体验:颜值、动力俱佳 -
轴距加长130mm、后排秒变“跑马场”!国...
轴距加长130mm、后排秒变“跑马场”!国产宝马X5长轴版曝光 -
奔驰销量暴跌 德系车在德国卖不动了:...
奔驰销量暴跌德系车在德国卖不动了:买特斯拉的狂增1 3倍 -
领克01被曝疑似虚假宣传?车顶钢材强度...
领克01被曝疑似虚假宣传?车顶钢材强度与宣传不符 -
雅迪电动车征服“中国最冷小镇”成功挑...
雅迪电动车征服“中国最冷小镇”成功挑战极寒天气续航200公里 -
没想到 新蒙迪欧成了中国设计“全球化...
没想到新蒙迪欧成了中国设计“全球化”的见证者 -
行业首家 小鹏超充贯通全国337城:何小...
行业首家小鹏超充贯通全国337城:何小鹏大赞! -
红旗向中国获奖奥运健儿交付11辆H9 直...
红旗向中国获奖奥运健儿交付11辆H9直接赠送和免费使用 -
皇冠轿车中国“复活”!曝一汽丰田将原...
皇冠轿车中国“复活”!曝一汽丰田将原装进口日本皇冠:35万起 -
宝马V12动力最后的荣光!M760i将限量发...
宝马V12动力最后的荣光!M760i将限量发售:起售127万 -
配剪刀门、升降式激光雷达!集度首款概...
配剪刀门、升降式激光雷达!集度首款概念车细节曝光 -
胡润世界八强榜单:特斯拉为唯一上榜车...
胡润世界八强榜单:特斯拉为唯一上榜车企位居第五 -
高速施工封路 大货避让不及撞废轿车:...
高速施工封路大货避让不及撞废轿车:人员全部奇迹生还 -
顺丰快递电动车高速上自燃 拖车紧急卸...
顺丰快递电动车高速上自燃拖车紧急卸车避险 -
马斯克被特斯拉股东起诉 索赔归还130亿美元
马斯克被特斯拉股东起诉索赔归还130亿美元 -
奔驰、吉利联手打造!Smart精灵#1量产版...
奔驰、吉利联手打造!Smart精灵 1量产版上路:取消对开门 -
特斯拉自动驾驶闯红灯撞向思域导致两人...
特斯拉自动驾驶闯红灯撞向思域导致两人死亡:司机被控过失杀人 -
雪铁龙凡尔赛被曝加速抖动 厂商拒不回...
雪铁龙凡尔赛被曝加速抖动厂商拒不回应车主投诉无门 -
女子结婚租到“盗版劳斯莱斯” 商家:...
女子结婚租到“盗版劳斯莱斯”商家:劳斯莱斯是形容词 -
贾跃亭要遵守约定!官方确认FF 91量产...
贾跃亭要遵守约定!官方确认FF91量产时间售价欲超200万元 -
新Mac Pro曝光:将搭载4个M1 Max处理器
据外媒最新报道称,苹果将在今年年底发布新一代Mac Pro,其最顶配... -
EFF基金会要求在iPhone手机中加入关闭2G...
GSM 2G网络已经有30年多年历史了,现在还有很多服务需要2G,但是该... -
三星GalaxyS22+的详细信息曝光:屏幕尺...
1月18日消息,MySmartPrice曝光了三星GalaxyS22+的详细信息。和Gala... -
Intel 12代酷睿i3曝光:超频幅度高达57%
通过超外频的方式,德国大神Der8auer将原本锁频的i5-12400、i5-1260... -
曝苹果SE机型可能会采用5.7英寸或6.1英...
据最新报道,显示屏行业顾问公司DSCC创始人兼CEO Ross Young在社... -
Intel 13代酷睿更新:接口保持不变 主板不兼容
IntelAlder Lake 12代酷睿采用了全新的LGA1700接口,必须搭配600... -
入门款新iPad曝光:可能被改造成支持5G
据最新消息称,苹果将在2022年底发布第十代iPad,在2023年进行更重... -
魅族专利公布一年后 手机终于要用上50W快充
去年年底魅族公布了自家分流式电池充放电控制系统及其控制方法、电... -
微软发布Win7/10/11紧急更新:修复多个W...
今天微软发布了紧急更新,主要是修复多个Windows版本问题,建议用户... -
首批RTX 3050曝光:多光线追踪
据介绍,RTX 3050本次供货主要以电商、线上、直播等平台为主,预测... -
Intel NUC 11廉价版曝光:规格性能实现飞跃
Intel今天为NUC 11迷你机家族增加了新的入门款NUC 11 Essential(... -
《关于紫光集团重整计划获法院裁定批准...
今晚,紫光集团通过官微,正式发布了《关于紫光集团重整计划获法院... -
Intel 13代酷睿曝光:接口与12代酷睿保持一致
据爆料,13代酷睿将会在今年第四季度发布,接口与12代酷睿保持一致... -
西安交大学生私自驾车离校至成都:关大...
西安交大学生私自驾车离校至成都:关大灯驶上草坪绕开检查 -
CEO做对一件事!福特市值首达1000亿美元
CEO做对一件事!福特市值首达1000亿美元 -
欧洲汽车大暴跌!原因太无奈:缺芯+疫情
欧洲汽车大暴跌!原因太无奈:缺芯+疫情 -
马斯克玩“无间道”!特斯拉成香饽饽 ...
马斯克玩“无间道”!特斯拉成香饽饽印度各地官员疯抢 -
爷青回!一汽发布全新企业LOGO:形似新...
爷青回!一汽发布全新企业LOGO:形似新飞冰箱标识 -
特斯拉Model Y USB-C快充模块拆解:遗...
特斯拉ModelYUSB-C快充模块拆解:遗憾砍掉数据传输 -
宁德时代正式发布换电品牌 蔚来回应:...
宁德时代正式发布换电品牌蔚来回应:表示欢迎 -
三星试产4080圆柱形电池:媲美特斯拉468...
三星试产4080圆柱形电池:媲美特斯拉4680、能量密度大增 -
宁德时代玩换电 曾毓群请吃“巧克力”...
宁德时代玩换电曾毓群请吃“巧克力”:1分钟换1块未来适配80%车型 -
中东部地区大面积雨雪、大雾天气!交管...
中东部地区大面积雨雪、大雾天气!交管部门发布驾驶人提醒 -
实测不到6个油 全新丰田汉兰达获CCRT测...
实测不到6个油全新丰田汉兰达获CCRT测评综合得分86 3分 -
宁德时代换电品牌“EVOGO”正式发布:1...
宁德时代换电品牌“EVOGO”正式发布:1分钟全自动换电面向所有汽车 -
谁能抵抗一个会撒娇的萝莉呢?《原神》...
谁能抵抗一个会撒娇的萝莉呢?《原神》首款导航语音上线 -
宁德时代乐行换电正式发布 宣传片惊现...
宁德时代乐行换电正式发布宣传片惊现蔚来网友:砸场子! -
比亚迪全新中型SUV谍照曝光:或为巡洋舰...
比亚迪全新中型SUV谍照曝光:或为巡洋舰05主打DM-i动力 -
iPhone XS Max可降级iOS 14.1,为何...
我们都知道,苹果每次在推送新版iOS之后,都会关闭上一个正式版系统... -
四维图新发布业绩预告:2021年实现扭亏为盈
1月16日晚,四维图新NavInfo官方宣布了其2021年度的业绩预告,该公... -
被炮轰刷新底线!团车闻伟:造车不会儿...
被炮轰刷新底线!团车闻伟:造车不会儿戏邀请李想参加产品发布会 -
零百加速超17秒 40年前经典奥迪被拍卖...
零百加速超17秒40年前经典奥迪被拍卖:最高出价6 7万元 -
“青蛙眼”大灯瞩目!欧拉闪电猫量产版...
“青蛙眼”大灯瞩目!欧拉闪电猫量产版谍照曝光:最快5月上市 -
SIAL国际食品展(上海)启动之际,“中食...
日前,中共中央、国务院印发了《知识产权强国建设纲要(2021—2035年... -
CrowdStrike野外样本增加,进行分布式拒...
根据 CrowdStrike 的威胁遥测数据 ,在 2021 年针对 Linux ... -
2022年会成为Linux桌面元年吗?
2022 年会成为 Linux 桌面元年吗?答案可能依然是否定的,但我们... -
比亚迪半导体MCU曝光:最高工作频率48MHz
今日,据比亚迪半导体公众号消息,继2020年8月推出国内首款集成触摸... -
XPOWER XS70 PCIe 4.0固态硬盘曝光:...
Silicon Power(SP)近日面向玩家,推出了全新的 XPOWER XS70 PCI... -
一加6和一加6T将正式停止官方软件支持
近日,一加海外社区官方人员正式确认,一加6和一加6T的官方支持已经... -
Misty为Furhat收购机器人公司Misty Robotics
Misty经历了一段地狱般的旅程。在从Foundry和Venrock筹集了1150万美... -
曝骁龙8 Plus旗舰Q3曝光:改用4nm工艺Plus版本
按照此前多方消息显示,高通会在今年下半年推出改用台积电4nm工艺的... -
宁德时代进军“换电”市场 注册多个商标
日前,宁德时代官方消息,宁德时代将于1月18日15:30举办发布会,推... -
业界首个!集度汽车机器人车标发布:百...
业界首个!集度汽车机器人车标发布:百度、吉利联合打造 -
比亚迪、中国一汽成立动力电池合资公司...
比亚迪、中国一汽成立动力电池合资公司:产能超百万辆电动车 -
中毒了 中国汽车活化石大变样!新一代B...
中毒了中国汽车活化石大变样!新一代BJ212外形堪比路虎卫士 -
丰田章男用毛笔写下年度汉字“動”!中...
丰田章男用毛笔写下年度汉字“動”!中日文一语双关 -
四缸增程器、零百加速不到6秒!售价50万...
四缸增程器、零百加速不到6秒!售价50万的理想X01买吗 -
富豪驾布加迪德国高速狂飙至417km/h 9...
富豪驾布加迪德国高速狂飙至417km h9分钟能烧干一箱油 -
日本佳能关闭珠海工厂:主要停产数码相...
最近日本相机巨头佳能关闭珠海工厂的消息引发热议,佳能中国已经确... -
外媒:CarKey有望发布 可用iPhone解锁汽车
据国外媒体报道,苹果分析师马克 · 格尔曼(Mark Gurman )表示... -
外媒:LG Innotek将向特斯拉提供价值超...
据国外媒体报道,LG Innotek将向特斯拉提供价值超过1万亿韩元的电... -
Forbes发表观点性文章,揭示2022年量子...
Safe Quantum安全首席执行官兼创始人John Prisco日前在Forbes发表... -
高清概念渲染图曝光 揭开Galaxy Tab...
预计下个月,三星会在 2022 年度首场GalaxyUnpacked 发布会上,... -
中际旭创预计今年全球数通市场光模块需...
中际旭创近日举行了投资者关系活动。中际旭创副总裁、董事会秘书王... -
苹果Safari浏览器Bug曝光:影响使用苹果...
据 MacRumors 报道,根据浏览器指纹识别服务提供商 FingerprintJ... -
14nm显卡性能曝光:追上GTX 1050 功耗为30W
1月17日,景嘉微在投资者关系活动中表示,公司历经十余年发展,成功... -
NVIDIA RTX 3090 Ti功耗曝光:高达48...
今天,某厂商的旗舰型RTX 3090 Ti规格参数被泄露出来,可以看到满... -
外媒:苹果内部讨论传闻已久的VR/AR设备...
据国外媒体报道,苹果产品方面的资深记者日前表示,苹果内部已经讨... -
网友发现新版微信支持搜索后批量删除好友
前不久,iOS版微信率先更新了8 0 17版。除了万众期待的语音消息暂... -
云网融合打造生态系统,产业链企业数量...
近日,Semtech举办媒体沟通会,宣布公司与腾讯云达成协议,LoRa Cl... -
便宜又好用 中国制造的电动车在日本成...
便宜又好用中国制造的电动车在日本成了香饽饽 -
零百加速5.9秒力压埃尔法!全球最速MPV...
零百加速5 9秒力压埃尔法!全球最速MPV岚图梦想家白车身下线 -
比亚迪宋DM-i最强对手!奇瑞星途追风PHE...
比亚迪宋DM-i最强对手!奇瑞星途追风PHEV亮相:亏电油耗4 8L -
真实起火率统计对比:混动车危险系数最...
真实起火率统计对比:混动车危险系数最高、电动车排在燃油车之后 -
全球首款续航破千电动车!广汽Aion Lx...
全球首款续航破千电动车!广汽AionLxPlus冬季媒体实测:最高960Km -
四缸增程器、续航800公里!理想X01路测...
四缸增程器、续航800公里!理想X01路测谍照曝光:售价约50万买吗 -
比丰田埃尔法还豪华 红旗全新MPV内饰曝...
比丰田埃尔法还豪华红旗全新MPV内饰曝光:二排座椅是亮点! -
配坦克300同款档杆、一体式双联屏!哈弗...
配坦克300同款档杆、一体式双联屏!哈弗酷狗内饰曝光 -
“元宇宙”热火蔓延车圈!中国车企首个N...
“元宇宙”热火蔓延车圈!中国车企首个NFT拍卖到来:送真车一辆 -
零下35℃雪天在特斯拉里过夜:10万km电...
零下35℃雪天在特斯拉里过夜:10万km电池坚持了一天半 -
被李想炮轰后 团车CEO首次回应:别成为...
被李想炮轰后团车CEO首次回应:别成为自己最记恨的那波人 -
印度提议本国生产所有车型 至少配备六...
印度提议本国生产所有车型至少配备六个气囊!网友:远超中国标准 -
实测1067马力超官方数据!最强特斯拉Mod...
实测1067马力超官方数据!最强特斯拉ModelS动力测试结果出炉 -
威马汽车私自“锁电”引众怒 173名车主...
威马汽车私自“锁电”引众怒173名车主联名发律师函向厂家维权 -
比长城还会玩!上汽大众凌度L公开征求昵...
比长城还会玩!上汽大众凌度L公开征求昵称:辣馒头、麻辣烫在内 -
宁德时代进军“换电”市场 注册“巨无...
宁德时代进军“换电”市场注册“巨无霸换电块”商标 -
大众集团全球销量出炉 超大众成行业榜首
随着大众集团全球销量出炉,一年一度的汽车行业榜首之争一锤定音。...