点击上方“视学算法”,选择加"星标"或“置顶

重磅干货,第一时间送达

作者 | Emil Wallner

编译 | 青暮、陈大鑫

转自 | AI科技评论

Emil Wallner是一名自学成才的独立机器学习研究员。在这篇文章中,他将向我们展示,自己是如何围绕专业级显卡NVIDIA RTX A6000,一步一步搭建起一个仅需价值19万人民币的机器学习工作站。

RTX A6000具备了RTX消费级显卡上同样的光线追踪特性,并与数据中心使用的A40进行了区分。RTXA6000采用了完整的GA102芯片,这意味着它拥有10752个CUDA核心,可提供高达38.7 TFLOPs的单精度计算性能(比消费级显卡 top-1 GeForce RTX 3090高出3.1 TLFOPs)。

图注:RTX A6000和RTX 3090的性能对比(来源:expreview)

这是我建立的第一个工作站。(见头图)

它拥有4个NVIDIA RTX A6000和一个32核的AMD EPYC 2、192 GB的GPU显存和256GB的RAM。我花费了2.5万欧元(约19万人民币)来搭建它,其中关键部件大概2万欧元。

图注:所有主要部件的价格列表

1

GPU

在AMD的GPU机器库变得更加稳定之前,NVIDIA是唯一的选择。由于NVIDIA最新的Ampere微架构明显优于上一代产品,因此我仅采用了Ampere GPU。

NVIDIA具有三种主要的GPU类型:

  • 消费级:RTX 3080 / RTX 3090

  • 专业级(prosumer,或称生产性消费级):A6000

  • 企业级:A100

每一类显卡都有对应的容易配置的GPU数量:

  • 消费级:两个RTX 3080s / RTX 3090s

  • 专业级:四个A6000

  • 企业级:8个A100或A6000(PCIe),或16个A100(SXM4),或20个A100(基于PCIe的模块化刀片节点)

当然,你也可以尝试突破这些限制,但会增加风险,并牺牲可靠性和便利性。

非企业级GPU的限制

我们概述一下消费级显卡和专业级显卡的一些限制。

主要限制:

  • PCIe转接卡的主板限制:14个GPU(每个GPU x8 Gen 4.0)

  • 每个插槽的用电量限制:8个GPU(美国为4个)

  • 消费级电源限制:5个GPU(2000W)

  • 标准PC机箱尺寸:4个双插槽GPU

空间和环境限制:

  • 堆叠的显卡彼此相邻:4个A6000 / 3070或2个3080/3090

  • 热量限制:2个GPU(最好是水冷式)

  • 消费者供应量:1个GPU(大多数商店只允许购买一个消费级GPU,并且通常仅在发布后3到12个月内可购买)

我尝试过购买5台RTX 3090,由于供应问题等待了四个月之后,我选择了采用四台RTX A6000。

根据Lamda Labs和Puget Systems的说法,双槽式鼓风机3080和3090太热,无法在标准尺寸的主板上可靠地将四个相邻的鼓风机安装在一起。因此,你需要采用PCIe转接卡、水冷设备或限制电源使用。

在露天设备中使用PCIe转接卡会使硬件暴露在灰尘下。水冷式则需要维护,并且在运输过程中有泄漏的危险。限制功率是非标准的做法,可能会导致可靠性下降和性能损失。

对于3台以上的GPU工作站,很多人选择300W或更低功率的显卡,即RTX 3070及以下,或A6000及以上。

由于大多数主流的云GPU都是16 GB的GPU内存,因此当今的大多数模型都是为16 GB的显卡设计的,并且我们正朝着40 GB的方向发展。因此,具有最低内存的卡在重写软件中会有增加的开销,以适应较低的内存限制。

为什么存在8-GPU消费级工作站?

人们在网上看到的超过5个GPU消费级设备,通常是具有多种电源的加密设备。

由于加密装置不需要高带宽,因此它们使用特定的USB适配器来连接GPU。这是一个无需电力即可传输数据的适配器。因此,GPU和主板的电源是分开的,从而减少了混合电路的问题。

但是,适配器的质量通常很差,小的焊接错误可能会损坏硬件并着火。而且,特别不建议将它们用于需要PCIe转接卡以实现75W功率的机器学习工作站。

