2019-04-23 19:54:16 u013166171 阅读数 14855
  • WebGL 可视化3D绘图框架:Three.js 零基础上手实战

    相对于Flash,Flex,Silverlight等富客户端技术,WebGL之ThreeJS:通过OpenGL ES 2.0,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。这是未来的网游趋势,如果你想做可视化动画三维企业应用,又不想用复杂的C++程序,那么 Three.js 将会是你最好的选择。  本课程主要的功效就是让你学习完本教程后,能够写出在浏览器上流畅运行的3D程序,包括但不限于:大数据可视化,360度全景展示,3D游戏,完成这些事情,会比c++用更少的代码。而且更容易,更酷。 在本课程中,我们将由浅入深的讲解这些效果的实现,这能让你迅速提高开发技能,在职场中处于不败之地。课程共十三章,大大小小贯穿了近10个案例,只要你具备基础的HTML和JavaScript基础即可学习。

    1510 人正在学习 去看看 童金浩

如果是单玩游戏,那么2080ti最好,光线追踪,而且双卡复用需要游戏支持,所以一般只能发挥单卡性能,那自然2080ti。

如果是深度学习的话,那就有的谈了,

结论:纯综合算力而言1080ti,单卡算力2080ti,性价比1080ti.

float16算力而言:两个1080ti不如2080ti(以两个1080ti并行算力达1.8算)

float32算力而言:能并行任务两个1080ti(以两个1080ti并行算力达1.8倍算)胜。

复杂度而言:2080ti安装维护更简单

任务形式而言:多个学生同时跑不同实验就1080ti,只主要跑一个实验推荐2080ti

但双卡需要耗费更多槽位,功耗提升,散热问题,cpu内存主板也需要同时考虑,而且1080ti二手矿卡多,可能也会造成成本接近类似的情况(2080ti花屏问题不知道解决没有)。

 

4月20号目前市价假设:

1080ti 6500

2080ti 11000

根据几大网站对于经典网络(VGG,resnet)的统计如下:

https://www.quora.com/Which-GPU-is-better-for-deep-learning-GTX-2080-Ti-or-Titan-V

及另外一个网站统计:

https://bizon-tech.com/us/blog/gtx1080ti-titan-rtx-2080-ti-deep-learning-benchmarks

按照上面统计,从单张1080ti 6500元 去按照算力实际提升算单张2080ti的价格

bizon 16fp 8695元 32fp 8400元

lamdba 16fp 11206元 32fp 8783元

而实际目前观察到的市价是11000,

可以看到除了fp16有足值提升外,32fp是有性价比不足的问题的。

将2080ti相对1080ti的算能提升比在单次评估和多次训练及vgg resnet网络统计对比如下:

长时间 单次评估

‘vgg 0.77 0.74

resnet 0..69 0.72

这意味着,对于网络结构而言,越深越复杂网络训练评估中2080ti相对耗时减少效应越明显。

而同一网络是否会因为训练时间延长而使得2080ti耗时减少越明显尚不得而知。

而如果是fp64的话,那还是titan v吧,理由如下:深度学习 显卡 硬件

https://www.quora.com/Which-GPU-is-better-for-deep-learning-GTX-2080-Ti-or-Titan-V

2018-11-18 21:25:45 weixin_43599336 阅读数 11006
  • WebGL 可视化3D绘图框架:Three.js 零基础上手实战

    相对于Flash,Flex,Silverlight等富客户端技术,WebGL之ThreeJS:通过OpenGL ES 2.0,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。这是未来的网游趋势,如果你想做可视化动画三维企业应用,又不想用复杂的C++程序,那么 Three.js 将会是你最好的选择。  本课程主要的功效就是让你学习完本教程后,能够写出在浏览器上流畅运行的3D程序,包括但不限于:大数据可视化,360度全景展示,3D游戏,完成这些事情,会比c++用更少的代码。而且更容易,更酷。 在本课程中,我们将由浅入深的讲解这些效果的实现,这能让你迅速提高开发技能,在职场中处于不败之地。课程共十三章,大大小小贯穿了近10个案例,只要你具备基础的HTML和JavaScript基础即可学习。

    1510 人正在学习 去看看 童金浩

此方案适用于个人或小型企业,此方案有不稳定性,如果预算充足请购买Tesla 显卡

