---
title: FFTW迁移到KML_FFT
description: "所有接口均可以替换。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/mg/kunpengaccel_12_0033.html
sourcePath: /source/zh/kunpenghpcs/hpckit/mg/kunpengaccel_12_0033.html
indexId: 1ac9f3141bb85eac0bdef1a32335252b17dcebbc0e9423c18ae123513e94471758
---
# FFTW迁移到KML_FFT

#### 可替换性

所有接口均可以替换。


#### C语言迁移步骤

用户可以通过以下两种方法将FFTW迁移到KML_FFT。

第一种：直接迁移（需要修改部分代码）。

1. 使用全局替换，将带有fftw前缀的接口替换成kml_fft前缀，将带有fftwf前缀的接口替换成kml_fftf前缀，如果有使用到FFTW头文件定义的宏定义常量，也需要将FFTW前缀替换成KML_FFT前缀。将#include <fftw.h>替换成#include <kfft.h> 。
2. 在编译选项中将-lfftw/-lfftwf替换为-lkfft/-lkfftf。
3. 添加环境变量，/PATH_TO_KFFT表示KML_FFT的安装路径。

```
export LD_LIBRARY_PATH=/PATH_TO_KFFT:$LD_LIBRARY_PATH
```


第二种：通过适配层迁移（不需要修改源码，推荐使用该方法）

1. 添加环境变量，应用适配层so，替换原来软件中链接的fftw库。

```
export LD_LIBRARY_PATH=/PATH_TO_KML_ADAPTER/:$LD_LIBRARY_PATH
```


2. 添加环境变量，使用kfft链接到适配层。

```
export LD_LIBRARY_PATH=/PATH_TO_KML_FFT/:$LD_LIBRARY_PATH
```


#### Fortran接口迁移步骤

FFTW包含f77，f90，f03接口，其中f77接口定义与KML_FFT提供的Fortran接口不同，但内部逻辑实现基本相同。需要在KML_FFT外层封装一层适配f77的头文件。
