GPU加速版本

即插即用的GPU加速模块,3-20倍速度提升

支持的GPU模块

CPU模块GPU模块典型加速比
FAImageFD.CFAImageFDFAImageFDGPU.CFAImageFDGPU3–10×
FAImageMFS.CFAImageMFSFAImageMFSGPU.CFAImageMFSGPU5–20×
FAImageLAC.CFAImageLACFAImageLACGPU.CFAImageLACGPU5–15×

系统要求

使用方法

直接替换导入

# CPU版本 from FreeAeonFractal.FAImageMFS import CFAImageMFS # GPU版本(API完全相同) from FreeAeonFractal.FAImageMFSGPU import CFAImageMFSGPU as CFAImageMFS

分形维度(GPU)

from FreeAeonFractal.FAImageFDGPU import CFAImageFDGPU fd_bc = CFAImageFDGPU(bin_image, device='cuda').get_bc_fd() fd_dbc = CFAImageFDGPU(gray, device='cuda').get_dbc_fd() fd_sdbc = CFAImageFDGPU(gray, device='cuda').get_sdbc_fd()

多重分形谱(GPU)

import numpy as np from FreeAeonFractal.FAImageMFSGPU import CFAImageMFSGPU as CFAImageMFS MFS = CFAImageMFS(gray, q_list=np.linspace(-5, 5, 51)) df_mass, df_fit, df_spec = MFS.get_mfs() MFS.plot(df_mass, df_fit, df_spec)

空隙度(GPU)

from FreeAeonFractal.FAImageLACGPU import CFAImageLACGPU calc = CFAImageLACGPU(gray, device='cuda') lac_result = calc.get_lacunarity() fit_result = calc.fit_lacunarity(lac_result)

批量处理(GPU)

import glob, cv2, numpy as np from FreeAeonFractal.FAImageMFSGPU import CFAImageMFSGPU images = [cv2.imread(f, cv2.IMREAD_GRAYSCALE) for f in glob.glob('./images/*.png')] results = CFAImageMFSGPU.get_batch_mfs(images, q_list=np.linspace(-5, 5, 26)) for df_mass, df_fit, df_spec in results: print(df_fit[['q', 'Dq']].head(3))

性能说明

场景预期加速比
单张大图像(1024×1024)5–10×
批量100+张图像10–20×
大量q值(51+)5–15×
大量尺度(80+)3–8×

与CPU版本的API差异

特性CPUGPU
p_value已计算None(不计算)
默认数据类型float64float64(单图),float32(批量)
device参数'cuda' 或 'cpu'

CUDA可用性检查

import torch print("CUDA可用:", torch.cuda.is_available())

若CUDA不可用,GPU模块将回退到CPU计算。