- 博客(30)
- 资源 (1)
- 收藏
- 关注
原创 CUDA程序性能分析-矩阵乘法
矩阵乘法非常适合在GPU上并行运行,但是使用GPU并行后能获得多大的性能提升?本文将通过一些实验分析CUDA程序的性能。本文主要记录了本人测试CUDA程序性能的结果,并对结果进行了分析,从测试结果和分析可以为并行程序和优化性能带来一些启示。
2016-12-02 21:05:56
3968
原创 使用Python写CUDA程序
本文讲述了两种使用Python编写CUDA程序使用的方式,包括Numba和PyCUDA,并对比分析了这两种方法。
2016-09-26 20:59:28
20664
3
原创 CUDA并行算法系列之FFT快速卷积
本文首先简要介绍了卷积运算,然后使用Python实现了卷积运行的代码,接着讨论了基于FFT的快速卷积算法,并使用Python实现了FFT卷积,接着对直接卷积和基于FFT的快速卷积算法的性能进行了分析,从实验结果可以看出,FFT卷积相比直接卷积具有更快的运行速度。最后,基于CUDA实现了直接卷积算法,并且使用cuFFT和thrush在CUDA平台实现了基于FFT的快速卷积算法。
2016-09-21 11:53:26
7972
原创 CUDA并行算法系列之规约
CUDA并行算法系列之规约前言规约是一类并行算法,对传入的N个数据,使用一个二元的符合结合律的操作符⊕,生成1个结果。这类操作包括取最小、取最大、求和、平方和、逻辑与/或、向量点积。规约也是其他高级算法中重要的基础算法。除非操作符⊕的求解代价极高,否则规约倾向于带宽受限型任务(bandwidthbound)。本文将介绍几种规约算法的实现,从两遍规约、block的线程数必须为2的幂,一步一步优化。
2016-09-21 11:49:54
6057
原创 混合语言编程:启用CLR(公共语言运行时编译)让C#调用C++
让C#调用C++前言关于混合C#和C++的编程方式,本人之前写过一篇博客(参见混合语言编程:C#使用原生的Directx和OpenGL),在之前的博客中,介绍了在C#的Winform和WPF下使用原生的Direct和OpenGL进行绘图,主要使用的方式是声明一个函数为导出函数,然后就可以在C#中使用这个函数。
2016-09-21 11:41:06
7599
1
原创 【CUDA并行程序设计系列(4)】CUDA内存
【CUDA并行程序设计系列(4)】CUDA内存前言CUDA并行程序设计系列是本人在学习CUDA时整理的资料,内容大都来源于对《CUDA并行程序设计:GPU编程指南》、《GPU高性能编程CUDA实战》和CUDA Toolkit Documentation的整理。通过本系列整体介绍CUDA并行程序设计。内容包括GPU简介、CUDA简介、环境搭建、线程模型、内存、原子操作、同步、流和多GPU架构等。
2016-09-21 11:38:56
1738
原创 【CUDA并行程序设计系列(3)】CUDA线程模型
前言CUDA并行程序设计系列是本人在学习CUDA时整理的资料,内容大都来源于对《CUDA并行程序设计:GPU编程指南》、《GPU高性能编程CUDA实战》和CUDA Toolkit Documentation的整理。通过本系列整体介绍CUDA并行程序设计。内容包括GPU简介、CUDA简介、环境搭建、线程模型、内存、原子操作、同步、流和多GPU架构等。本系列目录:【CUDA并行程序设计系
2015-11-03 21:55:37
1136
原创 【CUDA并行程序设计系列(2)】CUDA简介及CUDA初步编程
CUDA并行程序设计系列是本人在学习CUDA时整理的资料,内容大都来源于对《CUDA并行程序设计:GPU编程指南》、《GPU高性能编程CUDA实战》和CUDA Toolkit Documentation的整理。通过本系列整体介绍CUDA并行程序设计。内容包括GPU简介、CUDA简介、环境搭建、线程模型、内存、原子操作、同步、流和多GPU架构等。本文对CUDA进行简单介绍,并通过实例代码演示怎么编写在GPU上运行的代码
2015-11-03 21:52:28
1384
原创 【CUDA并行程序设计系列(1)】GPU技术简介
摘要: CUDA并行程序设计系列是本人在学习CUDA时整理的资料,内容大都来源于对《CUDA并行程序设计:GPU编程指南》、《GPU高性能编程CUDA实战》和CUDA Toolkit Documentation的整理。通过本系列整体介绍CUDA并行程序设计。内容包括GPU简介、CUDA简介、环境搭建、线程模型、内存、原子操作、同步、流和多GPU架构等。本文对GPU技术进行简单介绍。
2015-10-24 10:15:09
1556
原创 关于CUDA的一些学习资料
最近看了一些关于CUDA方面的资料,并粗略地浏览了两本关于CUDA和GPGPU的书(《GPGPU编程技术:从GLSL、CUDA到OpenCL》和《CUDA并行程序设计:GPU编程指南》),对于CUDA目前本人也是处于正在入门的阶段。在此汇编CUDA的学习资料,方便以后的学习。关于GPGPU所谓GPGPU,就是把强大的图形处理器应用于日益复杂的计算工作。
2015-10-17 22:13:15
6537
原创 源码阅读:SDWebImage
SDWebImage是一个开源的iOS第三方库,主要用于下载并缓存网络图片,在我的博文iOS网络资源缓存ZCLURLCache·上篇提到过SDWebImage。它提供了UIImageView、MKAnnotationView、UIButton的categories(分类),支持网络图片的加载与缓存,其中UIImageView应该是使用最广泛的。本文从源码的角度讨论SDWebImage的下载和缓存的实现。
2015-09-08 19:54:54
779
原创 Python代码登录新浪微博并自动发微博
写个成功程序来帮我发微博。这个程序要满足以下要求:自动化,自动登录微博,自动发微博。微博内容要有意义,不能是随机生成的字符。可以设置每隔一段时间发一条微博,频率不能太快,当然也不能太慢。于是,就诞生了这个程序,代码使用纯Python实现,没有使用微博SDK,主要是模拟HTTP操作。
2015-08-28 16:50:49
5275
原创 模拟HTTP请求实现网页自动操作及数据采集
网页可分为信息提供和业务操作类,信息提供如新闻、股票行情之类的网站。业务操作如网上营业厅、OA之类的。当然,也有很多网站同时具有这两种性质,像微博、豆瓣、淘宝这类网站,既提供信息,也实现某些业务。普通上网方式一般都是手动操作(这个不需要解释:D)。但有时候人工手动操作的方式可能就无法胜任了,如爬取网络上大量数据,实时监测某个页面的变化,批量操作业务(如批量发微博,批量淘宝购物)、刷单等。
2015-08-15 18:05:03
25182
原创 iOS开发之Objective-C(Swift)与JavaScript交互·WebViewJavascriptBridge使用篇
在iOS原生应用程序加载网页来实现部分界面或功能已不是什么稀奇的事了。很多应用都使用了HTML+CSS+Javascript+Native APP的方式来开发,如Fackbook、微信和支付宝等。
2015-08-06 11:33:11
1627
原创 iOS开发之蓝牙4.0 BLE开发
物联网时代的到来,智能硬件层出不穷。蓝牙低功耗技术(BLE,Bluetooth Low Energy)使得蓝牙4.0的应用越来越广泛,比如小米手环就是使用蓝牙4.0来传输数据。在蓝牙4.0之前,iOS的蓝牙功能作为私有,开发者只能使用蓝牙开发联机游戏而不能和第三方蓝牙设备通信
2015-07-22 17:47:41
3553
原创 用遗传算法求解TSP问题
原文链接: http://zh.5long.me/2015/genetic-algorithm-on-tsp/遗传算法简介关于遗传算法,首先看一段维基百科的解释: 遗传算法是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,它借鉴了达尔文的进化论和孟德尔的遗传学说。其本质是一种高效、并行、全局搜索的方法,它能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应的控制搜索过程以求得最优解。
2015-05-25 17:58:02
40785
11
原创 用Python做数学计算之基础计算
原文链接: http://zh.5long.me/2015/python-math-1/摘要(Abstract)本文介绍使用Python来做数学计算,在学习和工作中,经常会遇到一些数学计算的问题。一般人会使用计算器软件,不得不说,计算器太难用了。专业人士可能会使用更强大的工具,如Matlab,但这种重量级工具有时可能并不适用。本文打算使用一个轻量级的工具Python来做计算。准确来说Python并不
2015-05-06 18:11:57
49989
原创 C#调用Python脚本并使用Python的第三方模块
C#调用Python脚本并使用Python的第三方模块原文链接: http://taonull.github.io/2015/dotnet-call-python/本文谢绝转载,如需转载需征得作者本人同意,谢谢。2015 年1 月19 日 前言InronPython是一种在.NET和Mono上实现的Python语言,使用InronPython就可以在.NET环境中调
2015-01-20 19:41:32
39190
1
原创 从《庖丁解牛》谈谈学习编程
原文链接: http://zh.5long.me/2014/paodingjieniu/本文谢绝转载,如需转载需征得作者本人同意,谢谢。前一段时间读了《庄子》中的《庖丁解牛》,不说有多少感悟,联系到我们学习软件开发的一些方法技术,记录在此,一来巩固自己所学的知识,二来与大家分享一些个人体会。若有人能从中获益,那也是功德一件;若不得获益,茶余饭后,闲聊
2014-12-28 15:46:19
1701
原创 敏捷技能修炼之小舵板之三:代码未动,测试先行
原文链接: http://zh.5long.me/2014/Agile-Development-test-first/上一篇:敏捷技能修炼之小舵板之二:分离构造和使用:http://zh.5long.me/2014/Agile-Development-separate-build-use/前言随着敏捷方法的出现,测试驱动开发(Test-Driven Development,
2014-11-23 17:36:39
956
原创 敏捷技能修炼之小舵板之二:分离构造和使用
原文链接: http://zh.5long.me/2014/Agile-Development-separate-build-use/上一篇:敏捷技能修炼之小舵板之一:意图导向编程 http://zh.5long.me/2014/Agile-Development-Programming-by-Intention/前言软件开发从面向过程向面向对象发展的时候,给开发带来了不少
2014-11-14 15:16:54
861
原创 敏捷技能修炼之小舵板之一:意图导向编程
class="journal-title">敏捷技能修炼之小舵板之意图导向编程<spanclass="author"> class="the-article"> id="section">前言 最近想学习敏捷开发,在看一本书,叫《敏捷技能修炼-敏捷软件开发与设计的最佳实践》。正如书中所说,两个同等经验的程序员,在效率和质量上可能
2014-11-09 15:18:15
1168
原创 Python实现k-means算法
k-means算法描述如下:输入:期望得到的簇的数目k,n个对象的数据D输出:k个簇的集合方法: (1)选择k个对象作为初始的簇的质心 (2)repeat (3)计算对象与各个簇的质心的距离,将对象划分到距离其最近的簇 (4)重新计算每个新簇的均值 (5)Until簇的质心不再变化P
2014-10-14 21:52:20
1437
原创 pcDuino使用OTG-USB通过VNC连接到电脑
pcDuino在版本20131127添加了USB网络,可以使用OTG-USB VNC连接到
2014-08-03 13:49:41
2278
原创 混合语言编程—C#使用原生的Directx和OpenGL
本文要说的是混合C#和C/C++语言编程,在C#的Winform和WPF下使用原生的Direct和OpenGL进行绘图。 由于项目需要做一些图形展示,所以就想到了使用Directx和OpenGL来绘图,但项目准备使用C#来开发(大家比较熟悉C#),在网上看了相关的资料,有一些第三方的控件可用,试用了下,一运行就占了几百M的内存,而且也不知道是否稳定,教程也少,还不如直接使用原生
2014-07-16 15:24:28
1727
原创 混合语言编程之VC++和C#管道通信
使用混合语言编程,可发挥各自语言的优势,从而方便快速地完成任务。采用混合语言编程,就必然要解决进程间通信问题。管道似乎是一种不错的选择。今天参考了国外的一个开源工程,又查看了相关资料。命名管道最大的特点便是建立一个简单的客户机/服务器程序设计体系。在这个体系结构中,在客户机与服务器之间,数据既可单向传递,亦可双向流动。服务器:1)使用API函数CreateNamedPipe,创建一个命名管道实例句
2014-07-16 15:24:24
1799
VC++和C#管道通信(2015更新)
2015-11-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人