gpu并行化python程序,python - 在Numba中同时实现CPU和GPU并行化的类的最“优雅”方法是什么? - SO中文参考 - www.soinside.com...

我认为您的问题与设计更相关。可能的设计可能是:class Gen(object):

def __init__(self):

pass

def compute(self, parameters):

# call_to_parallel_cpu_function(parameters)

pass

@staticmethod

def generate_instance(_data):

# code to detect if there is a cuda capable device

# and return true/false and store it in cuda_device variable

cuda_device = True

if cuda_device:

return GpuFoo(_data)

else:

return CpuFoo(_data)

class CpuFoo(Gen):

def __init__(self, data):

super(CpuFoo, self).__init__()

self.data = data

def compute(self, parameters):

# call_to_parallel_cpu_function(parameters)

pass

class GpuFoo(Gen):

def __init__(self, data):

super(GpuFoo, self).__init__()

self.data = data

def compute(self, parameters):

# call_to_parallel_cuda_function(parameters)

pass

Gen.generate_instance([1]).compute([2]) # an example of how to use

Gen是具有静态方法generate_instance的基类,该方法根据设备的功能生成所需的实例。 CpuFoo和GpuFoo是两个子类,并且继承基类Gen并给出其自己的compute方法实现。

让我知道是否有帮助!!

P.S .. Gen.generate_instance([1])检测设备是否为支持CUDA的设备,以及是否为ture,返回GpuFoo类的实例,否则返回CpuFoo的实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值