转载请注明出处

视频:https://www.bilibili.com/video/av35317062
渲染,深度学习测试视频:https://www.bilibili.com/video/av37273009

P106-100 拥有1060 6g显卡的全部cuda单元与显存。只不过他原本只为挖矿而生,所以没有显示输出接口,但是,他保留了CUDA的计算能力,所以可以用在除游戏以外的大部分应用场景
包括但不限于 深度学习、图片渲染、影片剪辑等需要GPU辅助处理的领域
在这里插入图片描述
P106显卡,没有显示输出

关于价格

虽然这张p106是二手货,但现在1060 6g二手多为1200元左右,而我入手的P106只要470(现在只要360左右了[2018.12]) ,所以P106不失为一种性价比超越一切的深度学习显卡。

如何输出显示画面

使用集成显卡或者另外购置一张亮机卡用来显示输出
(我使用的是服务器CPU,所以我用了一张GTX750作为显示输出显卡)

计算性能:

我把P106插在了PCI-E1X插槽上,所以内存读写十分慢
我把P106插在了PCI-E1X插槽上,所以内存读写十分慢。其他指标与正常1060 6G相当

TensorFlow测试

在这里插入图片描述
在tf输出的信息当中可以明确的看出使用了P106矿卡

写在最后

在去年的挖矿热潮当中,NV还推出了使用1070核心的P104矿卡,不过他的显存被削到了4g 虽然是ddr5x,但显存溢出很可能会成为家常便饭而且现在售价高达1000,所以并不推荐。

此外,还有更加极端的使用1080Ti核心的P102矿卡,只有5g显存,pci-e通道被削到了X4,而且售价高达4000,强烈不推荐购买
多卡渲染:https://zhuanlan.zhihu.com/p/29974719

2019-11-11 15:55:39 qq_22945165 阅读数 185
  • WebGL 可视化3D绘图框架:Three.js 零基础上手实战

    相对于Flash,Flex,Silverlight等富客户端技术,WebGL之ThreeJS:通过OpenGL ES 2.0,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。这是未来的网游趋势,如果你想做可视化动画三维企业应用,又不想用复杂的C++程序,那么 Three.js 将会是你最好的选择。  本课程主要的功效就是让你学习完本教程后,能够写出在浏览器上流畅运行的3D程序,包括但不限于:大数据可视化,360度全景展示,3D游戏,完成这些事情,会比c++用更少的代码。而且更容易,更酷。 在本课程中,我们将由浅入深的讲解这些效果的实现,这能让你迅速提高开发技能,在职场中处于不败之地。课程共十三章,大大小小贯穿了近10个案例,只要你具备基础的HTML和JavaScript基础即可学习。

    1510 人正在学习 去看看 童金浩

caffe基本不更新了,而且caffe2也已经是pytorch的一部分了。如果想考古可以用用caffe,但是如果时间比较紧的话还是学学Pytorch吧,大势所趋
去年双十一前, 苦苦对比买了台组装机,最终因为贪图便宜300块钱选择了AMD的处理器和显卡。后来才发现CUDA是英伟达公司开发的,AMD显卡的架构不一样所以不能使用。而我心心念念的Caffe官网上只有关于CUDA的安装使用教程,但是好在AMD公司自己也开发了ROCm来和CUDA对标,虽然比CUDA小众很多但是好在买的显卡不至于只能用来打游戏。
之前有些买AMD显卡的选择安装各个神经网络的Opencl版本,但是毕竟没有专门用来深度学习工具的香。
如果还不了解OpenCL和CUDA是什么可以参考下面这个短文
CUDA和OpenCL的区别

本文主要参考ROCm官网,半搬运文章 https://rocm.github.io/

更新:官网上的引导教程有错误,我已经在GitHub上提交了,虽然GitHub上改了但是网站上估计还有一段时间。嘿嘿嘿 可以在direct contributors找到我

在这里插入图片描述

预备阶段

1.硬件检查

首先看看自己的显卡是否支持ROCm ,在这个网页里ROCm硬件支持列表
搜索自己显卡的型号,如果在可使用的列表内那可以继续看本文,如果在不支持的列表内,关闭本网页就好了。

2.软件准备

(1)首先将ROCm存储库地址添加到系统

