我需要在中分配默认随机值__init__().例如:
import math
import random
class Test:
def __init__(self, r = random.randrange(0, math.pow(2,128)-1)):
self.r = r
print self.r
Run Code Online (Sandbox Code Playgroud)
如果我创建了10个Test实例,它们都会获得完全相同的随机值.我不明白为什么会这样.我知道我可以在其中分配随机值__init__(),但我很好奇为什么会发生这种情况.我的第一个猜测是种子是当前时间,并且对象的创建距离太近,因此获得相同的随机值.我创建的对象间隔1秒,但结果仍然相同.
我对CUDA编程非常陌生.我将介绍SDK附带的示例.我能够编译代码,但是当我运行它时,我收到以下错误:
"clock.cu(177) : CUDA Runtime API error 38: no CUDA-capable device is detected".
我的机器上有GeForce 8400M GS,根据这个列表,它是一个支持CUDA的GPU:http://developer.nvidia.com/cuda-gpus.
我知道GPU上的共享内存不会持久存在于不同的内核中.但是,L1缓存是否会在不同的内核调用中持续存在?
从性能的角度来看,哪个更好?选择/轮询还是异步 I/O?我之前的印象是 select/poll 反复向内核询问数据,而异步 I/O 依赖于内核的数据可用性通知。但是,我注意到 select/poll 也依赖于内核通知。所以,我相信从性能的角度来看两者是一样的。唯一的区别是 select/poll 会阻塞,而异步 I/O 不会。我是正确的还是我错过了什么?
在我的 CUDA 应用程序中,我将数据从设备内存复制到共享内存。该数据也缓存在 L1 中吗?
如何在GPU中实现恒定的内存和纹理内存?我知道设备内存不是流式多处理器,而是DRAM.共享存储器是片上存储器,可能是SRAM.
我还读到了某些地方,参数通过常量内存传递给内核(即,内核函数的参数从CPU复制到GPU常量内存).它是否正确?
我有一些由开发人员编写的python代码.它将UDP消息发送到P2P网络中的节点.我正在编写该代码的并行版本.该代码将多个并行消息发送到P2P网络.不幸的是,代码消耗了太多的CPU.我假设这是因为所有的网络I/O轮询.如果我使用异步I/O(扭曲框架),这是一个好主意吗?
cuda ×4
gpu ×3
asynchronous ×2
cpu-cache ×2
python ×2
init ×1
io ×1
parameters ×1
performance ×1
polling ×1
random ×1
select ×1
twisted ×1