加密工作站还使用了一些标准质量较差的采矿电源或翻新企业电源。由于人们倾向于将它们放置在车库或集装箱中,因此他们会承受额外的安全风险。

2

专业级显卡和企业级显卡的功能

对于Ampere系列,NVIDIA很难将高端消费卡用于具有2个以上GPU的工作站。很多迹象都表明了这一点,比如:3槽宽度、高功率,并且有多家制造商中断了3090的2宽度鼓风机版本。

因此,专业级和企业级Ampere卡的主要卖点是支持3个以上GPU工作站,进行24/7/365的工作负载。

专业级和企业级显卡还具有一些附加功能。

主要功能(与RTX 3090相比):

  • 快1.1-2倍(取决于GPU、二进制浮点格式和模型)

  • 1.7-3.3倍的内存

  • 能耗更低(更适合堆叠卡)

  • 数据中心部署(非营利组织可以获取消费卡许可)

其他不错的功能:

  • ECC内存(防错内存)

  • 每个GPU和MIG(仅限企业级)可有多个用户

  • NVSwitch(A100 SXM4),更快的GPU到GPU的通信

80GB GPU可以提供针对特定型号的优势,但是很难说它们是否具有足够的计算能力来从大型模型中有效受益。最安全的选项是40GB版本。

通常,我不会针对NLP、CV或RL设置特定的工作负载。它们的性能会有所不同,但是由于机器学习的格局变化如此之快,因此不值得针对特定的工作负载进行过度优化。

有关更深入的比较,请阅读Tim Dettmers的GPU指南。请特别注意Tensor Core、稀疏训练、限制GPU功率和低精度计算等部分的内容。

Tim Dettmers的GPU指南:https://timdettmers.com/2020/09/07/which-gpu-for-deep-learning/

3

服务器限制

消费级设备主要受电源限制,而服务器设备主要受重量、机壳大小和网络开销的限制。

主要限制:

  • 带有消费级部件的服务器:4个PCIe GPU

  • PCIe服务器的限制:10个双插槽GPU(标准服务器的宽度)

  • 重量:10个PCIe GPU或4个SMX4 GPU(30千克)

附加限制:

  • PCIe服务器机箱的联网限制:8个双插槽GPU(2个双插槽用于联网)

  • SXM4服务器的机箱数量限制:16个GPU(168千克)

  • PCIe刀片服务器限制:20个双插槽GPU

这里的关键限制是网络开销。一旦连接一台或多台服务器,就需要软件和硬件来管理系统。我强烈推荐观看Stephen Balaban关于构建用于机器学习的GPU集群的概述视频。

Building a GPU cluster for AI:https://www.youtube.com/watch?v=rfu5FwncZ6s

第二个关键问题是重量和维修。

带有8台SXM4的服务器重约75kg。因此,理想情况下你得拥有一台服务器升降机。与PCIe服务器随附的更多标准零件相比,SXM4更难以维修。

A100和A6000也有不带内置风扇的版本。这些需要带有十几个10K + RPM风扇的服务器机箱。由于可以热插拔风扇,因此它们将具有更多的容错能力。

4

速度基准

Lambda Labs拥有最佳的GPU基准测试和整体基准测试。

基准采用了PyTorch的几个模型的半精度平均值。

Lambda Labs:

  • https://lambdalabs.com/blog/tag/benchmarks/

  • https://lambdalabs.com/gpu-benchmarks

FP16 PyTorch Lambda实验室基准

在速度方面,A100是A6000的1.4倍。但是A6000的速度是3090的1.2倍,是3080的两倍。

另一个值得注意的基准是PCIe和SXM4之间的比较。NVIDIA的A100 PCIe只能连接到另一个GPU,而NVIDIA的A100 SXM4可以同时连接到8至16个GPU。

F16 PyTorch Lambda Labs 基准

从理论上说,NVIDIA的NVswitch和SXM4的带宽提高了10倍,但是在8-GPU设置下,与PCIe解决方案相比,它仅快了10%。由于每个GPU上SXM4的速度提高了8%,因此NVswitch的影响很小。

对于8-GPU系统,这应该是很小的差异。Lamda Labs的首席执行官表示,对于大型集群中的某些用例,他们可以实现2倍的改进。因此,它主要针对多个8-GPU系统。具有数百个GPU规模的DGX A100 SuperPOD系统也值得研究。