wget -qO - http://repo.radeon.com/rocm/apt/debian/rocm.gpg.key | sudo apt-key add -
echo 'deb [arch=amd64] http://repo.radeon.com/rocm/apt/debian/ xenial main' | sudo tee /etc/apt/sources.list.d/rocm.list

然后更新一下库,并且安装ROCm的核心组建 romc-dkms (下载大小500m解压后大小在2G+)需要等一段时间

sudo apt update
sudo apt install rocm-dkms

(2)检查自己是否在用户组里,因为必须有权限才能调用硬件GPU(如果是自己的个人电脑只有一个账户那肯定在里面)

groups

添加用户代码(其中LOGNAME是你的用户名,自动补全应该能显示)

sudo usermod -a -G video $LOGNAME 

也可以把全部用户加入进来

//非必要命令行,注意条件
echo 'ADD_EXTRA_GROUPS=1' | sudo tee -a /etc/adduser.conf
echo 'EXTRA_GROUPS=video' | sudo tee -a /etc/adduser.conf

(3)检查是否安装成功(检查前最好重启电脑)

/opt/rocm/bin/rocminfo 
/opt/rocm/opencl/bin/x86_64/clinfo

分别运行这两行,看看有没有自己的显卡信息 而且没有红色的报错
然后把ROCm添加到系统环境里面

echo 'export PATH=$PATH:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin/x86_64' | sudo tee -a /etc/profile.d/rocm.sh

(4)选装
交叉编译
在不同的系统上进行开发和测试通常很有用。例如,某些开发或构建系统可能未安装AMD GPU。在这种情况下,您可能希望避免在开发系统中安装ROCK内核驱动程序。
在这种情况下,请安装软件包的开发子集:

sudo apt update
sudo apt install rocm-dev

(5)安装caffe部分

sudo apt-get install rocm-libs
sudo apt-get install miopen-hip miopengemm
sudo apt-get install -y \
     g++-multilib \
     libunwind-dev \
     git \
     cmake cmake-curses-gui \
     vim \
     emacs-nox \
     curl \
     wget \
     rpm \
     unzip \
     bc

(6)检查安装情况

cp -r /opt/rocm/hip/samples ~/hip-samples && cd ~/hip-samples/0_Intro/square/
make
./square.out

(第三行官网上写的生成文件名和实际文件名不一样,应该是更新后没有及时改,可以按照我的,最重要的还是依照你make后显示生成的文件名来)运行后应该有显示显卡信息之类

(7)编译程序

cd ~
git clone https://github.com/ROCmSoftwarePlatform/hipCaffe.git
cd hipCaffe
cp ./Makefile.config.example ./Makefile.config
make -j$(nproc)

(make出现warning是没什么问题的)
注意!这里make可能会报错:关于recipe for target ‘.build_release/tools/caffe.bin’ failed
我的原因是使用的是opencv3,解决方法是:把Makefile.config文件里,关于OpenCV的
OPENCV_VERSION := 3
前的#号注释删除掉就好了。
还有一点就是如果一次失败以后,修改过config文件后要执行 make clean 再重新make -j$(nproc) 要不然会有上次错误的信息留下了。

如果执行以后没有报错正常结束,则说明我们的安装成功了。

3.mnist例子测试

在hipCaffe目录下:

./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
./examples/mnist/train_lenet.sh

第一行是下载mnist数据集的脚本,终端下载有点慢,也可以自己到官网上下载,放到./data/mnist/文件夹下解压。
第二行是把数据集转化成带标签的训练文件。
第三行是训练。

训练成功会一直输出accrency和loss
例如这样
… …
I1111 22:04:58.524817 15519 solver.cpp:404] Test net output #0: accuracy = 0.9907
I1111 22:04:58.524850 15519 solver.cpp:404] Test net output #1: loss = 0.0291341 (* 1 = 0.0291341 loss)
I1111 22:04:58.524858 15519 solver.cpp:322] Optimization Done.
I1111 22:04:58.524863 15519 caffe.cpp:254] Optimization Done.

