继续TSP交叉过程询问

wts_net 2009-05-31 09:25:26
加精
比如我有8条路径a[1]={1,2,3,4,5,6},a[2]={2,3,5,6,4,1},a[3]={3,2,6,5,4,1},a[4]={6,2,3,5,4,1},a[5]={1,5,2,3,6,4},a[6]={4,2,3,5,6,1},a[7]={3,2,5,6,4,1},a[8]={2,3,6,4,1,5}在交叉时涉及到两个,一个块里面有两个线程,一个线程负责两个个体的交叉既:block1中线程0:负责a[1]和a[2],线程1:负责a[3]和a[4],block2中线程0:负责a[51]和a[6],线程1:负责a[7]和a[8]?请问这样的设计思路对吗?如果这样设计对的话能帮忙指导一下代码该怎么写吗吗?
...全文
267 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigmanvip 2009-06-03
  • 打赏
  • 举报
回复
我以前做个这个用CUDA加速TSP问题的程序,你在CUDA校园大赛作品展示上就可以找到我的执行程序,就是最下面的那个作品蚁群算法加速作品,你可以参考一下。
darkstorm2111203 2009-06-02
  • 打赏
  • 举报
回复
将上一代的优秀输出放到global mem中
作为下一个kernel的输入
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wts_net 的回复:]
比较BLOCK1和BLOCK2中的路径的优劣是不是需要将这两个块中的个体传回CPU中进 行比较呢?要是GPU中比较是不是没有办法啊?因为block之间不能进行通信啊?
[/Quote]

保存到gmem中.
wts_net 2009-06-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 robotom 的回复:]
看起来这是想采用遗传算法来解决TSP问题,遗传算法是一种适合并行处理的算法,用多线程的解决方案没有什么原则上的问题。
细节上讲,遗传算法需要在每一代的繁殖过程中挑选出最合适的8条路径,这就需要比较BLOCK1和BLOCK2中的路径的优劣,可能导致在每一代的繁殖过程中,都需要考虑两个线程的同步。

一种可能是BLOCK1和BLOCK2中的个体独立演化,无需线程同步,但可能会抛弃一些更优的个体。
[/Quote]
比较BLOCK1和BLOCK2中的路径的优劣是不是需要将这两个块中的个体传回CPU中进 行比较呢?要是GPU中比较是不是没有办法啊?因为block之间不能进行通信啊?
wojiushihenni 2009-06-01
  • 打赏
  • 举报
回复
顶顶
robotom 2009-06-01
  • 打赏
  • 举报
回复
看起来这是想采用遗传算法来解决TSP问题,遗传算法是一种适合并行处理的算法,用多线程的解决方案没有什么原则上的问题。
细节上讲,遗传算法需要在每一代的繁殖过程中挑选出最合适的8条路径,这就需要比较BLOCK1和BLOCK2中的路径的优劣,可能导致在每一代的繁殖过程中,都需要考虑两个线程的同步。

一种可能是BLOCK1和BLOCK2中的个体独立演化,无需线程同步,但可能会抛弃一些更优的个体。

589

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