另外,在网络基准测试中,请注意GB / s和Gb / s的区别。GB / s比Gb / s快八倍。

第一次测试我的机器学习工作站

5

GPU定价

定价近似于实际零售价,为简化起见四舍五入,没有增值税和折扣。

企业级(欧元):

  • A100 SMX4(80 GB):€18k

  • A100 SMX4(40 GB):€13k

  • A100 PCIe(40 GB):€9k

专业级和消费级(欧元):

  • RTX A6000 / A40(48GB):€4500

  • RTX 3090(24 GB):€1500-2000

  • RTX 3080(10 GB):€800-1300

  • RTX 3070(12 GB):€700-1000

NVIDIA还提供了创业和教育折扣,因此每个GPU可以节省15-30%。

我在4 x RTX A6000上节省了约4000欧元。

SMX4卡作为8 GPU服务器的一部分出售,由于定制的GPU到GPU的通信使其价格更高,因此上述每个GPU的价格是近似的。

机器学习工作站预算

这些是估计的预建价格,不含折扣和增值税。

高成长的初创公司,大型研究实验室和企业:

  • €240-340k:8 x A100 SXM4(80 GB)

  • €120-170k:8 x A100 SXM4(40 GB)

初创企业,研究实验室和中小型企业:

  • €90k:8 x A100 PCIe(40 GB)

  • €50k:4 x A100 PCIe或8 x RTX A40(无风扇RTX A6000)

  • €25k:4 x RTX A6000(我的装备)

  • €25k:4 x RTX 3090(液冷)

  • €15k:4 x RTX 3090(加密风格或上限性能)

学生,业余爱好者:

  • €10k:4 x RTX 3070

  • €7k:2 x RTX 3090

  • €5k:1 x RTX 3090或2 x RTX 3080

  • €4k:1 x RTX 3080

  • €3k:1 x RTX 3070

预算是一方面,但主要的关注点是放置位置。

开始时,我们通常将机器放在同一个房间里,以应对不便之处。

随着机器扩展,我们将需要更多基础架构。我们可以将其移动到单独的办公室中,然后将其放置在数据中心中,从并置开始,然后从1个数据中心攀升至4个数据中心,以提高容错能力。

我发现4个GPU的声音太大,无法在办公室或家里散热而产生过多的热量。想想看,一台带有热风的小型吹叶机,相当于一个1600W的散热器。