2020-01-29 22:43:28 bnmbbnnm 阅读数 32
  • WebGL 可视化3D绘图框架:Three.js 零基础上手实战

    相对于Flash,Flex,Silverlight等富客户端技术,WebGL之ThreeJS:通过OpenGL ES 2.0,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。这是未来的网游趋势,如果你想做可视化动画三维企业应用,又不想用复杂的C++程序,那么 Three.js 将会是你最好的选择。  本课程主要的功效就是让你学习完本教程后,能够写出在浏览器上流畅运行的3D程序,包括但不限于:大数据可视化,360度全景展示,3D游戏,完成这些事情,会比c++用更少的代码。而且更容易,更酷。 在本课程中,我们将由浅入深的讲解这些效果的实现,这能让你迅速提高开发技能,在职场中处于不败之地。课程共十三章,大大小小贯穿了近10个案例,只要你具备基础的HTML和JavaScript基础即可学习。

    1510 人正在学习 去看看 童金浩

这是我的第一个博客文章

大家好,我是铁山的小小关,希望能和大家有一个愉快的交流。

我擅长

  1. 深度学习 ,深度学习确实挺厉害的,也很火。深度学习最核心的是神经网络这样一个数据结构,主要的操作是矩阵计算,需要做大量的并行计算,离不开高性能的游戏显卡,当然显卡买回家免不了要玩两把好玩的游戏,对吧。好了,言归正传,深度学习实际上与其他算法最本质的区别是在如何对待数据这个问题上,其他程序把数据基本上就是当做输入,然后通过程序计算返回结果,但深度学习不同,数据成为了深度学习程序不可分割的一部分,没有大量数据的输入,程序无法计算。开发环境用的python语言,API是MXNet,MXNet里面的NDArray与autograd分别用于矩阵计算和自动计算梯度,算是最常用到的两个模块。开发框架是gluon,gluon里面有一个jupyter notebook的功能,相当于打开一个记事本,直接在上面写代码运行,反正很方便。再加上有李沐大神带着飞,很爽。
  2. 三维图形学 ,开发环境是WebGL、Threejs,写的是在网页上跑的三维图形程序,我觉得我不用任何库也能写一个网页上跑的三维图形程序,就是很累。我对VR特别感兴趣,听说现在流行A-Frame框架和WebXR API,正准备尝试。
  3. 前端 ,尝试了Vuejs、ElementUI,能写界面、业务代码,做了一个项目,感觉还行。但是没有后端,总感觉不完整。