数据中心配置的起始价格为每个GPU每月80-250欧元左右,其中包括每个GPU 25欧元的电费。你可以在此处查询所有本地数据中心配置的报价(https://www.datacentermap.com/quote.html)。如果你计划在4个以上的GPU上运行24/7/365的工作负载,我强烈建议你这样做。

你可以像购买PC一样轻松地为4 GPU服务器购买零件。准系统5+ GPU ML服务器的价格约为7,000欧元。

6

CPU

选择AMD。

AMD的内部带宽是Intel的5倍。而且既便宜又更好。大多数Ampere 机器学习服务器都使用AMD。

AMD具有三种主要的CPU类型:

  • 消费级:带有AM4插槽的Ryzen 5000

  • 专业级:Ryzen Threadripper第三代,带有sTRX4,以及用于第一代Pro版本的sWRX8插槽

  • 企业级:带有SP3插槽的EPYC 2

对于1-GPU系统,Ryzen非常出色;对于2-4 GPU PC的系统,请搭配Threadripper。对于5个以上的GPU系统和服务器版本,请使用EPYC。

Threadripper的速度比EPYC快,但EPYC的存储通道是RDIMM的两倍,并且能耗更低。如果你打算将计算机用作服务器,那么我建议选择EPYC。

我最终买到了32核的AMD EPYC 2 Rome 7502P。对于处理器,我将每个GPU对应八个内核作为一个粗略的指导。另外,请注意它们是否支持单处理器、双处理器或两种处理器设置都支持。

CPU散热

对于散热,Noctua风扇是最安静、性能最高且最可靠的风扇。它们也很大,因此请确保它们适合你的RAM和机箱。

对于RGB风扇,我喜欢Corsair的多合一(AIO)液体CPU散热器。它的颜色是可编程的,并且系统释放了CPU周围的空间。它使用了防冻液,泄漏风险很小。

所有Threadripper和EPYC CPU具有相同的尺寸,从而使散热器兼容,但是你可能需要安装支架。另外,请检查散热器是否支持你选择的CPU的功率。

这是我设想的顶级配置:

  • 锐龙5000:Noctua NH-D15或Corsair H100i RGB PLATINUM

  • Threadripper:Noctua NH-U14S TR4-SP3或Corsair Hydro系列H100x

  • EPYC:Dynatron A26 2U(用于服务器)

由于成本、维护、冻结风险、运输风险和缺乏灵活性,我避免采用定制的液冷。

7

主板

以下是一些值得考虑的AMD主板:

  • 锐龙5000:MSI PRO B550-A PRO AM4(ATX)

  • Threadripper 3rd Gen:华擎TRX40 CREATOR(ATX)

  • Threadripper Pro:ASUS Pro WS WRX80E-SAGE SE(ETAX)

  • EPYC 2:AsRock ROMED8-2T(ATX)(我的主板)

我考虑的主要决定因素是PCIe插槽和IPMI。

如果你打算将机器学习工作站用作普通PC,并希望内置支持WIFI、耳机插孔、麦克风插孔和睡眠功能,那么最好使用消费级或专业级主板。

就我而言,我使用了双重用途的专业级/服务器主板,该主板支持远程处理或智能平台管理接口(IPMI)。通过以太网连接和Web GUI,我可以安装操作系统,打开/关闭操作系统并连接到虚拟监视器。如果计划进行24/7/365工作负载,则IPMI是理想的选择。

CPU插槽具有内置芯片组,专业级和消费级具有附加的芯片组以启用特定的CPU或功能,例如,Ryzen的B550和Threadripper的TRX40。

对于Ryzen 5000版本,理想的是具有BIOS刷新按钮。否则,你需要更早的Gen Ryzen CPU来更新BIOS以与Ryzen 5000兼容。

5+ GPU的server-only主板很难单独购买。消费级设置是模块化的,而较大的服务器则是集成的。

主板尺寸

主板的标准尺寸为ATX,尺寸为305×244毫米,非常适合服务器机箱和PC。我主要关注标准尺寸的ATX板,以避免出现任何机架间距问题。

其他的外形尺寸因制造商而异,因此你在机箱方面会受到更大的限制。对于消费级机箱而言,这并不是什么大问题,但是对于服务器机箱而言,其高度不会超过ATX的305毫米。

8

PCI Express(PCIe)

下面是我用的主板:AsRock ROMED8-2T(ATX)

需要着重注意的是要插入GPU的PCIe插槽,也就是上面的垂直灰色插槽。

连接处位于GPU的最右侧。你能看到,RAM插槽和第一个GPU之间的间隙很紧。

当你在7插槽板上有四个双宽度的GPU时,第4个GPU将超过板的底部。因此,您需要一个支持8个PCIe扩展插槽的PC或服务器机箱。

对于两个RTX 3090三插槽卡,你的第一个GPU会覆盖前三个PCIe插槽和空插槽,而第二个GPU将覆盖最后三个插槽。

如果你打算买一个NVlink来连接两个GPU,它们通常会有2插槽、3插槽和4插槽几个版本。在上图中,你需要两个 2-槽桥。而对于中间有间隙的三槽卡,你需要一个4-槽桥来满足卡的宽度、3插槽以及1插槽间隙。

关于PCIe插槽,有几点值得了解:

  • PCIe物理长度:图中每个插槽的长度为x16,GPU的标准长度为89mm。

  • PCIe带宽:有时,你有一个16插槽的长度,但只有一半的插槽有连接到主板的管脚,使其成为x8带宽的x16插槽。作为参考,加密钻机将使用x16适配器,但x1带宽。

  • 生成速度:上面的板是4.0代。每一代的速度往往是上一代的两倍。NVIDIA的最新gpu是gen4.0,但在实际应用中在gen3.0板上的性能相当。

  • 多GPU要求:对于4-10 GPU系统,通常建议每个GPU至少x8 Gen 3.0。

PCIe通道

大多数人需要的另一个东西是PCIe通道的总量,即总的内部带宽。这里给一个网络、存储和多GPU容量的粗略指示。

主板制造商会使用PCIe通道来优先考虑某些功能,例如存储、PCIe插槽、CPU—CPU直接的通信等。

作为参考,一个GPU将使用16通道,一个10 GB/s以太网端口使用8通道,一个NVMe SSD将使用4通道。

9

机箱

最常用的机器学习工作站机箱是Corsair Carbide Air 540,而对于消费级服务器,则是Chenbro Micom RM41300-FS81。从声音、灰尘和运输的角度来看,这两种情况是理想的。两者都能容纳RTX3090,但你需要为Chenbro配置一个后端电源连接器。

我从Thermaltake Core P5钢化玻璃版开始。从苦行僧的角度来说,这是最好的。但它相当笨重,不能沾染灰尘。考虑到GPU的热量和噪音,我决定将其转换成带有Chenbro机箱的服务器,并将其放入数据中心。

GPU之间的空间比主机箱气流的影响更大。如果你采用了3+3080/3090,你可能需要开放的加密工作站设置。然而,这是非常嘈杂和容易沾染灰尘的。理想情况下,你要把它放在一个隔音的房间里,安装冷却器和灰尘过滤器。

Chenbro机箱盖上有两个120毫米2700转的风扇,为GPU创造了极好的气流。

10

PSU、RAM和存储

如果你已经选好了GPU、CPU、主板和机箱,其余的组件会很容易挑选。

电源:关于电源,我看了两个被认为是最好的供应商,EVGA和Corsair。我考虑了GPU的总功率,额外的250W,以及保险边界。这里有一个更精确的功率计算器(https://www.newegg.com/tools/power-supply-calculator/)。我最终得到了EVGA超新星1600W T2。

RAM:我看了主板供应商的推荐,买了一些我可以在网上轻松买到的东西。建议用RAM填充可用的插槽,我希望RAM内存能匹配或超过相对应的GPU内存。据Tim Dettmers说,内存速度对整体性能影响不大。我用的是8 x Kingston 32GB 3200MHz DDR4 KSM32RD4/32ME,所以总共是256 GB。

NVMe SSD:我检查了PCpartpicker和Newegg上评级最高的SSD。我的指导原则是在PCIe Gen 4.0的基础上每GPU配上 0.5 TB。我用了两个2 TB三星980 Pro 2到M.2 NVMe。

硬盘驱动器:我选择了和SSD一样的策略,每个GPU对应有6TB的存储空间。最终我采用了2 x 12 TB Seagate IronWolf Pro、3.5英寸、SATA 6Gb/s、7200 RPM、256MB缓存。对于更严格的基准测试,可以研究磁盘故障率。

NVlink:这是一个很好的方法,可以在特定的工作负载上提高百分之几的性能。不过,它没有结合两个GPU的内存,只是一个营销误导。

11

搭建和安装

搭建工作站最困难的部分是买到各种零件。(我咋觉得最困难的是钱

把这些部件组装起来只需要不到一个小时,但是为了安全起见,你可能需要多花几个小时。

我用远程管理系统安装了软件。当我把以太网线插入路由器时,它给我的路由器分配了一个IP地址,然后我把这个IP地址放进浏览器,我可以访问一个web界面来更新BIOS并安装了Ubuntu20.04 LTS。

然后我为所有GPU驱动程序和机器学习库等安装了Lambda堆栈,强烈推荐!

如果你使用的是IMPI,请在BIOS中将VGA输出更改为internal。否则,如果不删除GPU,就无法使用IMPI中的虚拟监视器。

12

结论

拥有自己的硬件的主要好处是工作流。

不要在云计算上浪费时间,应该鼓励进行鲁棒的实验。

亲自搭建一个工作站,你会学到很多东西,成为一个受过更多教育的消费者。另外,这是一个宝贵的技能。

英伟达正在努力让3+GPU工作站能使用上高端消费卡。对于家里有服务器的专业级工作站,我会选择4 x 3090的开放工作站。空间更有限的的话,就选择2 x 3090的工作站。

如果有了更大的预算,4 x RTX A6000是一个不错的选择,但考虑到噪音和热量,我会选择服务器解决方案,并将其放置在数据中心。

相比A100,A6000 / A40的性价比更高。SMX4太笨拙,与PCIe版本相比性能微不足道。

我希望大家能构建包含大型集群的透明基准,以了解实践中的好处。

原文链接:

https://www.emilwallner.com/p/ml-rig

点个在看 paper不断!

因买不到 RTX 3090,他花 19 万搭了一个专业级机器学习工作站相关推荐

  1. 因买不到RTX 3090!他花19万搭了一个专业级机器学习工作站

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 本文转载自:AI科技评论 作者 | Emil Wallner 编译 | 青暮.陈大鑫 Emil Wallne ...

  2. 因买不到RTX 3090,小哥自己搭建了一个专业级机器学习工作站

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自|知乎   作者|Emil Wallner 来源 AI科技评论 编辑丨极市平台 极 ...

  3. 如何评价英伟达9月2日凌晨发布的最强消费级显卡RTX 3090?

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 本文整理自知乎问答,仅用于学术分享.如有侵权,请联系后台作删文处理. 编辑|极市平台 导读 就 ...

  4. 时代变了,大人:RTX 3090时代,哪款显卡配得上我的炼丹炉?

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 黄老板的 RTX 30 系列显卡 9 月 17 日就要发售了,现在我要怎么买 GPU?很急很关 ...

  5. 卷成这样,非逼我用RTX 3090?(深度学习GPU平台种草

    我是一枚做AI算法的,已经在这片红海里,卷了好些年,身边总有一些想转AI的盆友,对此,本人的拷问也从不缺席,数学能行吗,coding厉害吗,最重要的是,有GPU资源吗? 曾几何时,实验室有限的资源,让 ...

  6. 玩家在RTX 3090显卡中发现了指套

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:新智元 AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源!可打印版本附pdf下载链接 国外 ...

  7. 羡慕的泪水!显卡对决!GPU A6000和RTX 3090 性能对比

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:机器之心 AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源!可打印版本附pdf下载链接 又 ...

  8. 本周AI热点回顾:GPT-3开始探索付费使用;这个视频「橡皮擦」让你瞬间消失;英伟达最强消费级显卡RTX 3090出炉

    点击左上方蓝字关注我们 01 服贸会来了!百度飞桨发布最新成果,获"科技创新服务示范案例" 这周末要被"黑科技"十足的服贸会承包了!今年服贸会以"科技 ...

  9. RTX 3090 Ti 正式发布!30系列显卡的封顶之作!

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 转载自:机器之心 | 编辑:杜伟 这次,用户能以原价买到吗? 英伟达最强的桌面端显卡 RTX 3090 Ti ...

最新文章

  1. 华胜天成1.18亿美元收购美国GD公司
  2. java8学习:用流收集数据
  3. linux i查看o性能度量,11.9.18 学习笔记:性能管理
  4. Number of 1 bits
  5. android置组件下面,Android Jetpack架构组件(十二)之Hilt
  6. Spark微博人口流动分析(1)
  7. Java中二维数组的用法(不定长二维数组)
  8. file协议 控制面板_如何在Windows File Explorer导航窗格中显示控制面板和回收站
  9. Linux 系统服务管理器(初始化系统/init system) -- systemd 及命令 systemctl 的详细介绍
  10. 【codeforces 534D】Handshakes
  11. 一个方案搞定从模型量化到端侧部署全流程
  12. [Ting's笔记Day9]活用套件Carrierwave gem:(4)使用Imagemagick修改图片大小
  13. loadrunner录制时web时,安全证书问题
  14. 运行CATIA2018主程序setup.exe时,报错setup:Problem with VC11 Runtime installation
  15. npm 安装yarn
  16. 关于基向量的理解和矩阵的推导
  17. 没有域名能不能申请企业邮箱?
  18. java 画正弦函数曲线_java打印正弦曲线示例
  19. 大写金额转换(报销大写金额转换)
  20. 如何获取手机的屏幕尺寸

热门文章

  1. FileUpload生成图片水印,文字水印(转载)
  2. 深圳杯---人才吸引力评价模型研究
  3. 计算机在轻工行业中的应用,计算机在不同领域中的具体应用
  4. 用友发布新一代企业智能商旅及费控服务平台
  5. ONNX 浅析:如何加速深度学习算法工程化?
  6. 终于有人解救Python人了!
  7. 谷歌编程语言年度榜NO.1:知识体系总结(2021版)
  8. 中国人工智能学会2020年度优秀科技成果出炉,百度文心ERNIE入选
  9. 论文推荐 | 目标检测中不平衡问题算法综述
  10. Variable和Tensor合并后,PyTorch的代码要怎么改?