2017-11-21 23:03:16 aggresss 阅读数 2271
  • WebGL 可视化3D绘图框架:Three.js 零基础上手实战

    相对于Flash,Flex,Silverlight等富客户端技术,WebGL之ThreeJS:通过OpenGL ES 2.0,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。这是未来的网游趋势,如果你想做可视化动画三维企业应用,又不想用复杂的C++程序,那么 Three.js 将会是你最好的选择。  本课程主要的功效就是让你学习完本教程后,能够写出在浏览器上流畅运行的3D程序,包括但不限于:大数据可视化,360度全景展示,3D游戏,完成这些事情,会比c++用更少的代码。而且更容易,更酷。 在本课程中,我们将由浅入深的讲解这些效果的实现,这能让你迅速提高开发技能,在职场中处于不败之地。课程共十三章,大大小小贯穿了近10个案例,只要你具备基础的HTML和JavaScript基础即可学习。

    1510 人正在学习 去看看 童金浩

  记得小时候玩的游戏机在没有投币的时候会自动播放预先录制的游戏视频,然后屏幕上会闪烁着”DEMONSTRATION”的字样,当时不理解是预先录制的游戏视频,认为是机器可以自己操控自己玩游戏,因为那时没有什么探索的方式(比如图书馆或者搜索引擎),但还是会占用上课的时间去思考机器自己和自己玩游戏是怎么实现的。好奇心重的人真的每天都生活在坑里,一个接着一个的坑。
  这一期我来演示一个机器通过深度学习的方式和自己玩游戏的小例子,也许通过深度学习的方式,整个游戏外挂行业正在快速迭代中。在检索素材的过程中发现 Udacity 提供的 “Udacity’s Self-Driving Car Simulator” 模型最适合演示,它提供了一个模拟器,可以支持模拟器中汽车的训练和自动驾驶功能,项目使用 MIT 协议开源 https://github.com/udacity/self-driving-car-sim . 可以将源代码下载并用 Unity 工具构建一下,因为不太感兴趣构建的过程,所以我使用官方编译好的bin文件,如果不能下载可以从我的网盘下载 https://pan.baidu.com/s/1dE5PrHJ 将 beta-simulator-linux.zip 解压并赋予执行权限就可以运行模拟器。可以先运行一下,画质和 NFS3 很像,毕竟只是演示画面没有那么细腻。
  在进行演示之前需要安装一个和 pip + virtualenv 很像的另外一种科学实验环境管理器:conda ;虽然 Anaconda 像 MATLAB 一样带有浓厚的商业气息,但 conda 还是完全开源和免费的社区型项目(https://github.com/conda/conda/wiki/Conda-Community),不要被 Anaconda 的臃肿和商业性所遮眼, 将 conda 最小化包装的开源项目 Miniconda 真的可以更大的提升实验环境的部署效率。通过下面的链接可以下载 miniconda:
  https://conda.io/miniconda.html
  https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
  conda 的实验环境搭建是在用户级别的,它的创意之处就在于它把 Python 也当成自己的一个小组件,可以任意指定版本,所以用不到 sudo 之类的操作。使用下面的命令安装 miniconda ,各种 Enter 即可完成

bash Miniconda3-latest-Linux-x86_64.sh 

如果网络质量不给力可以修改 conda 的源为国内镜像,具体步骤请参考 https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
  模拟器的训练和自动驾驶,我们使用 https://github.com/naokishibuya/car-behavioral-cloning 提供的方法,网络模型构建依据 Nvidia 的 End-to-End Deep Learning 模型 https://devblogs.nvidia.com/parallelforall/deep-learning-self-driving-cars/
下载运行脚本文件 https://github.com/aggresss/GPUDemo/tree/master/car-behavioral-cloning
  conda 通过一个 yml(Yet anther Markup Language) 文件就可以实现环境的部署

conda env create -f environment-gpu.yml

激活实验环境,然后运行驾驶脚本

source activate car-behavioral-cloning
python drive.py model.h5

当出现提示”wsgi starting up on http://0.0.0.0:4567“时说明自动驾驶服务已经开启成功,然后在shell 中执行 beta_simulator.x86_64 选择 Autonomous Mode

这里写图片描述

  原理并不复杂,在选择自动驾驶模式时,模拟器会把每一帧图片提交给 一个 wsgi 服务,这个服务通过将图片传入我们构建的神经网络计算出这张图片应该对应的车辆操作,比如油门刹车和方向盘角度,然后返回给模拟器,模拟器通过返回指令操作车辆。

  深度学习的神经网络通过 Keras 实现非常通俗易懂,5层卷积层和4层全连接层。

def build_model(args):
    """
    Modified NVIDIA model
    """
    model = Sequential()
    model.add(Lambda(lambda x: x/127.5-1.0, input_shape=INPUT_SHAPE))
    model.add(Conv2D(24, 5, 5, activation='elu', subsample=(2, 2)))
    model.add(Conv2D(36, 5, 5, activation='elu', subsample=(2, 2)))
    model.add(Conv2D(48, 5, 5, activation='elu', subsample=(2, 2)))
    model.add(Conv2D(64, 3, 3, activation='elu'))
    model.add(Conv2D(64, 3, 3, activation='elu'))
    model.add(Dropout(args.keep_prob))
    model.add(Flatten())
    model.add(Dense(100, activation='elu'))
    model.add(Dense(50, activation='elu'))
    model.add(Dense(10, activation='elu'))
    model.add(Dense(1))
    model.summary()

    return model

   刚才我们使用的weight文件 model.h5 是预先训练好的,经常会自己开到坑里,我们也可以自己重新训练一下这个网络:在目录下创建 data 文件夹 然后运行模拟器选择Train mode ,进入驾驶模式后点击 RECORD 然后选择 data 文件夹,开始驾驶,结束后在点击暂停按钮,模拟器会自动将刚才驾驶过程中的图片与车轮角度的对应关系生成数据文件,用于下一步的网络训练。
退出后执行 python model.py 就会训练网络,然后通过训练后的 weight 值提交给 drive.py 体验自己训练的网络的准确度。
  实验结束后可以通过如下方式退出并删除实验环境:

source deactivate
conda env remove --name car-behavioral-cloning

显卡驱动安装

阅读数 1781

没有更多推荐了,返回首页