From 0c8277b672e1a2f056b1bbc804333c098663ac8b Mon Sep 17 00:00:00 2001 From: TruNcat3 <31944766+TruNcat3@users.noreply.github.com> Date: Fri, 24 Jul 2026 12:51:18 +0800 Subject: [PATCH 1/2] Archive V100 comprehensive design-space results --- CMakeLists.txt | 109 + README.md | 34 +- ROADMAP.md | 16 +- apps/cubutterfly_bench.cpp | 33 +- apps/vkfft_bench.cu | 329 ++ config/butterfly_architecture_space.json | 270 + config/fft_architecture_space.json | 89 + config/v100_comprehensive_suite.json | 63 + config/v100_fft_codegen.json | 14 + docs/README.md | 6 + docs/butterfly_design_space.md | 270 + docs/comprehensive_benchmark.md | 84 + docs/comprehensive_v100_results.md | 87 + docs/core_integration_strategy.md | 27 +- docs/cubutterfly_cross_operator_results.md | 4 +- docs/cubutterfly_feature_coverage.md | 21 +- docs/cubutterfly_large_results.md | 19 + docs/design_overview.md | 20 +- docs/experiments.md | 9 +- docs/fft_design_space.md | 117 + docs/fft_library_comparison.md | 97 + docs/getting_started.md | 66 + docs/hardware_mapping_methodology.md | 14 +- docs/ncu_profiling.md | 40 + docs/processing_unit_design_space.md | 163 +- docs/reproducibility.md | 18 + include/cuntt/butterfly.hpp | 19 + .../butterfly_architecture_fixedC_logN16.csv | 6 + ...sive_v100_full_fft14_cufft_confirm_raw.csv | 6 + ..._v100_full_fft14_cufft_confirm_summary.csv | 2 + results/comprehensive_v100_full_raw.csv | 186 + results/comprehensive_v100_full_report.md | 68 + results/comprehensive_v100_full_summary.csv | 38 + results/comprehensive_v100_quick_raw.csv | 82 + results/comprehensive_v100_quick_report.md | 58 + results/comprehensive_v100_quick_summary.csv | 28 + .../fft_architecture_explore_v100_confirm.csv | 61 + .../fft_architecture_explore_v100_search.csv | 115 + .../fft_architecture_explore_v100_summary.csv | 13 + ...chitecture_logN18_confirm_v100_confirm.csv | 15 + ...rchitecture_logN18_confirm_v100_search.csv | 4 + ...chitecture_logN18_confirm_v100_summary.csv | 3 + results/fft_cubutterfly_selected_v100_raw.csv | 16 + results/fft_cufftdx_long_v100_raw.csv | 226 + results/fft_cufftdx_long_v100_summary.csv | 46 + results/fft_design_space_logN18_coverage.csv | 4897 +++++++++++++++++ ..._design_space_logN18_coverage_summary.json | 31 + results/fft_design_space_v100_summary.json | 40 + results/fft_direct_units_confirm_v100_raw.csv | 76 + .../fft_direct_units_confirm_v100_summary.csv | 16 + .../fft_direct_units_contiguous_v100_raw.csv | 76 + ...t_direct_units_contiguous_v100_summary.csv | 16 + results/fft_direct_units_final_v100_raw.csv | 76 + .../fft_direct_units_final_v100_summary.csv | 16 + results/fft_direct_units_v100_raw.csv | 76 + results/fft_direct_units_v100_summary.csv | 16 + results/fft_libraries_v100_raw.csv | 31 + .../fft_library_comparison_v100_summary.csv | 6 + results/fft_persistent_logN14_v100_raw.csv | 81 + .../fft_persistent_logN14_v100_summary.csv | 17 + results/fft_processing_units_v100_raw.csv | 406 ++ results/fft_processing_units_v100_summary.csv | 37 + .../fft_resident_direct_logN12_v100_raw.csv | 66 + ...ft_resident_direct_logN12_v100_summary.csv | 14 + results/fft_resident_logN12_v100_raw.csv | 31 + results/fft_resident_logN12_v100_summary.csv | 7 + .../fft_resident_padded_logN12_v100_raw.csv | 31 + ...ft_resident_padded_logN12_v100_summary.csv | 7 + .../fft_resident_threads_logN12_v100_raw.csv | 51 + ...t_resident_threads_logN12_v100_summary.csv | 11 + results/ncu_fft_resident/cufft_logN12.csv | 6 + .../ncu_fft_resident/direct_512_logN12.csv | 6 + .../ncu_fft_resident/resident_1024_logN12.csv | 6 + results/ncu_fft_resident/summary_logN12.csv | 6 + results/ncu_fft_resident/two_pass_logN12.csv | 7 + results/ncu_fft_resident_analysis.md | 57 + scripts/benchmark_fft_cubutterfly_selected.sh | 44 + scripts/benchmark_fft_cufftdx_long.sh | 21 + scripts/benchmark_fft_direct_units.sh | 20 + scripts/benchmark_fft_libraries.sh | 35 + scripts/benchmark_fft_persistent_logN14.sh | 21 + scripts/benchmark_fft_processing_units.sh | 33 + scripts/benchmark_fft_resident_logN12.sh | 21 + scripts/butterfly_design_space.py | 470 ++ scripts/explore_fft_architecture.py | 158 + scripts/fft_design_space.py | 165 + scripts/generate_fft_codegen.py | 90 + scripts/install_cufftdx.sh | 10 + scripts/install_turbofft.sh | 15 + scripts/install_vkfft.sh | 15 + scripts/profile_fft_architecture_ncu.sh | 39 + scripts/profile_fft_direct14_ncu.sh | 57 + scripts/profile_fft_resident_ncu.sh | 64 + scripts/run_comprehensive_suite.py | 298 + scripts/summarize_comprehensive_suite.py | 221 + scripts/summarize_cubutterfly_designs.py | 4 +- scripts/summarize_fft_libraries.py | 61 + scripts/summarize_fft_processing_units.py | 71 + scripts/summarize_ncu.py | 9 +- scripts/sweep_cubutterfly_designs.py | 96 +- src/butterfly.cu | 132 +- src/butterfly_reference.cpp | 36 +- src/cufftdx_fft.cu | 845 +++ src/cufftdx_fft_stub.cpp | 35 + src/external_fft_units.cuh | 35 + src/turbofft_fft.cu | 59 + src/turbofft_fft_stub.cpp | 13 + tests/test_butterfly.cpp | 87 +- tests/test_butterfly_design_space.py | 165 + tests/test_comprehensive_suite.py | 117 + tests/test_fft_design_space.py | 95 + 111 files changed, 12831 insertions(+), 57 deletions(-) create mode 100644 apps/vkfft_bench.cu create mode 100644 config/butterfly_architecture_space.json create mode 100644 config/fft_architecture_space.json create mode 100644 config/v100_comprehensive_suite.json create mode 100644 config/v100_fft_codegen.json create mode 100644 docs/butterfly_design_space.md create mode 100644 docs/comprehensive_benchmark.md create mode 100644 docs/comprehensive_v100_results.md create mode 100644 docs/fft_design_space.md create mode 100644 docs/fft_library_comparison.md create mode 100644 results/butterfly_architecture_fixedC_logN16.csv create mode 100644 results/comprehensive_v100_full_fft14_cufft_confirm_raw.csv create mode 100644 results/comprehensive_v100_full_fft14_cufft_confirm_summary.csv create mode 100644 results/comprehensive_v100_full_raw.csv create mode 100644 results/comprehensive_v100_full_report.md create mode 100644 results/comprehensive_v100_full_summary.csv create mode 100644 results/comprehensive_v100_quick_raw.csv create mode 100644 results/comprehensive_v100_quick_report.md create mode 100644 results/comprehensive_v100_quick_summary.csv create mode 100644 results/fft_architecture_explore_v100_confirm.csv create mode 100644 results/fft_architecture_explore_v100_search.csv create mode 100644 results/fft_architecture_explore_v100_summary.csv create mode 100644 results/fft_architecture_logN18_confirm_v100_confirm.csv create mode 100644 results/fft_architecture_logN18_confirm_v100_search.csv create mode 100644 results/fft_architecture_logN18_confirm_v100_summary.csv create mode 100644 results/fft_cubutterfly_selected_v100_raw.csv create mode 100644 results/fft_cufftdx_long_v100_raw.csv create mode 100644 results/fft_cufftdx_long_v100_summary.csv create mode 100644 results/fft_design_space_logN18_coverage.csv create mode 100644 results/fft_design_space_logN18_coverage_summary.json create mode 100644 results/fft_design_space_v100_summary.json create mode 100644 results/fft_direct_units_confirm_v100_raw.csv create mode 100644 results/fft_direct_units_confirm_v100_summary.csv create mode 100644 results/fft_direct_units_contiguous_v100_raw.csv create mode 100644 results/fft_direct_units_contiguous_v100_summary.csv create mode 100644 results/fft_direct_units_final_v100_raw.csv create mode 100644 results/fft_direct_units_final_v100_summary.csv create mode 100644 results/fft_direct_units_v100_raw.csv create mode 100644 results/fft_direct_units_v100_summary.csv create mode 100644 results/fft_libraries_v100_raw.csv create mode 100644 results/fft_library_comparison_v100_summary.csv create mode 100644 results/fft_persistent_logN14_v100_raw.csv create mode 100644 results/fft_persistent_logN14_v100_summary.csv create mode 100644 results/fft_processing_units_v100_raw.csv create mode 100644 results/fft_processing_units_v100_summary.csv create mode 100644 results/fft_resident_direct_logN12_v100_raw.csv create mode 100644 results/fft_resident_direct_logN12_v100_summary.csv create mode 100644 results/fft_resident_logN12_v100_raw.csv create mode 100644 results/fft_resident_logN12_v100_summary.csv create mode 100644 results/fft_resident_padded_logN12_v100_raw.csv create mode 100644 results/fft_resident_padded_logN12_v100_summary.csv create mode 100644 results/fft_resident_threads_logN12_v100_raw.csv create mode 100644 results/fft_resident_threads_logN12_v100_summary.csv create mode 100644 results/ncu_fft_resident/cufft_logN12.csv create mode 100644 results/ncu_fft_resident/direct_512_logN12.csv create mode 100644 results/ncu_fft_resident/resident_1024_logN12.csv create mode 100644 results/ncu_fft_resident/summary_logN12.csv create mode 100644 results/ncu_fft_resident/two_pass_logN12.csv create mode 100644 results/ncu_fft_resident_analysis.md create mode 100755 scripts/benchmark_fft_cubutterfly_selected.sh create mode 100755 scripts/benchmark_fft_cufftdx_long.sh create mode 100755 scripts/benchmark_fft_direct_units.sh create mode 100755 scripts/benchmark_fft_libraries.sh create mode 100755 scripts/benchmark_fft_persistent_logN14.sh create mode 100755 scripts/benchmark_fft_processing_units.sh create mode 100755 scripts/benchmark_fft_resident_logN12.sh create mode 100755 scripts/butterfly_design_space.py create mode 100755 scripts/explore_fft_architecture.py create mode 100755 scripts/fft_design_space.py create mode 100755 scripts/generate_fft_codegen.py create mode 100755 scripts/install_cufftdx.sh create mode 100755 scripts/install_turbofft.sh create mode 100755 scripts/install_vkfft.sh create mode 100755 scripts/profile_fft_architecture_ncu.sh create mode 100755 scripts/profile_fft_direct14_ncu.sh create mode 100755 scripts/profile_fft_resident_ncu.sh create mode 100644 scripts/run_comprehensive_suite.py create mode 100644 scripts/summarize_comprehensive_suite.py create mode 100755 scripts/summarize_fft_libraries.py create mode 100755 scripts/summarize_fft_processing_units.py create mode 100644 src/cufftdx_fft.cu create mode 100644 src/cufftdx_fft_stub.cpp create mode 100644 src/external_fft_units.cuh create mode 100644 src/turbofft_fft.cu create mode 100644 src/turbofft_fft_stub.cpp create mode 100644 tests/test_butterfly_design_space.py create mode 100644 tests/test_comprehensive_suite.py create mode 100644 tests/test_fft_design_space.py diff --git a/CMakeLists.txt b/CMakeLists.txt index c56c411..0e5970d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,11 +16,34 @@ set(CMAKE_CUDA_EXTENSIONS OFF) find_package(CUDAToolkit REQUIRED) find_package(Python3 REQUIRED COMPONENTS Interpreter) +option(CUBUTTERFLY_ENABLE_VKFFT "Build the optional VkFFT comparison benchmark" OFF) +set(CUBUTTERFLY_VKFFT_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/external/VkFFT" CACHE PATH + "Path to a VkFFT source checkout") +option(CUBUTTERFLY_ENABLE_CUFFTDX "Enable the optional cuFFTDx block FFT processing unit" OFF) +set(CUBUTTERFLY_MATHDX_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/external/mathdx/nvidia/mathdx" CACHE PATH + "Path to an NVIDIA MathDx package") +option(CUBUTTERFLY_ENABLE_TURBOFFT "Enable the optional TurboFFT generated processing unit" OFF) +set(CUBUTTERFLY_TURBOFFT_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/external/TurboFFT/TurboFFT" CACHE PATH + "Path to a TurboFFT source checkout") + set(CUNTT_DESIGN_SPEC "${CMAKE_CURRENT_SOURCE_DIR}/config/v100_design_points.json" CACHE FILEPATH "JSON file selecting generated cuButterfly design points") +set(CUBUTTERFLY_FFT_SPACE_SPEC "${CMAKE_CURRENT_SOURCE_DIR}/config/fft_architecture_space.json" CACHE FILEPATH + "Canonical two-dimensional FFT architecture-space specification") +set(CUBUTTERFLY_ARCHITECTURE_SPACE_SPEC "${CMAKE_CURRENT_SOURCE_DIR}/config/butterfly_architecture_space.json" CACHE FILEPATH + "Canonical operator-independent butterfly architecture-space specification") +set(CUBUTTERFLY_FFT_CODEGEN_SPEC "${CMAKE_CURRENT_SOURCE_DIR}/config/v100_fft_codegen.json" CACHE FILEPATH + "Selected FFT template points compiled into this build") set(CUNTT_GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated") set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${CUNTT_DESIGN_SPEC}" + "${CUBUTTERFLY_FFT_SPACE_SPEC}" + "${CUBUTTERFLY_ARCHITECTURE_SPACE_SPEC}" + "${CUBUTTERFLY_FFT_CODEGEN_SPEC}" + "${CMAKE_CURRENT_SOURCE_DIR}/config/v100_comprehensive_suite.json" + "${CMAKE_CURRENT_SOURCE_DIR}/scripts/fft_design_space.py" + "${CMAKE_CURRENT_SOURCE_DIR}/scripts/butterfly_design_space.py" + "${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_fft_codegen.py" "${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_design_points.py") file(MAKE_DIRECTORY "${CUNTT_GENERATED_DIR}") execute_process( @@ -31,6 +54,37 @@ execute_process( if(NOT CUNTT_GENERATOR_RESULT EQUAL 0) message(FATAL_ERROR "cuButterfly design-point generation failed: ${CUNTT_GENERATOR_ERROR}") endif() +execute_process( + COMMAND "${Python3_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/scripts/butterfly_design_space.py" + --spec "${CUBUTTERFLY_ARCHITECTURE_SPACE_SPEC}" + --fft-spec "${CUBUTTERFLY_FFT_SPACE_SPEC}" --validate-only + RESULT_VARIABLE CUBUTTERFLY_ARCHITECTURE_SPACE_RESULT + ERROR_VARIABLE CUBUTTERFLY_ARCHITECTURE_SPACE_ERROR) +if(NOT CUBUTTERFLY_ARCHITECTURE_SPACE_RESULT EQUAL 0) + message(FATAL_ERROR "cuButterfly architecture-space validation failed: ${CUBUTTERFLY_ARCHITECTURE_SPACE_ERROR}") +endif() +configure_file("${CUBUTTERFLY_ARCHITECTURE_SPACE_SPEC}" + "${CUNTT_GENERATED_DIR}/butterfly_architecture_space.json" COPYONLY) +execute_process( + COMMAND "${Python3_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/scripts/fft_design_space.py" + --spec "${CUBUTTERFLY_FFT_SPACE_SPEC}" --validate-only + RESULT_VARIABLE CUBUTTERFLY_FFT_SPACE_RESULT + ERROR_VARIABLE CUBUTTERFLY_FFT_SPACE_ERROR) +if(NOT CUBUTTERFLY_FFT_SPACE_RESULT EQUAL 0) + message(FATAL_ERROR "cuButterfly FFT architecture-space validation failed: ${CUBUTTERFLY_FFT_SPACE_ERROR}") +endif() +configure_file("${CUBUTTERFLY_FFT_SPACE_SPEC}" + "${CUNTT_GENERATED_DIR}/fft_architecture_space.json" COPYONLY) +execute_process( + COMMAND "${Python3_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_fft_codegen.py" + --space-spec "${CUBUTTERFLY_FFT_SPACE_SPEC}" + --selection "${CUBUTTERFLY_FFT_CODEGEN_SPEC}" + --output-dir "${CUNTT_GENERATED_DIR}" + RESULT_VARIABLE CUBUTTERFLY_FFT_CODEGEN_RESULT + ERROR_VARIABLE CUBUTTERFLY_FFT_CODEGEN_ERROR) +if(NOT CUBUTTERFLY_FFT_CODEGEN_RESULT EQUAL 0) + message(FATAL_ERROR "cuButterfly FFT code generation failed: ${CUBUTTERFLY_FFT_CODEGEN_ERROR}") +endif() include("${CUNTT_GENERATED_DIR}/design_points.cmake") add_library(cuntt STATIC @@ -40,6 +94,34 @@ add_library(cuntt STATIC src/reference.cpp) target_sources(cuntt PRIVATE ${CUNTT_GENERATED_SOURCES}) +if(CUBUTTERFLY_ENABLE_CUFFTDX) + if(NOT EXISTS "${CUBUTTERFLY_MATHDX_ROOT}/include/cufftdx.hpp") + message(FATAL_ERROR + "cuFFTDx headers were not found under ${CUBUTTERFLY_MATHDX_ROOT}. " + "Run scripts/install_cufftdx.sh or set CUBUTTERFLY_MATHDX_ROOT.") + endif() + target_sources(cuntt PRIVATE src/cufftdx_fft.cu) + target_include_directories(cuntt SYSTEM PRIVATE "${CUBUTTERFLY_MATHDX_ROOT}/include") + target_compile_definitions(cuntt PRIVATE CUBUTTERFLY_HAS_CUFFTDX=1) +else() + target_sources(cuntt PRIVATE src/cufftdx_fft_stub.cpp) +endif() + +if(CUBUTTERFLY_ENABLE_TURBOFFT) + foreach(LOG_N RANGE 7 10) + if(NOT EXISTS "${CUBUTTERFLY_TURBOFFT_ROOT}/include/code_gen/generated/float2/fft_radix_2_logN_${LOG_N}_upload_0.cuh") + message(FATAL_ERROR + "TurboFFT logN=${LOG_N} generated header was not found under ${CUBUTTERFLY_TURBOFFT_ROOT}. " + "Run scripts/install_turbofft.sh or set CUBUTTERFLY_TURBOFFT_ROOT.") + endif() + endforeach() + target_sources(cuntt PRIVATE src/turbofft_fft.cu) + target_include_directories(cuntt SYSTEM PRIVATE "${CUBUTTERFLY_TURBOFFT_ROOT}/include") + target_compile_definitions(cuntt PRIVATE CUBUTTERFLY_HAS_TURBOFFT=1) +else() + target_sources(cuntt PRIVATE src/turbofft_fft_stub.cpp) +endif() + target_include_directories(cuntt PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include @@ -73,13 +155,40 @@ target_compile_options(cuntt_tests PRIVATE -Wall -Wextra -Wpedantic) add_executable(cubutterfly_tests tests/test_butterfly.cpp) target_link_libraries(cubutterfly_tests PRIVATE cuntt) target_compile_options(cubutterfly_tests PRIVATE -Wall -Wextra -Wpedantic) +if(CUBUTTERFLY_ENABLE_CUFFTDX) + target_compile_definitions(cubutterfly_tests PRIVATE CUBUTTERFLY_TEST_CUFFTDX=1) +endif() +if(CUBUTTERFLY_ENABLE_TURBOFFT) + target_compile_definitions(cubutterfly_tests PRIVATE CUBUTTERFLY_TEST_TURBOFFT=1) +endif() add_executable(cuntt_hardware_microbench apps/hardware_microbench.cu) target_link_libraries(cuntt_hardware_microbench PRIVATE CUDA::cudart) target_compile_options(cuntt_hardware_microbench PRIVATE $<$:-Xcompiler=-Wall,-Wextra>) +if(CUBUTTERFLY_ENABLE_VKFFT) + set(CUBUTTERFLY_VKFFT_INCLUDE "${CUBUTTERFLY_VKFFT_ROOT}/vkFFT") + if(NOT EXISTS "${CUBUTTERFLY_VKFFT_INCLUDE}/vkFFT.h") + message(FATAL_ERROR + "VkFFT headers were not found under ${CUBUTTERFLY_VKFFT_ROOT}. " + "Run scripts/install_vkfft.sh or set CUBUTTERFLY_VKFFT_ROOT.") + endif() + + add_executable(vkfft_bench apps/vkfft_bench.cu) + target_include_directories(vkfft_bench SYSTEM PRIVATE "${CUBUTTERFLY_VKFFT_INCLUDE}") + target_compile_definitions(vkfft_bench PRIVATE VKFFT_BACKEND=1) + target_link_libraries(vkfft_bench PRIVATE CUDA::cudart CUDA::cuda_driver CUDA::nvrtc CUDA::cufft) + target_compile_options(vkfft_bench PRIVATE $<$:-Xcompiler=-Wall,-Wextra>) +endif() + include(CTest) if(BUILD_TESTING) add_test(NAME cuntt_correctness COMMAND cuntt_tests) add_test(NAME cubutterfly_correctness COMMAND cubutterfly_tests) + add_test(NAME fft_design_space + COMMAND "${Python3_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/test_fft_design_space.py") + add_test(NAME butterfly_design_space + COMMAND "${Python3_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/test_butterfly_design_space.py") + add_test(NAME comprehensive_suite + COMMAND "${Python3_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/test_comprehensive_suite.py") endif() diff --git a/README.md b/README.md index 3a99b2d..ef1d82c 100644 --- a/README.md +++ b/README.md @@ -23,12 +23,13 @@ A regular butterfly graph exposes two logical dimensions: stage and independent data unit. cuButterfly unfolds both dimensions in space and time: ```text -M = (Us, Ts, Ud, Td, Hs, Rs, Rd, L, F, Q) +M = (Us, Ts, Ud, Td, Ub, Tb, Hs, Rs, Rd, Rb, L, F, Q) Us, Ts stage-space and stage-time unfolding Ud, Td data-space and data-time unfolding +Ub, Tb batch-space and batch-time unfolding Hs physical service for spatial stage edges -Rs, Rd residence across stage-time and data-time folds +Rs/Rd/Rb residence across stage, data, and batch folds L input, intermediate, and output layout policy F, Q kernel family and hardware realization parameters ``` @@ -42,7 +43,8 @@ The processing unit may change without changing the paradigm. Conversely, a good codelet does not determine its block shape, residency, permutation policy, or cross-kernel schedule. These are searched against the current GPU. -Read [Design Overview](docs/design_overview.md) for the model and +Read [Complete Butterfly Design Space](docs/butterfly_design_space.md) for the +canonical model, [Design Overview](docs/design_overview.md) for the concise view, and [Hardware Mapping Methodology](docs/hardware_mapping_methodology.md) for the resource equations and counter-driven selection procedure. @@ -67,21 +69,32 @@ All values below are resident kernel times measured on one Tesla V100-SXM2-16GB with CUDA 11.8. Each comparison matches the documented shape, precision, direction, layout, and warmup protocol. Ratios above `1.0x` mean cuButterfly has higher throughput. They must not be generalized to other GPUs. +For the latest controlled cross-workload protocol and its complete evidence +boundary, use the [V100 Comprehensive Results](docs/comprehensive_v100_results.md); +the focused rows below retain their original experiment protocols. ### Same-Machine Library Comparisons | Workload | cuButterfly | Reference | Throughput ratio | Evidence | |:--|--:|--:|--:|:--| | FP32 DFT8, `2^22` total points | 0.093420 ms | cuFFT 0.086323 ms | 0.924x | generated CTA DFT8 | +| FP32 FFT, `logN=12`, `2^22` total points | 0.088934 ms | cuFFT 0.089989 ms | 1.012x | contiguous cuFFTDx direct unit | +| FP32 FFT, `logN=14`, `2^22` total points | 0.131543 ms | cuFFT 0.135383 ms | 1.029x | contiguous cuFFTDx direct unit | +| FP32 FFT, `logN=18`, `2^22` total points | 0.212019 ms | cuFFT 0.226877 ms | 1.070x | `9+9`, independently tuned 256/256-thread dimensions | +| FP32 FFT, `logN=20`, `2^22` total points | 0.235971 ms | cuFFT 0.209521 ms | 0.888x | cuFFTDx two-pass composition | | FP32 FWHT, `logN=8` | 0.043131 ms | Dao FHT 0.043172 ms | 1.001x | integrated register unit | | FP32 FWHT, `logN=15` | 0.069243 ms | Dao FHT 0.063949 ms | 0.924x | register-pressure boundary | | 60-bit NTT, `logN=16`, natural order | 0.274104 ms | GPU-NTT 0.291133 ms | 1.062x | fused Hybrid2D | | 60-bit NTT, `logN=20`, native bit-reversed | 0.341320 ms | GPU-NTT 0.396186 ms | 1.161x | compact-stage mapping | -The FFT result is close only for the small generated codelet workload. For -large resident FFTs, the current online-reorder path reaches 33.0%-47.4% of -cuFFT throughput at `logN=12..20`. This remaining gap is an explicit research -target, not hidden by the headline table. +The generated local core and tiled two-pass composition raise long FFT +throughput from 32.7%-47.4% to 41.9%-88.8% of cuFFT. Whole-transform cuFFTDx +units at `logN=11..14` isolate the local-unit ceiling: the contiguous paths at +`logN=11,12,14` reach 1.006x, 1.012x, and 1.029x cuFFT throughput, while +`logN=13` reaches 0.965x. Independently tuning the two long-transform dimensions +also raises `logN=18` from 0.881x in the fixed-512 mapping experiment to 1.070x. +Processing-unit granularity and each dimension's CTA shape are therefore explicit +hardware-mapping axes rather than fixed properties of the paradigm. ### Online Reorder at `logN=20` @@ -89,6 +102,7 @@ target, not hidden by the headline table. |:--|--:|--:|--:| | FWHT FP32 | 0.488264 ms | 0.319795 ms | 1.527x | | FFT FP32 | 1.199616 ms | 0.640174 ms | 1.874x | +| FFT FP32, cuFFTDx core | 1.199616 ms | 0.235971 ms | 5.084x | | XOR-zeta uint32 | 0.487004 ms | 0.319519 ms | 1.524x | The permutation is fused into an already-required boundary store. It is not @@ -165,8 +179,10 @@ requirements for contributions are in [`CONTRIBUTING.md`](CONTRIBUTING.md). - V100 is the only fully measured GPU generation in this revision. A100, H100, and RTX 4090 entries are placeholders, not performance claims. -- FFT does not yet match cuFFT for long transforms; Tensor Core DFT8 helps the - local unit but does not remove layout, synchronization, and composition costs. +- FP32 FFT is at cuFFT parity for the measured `logN=8,14,18` shapes, but the + measured `logN=20` path and FP64 `logN=16` path remain behind. Tensor Core + DFT8 helps the local unit but does not remove layout, synchronization, and + composition costs. - FWHT closely tracks Dao FHT after importing its validated local register hierarchy. This demonstrates processing-unit reuse, not independent invention of that core. diff --git a/ROADMAP.md b/ROADMAP.md index f85e277..ea1769e 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -5,11 +5,15 @@ research claim. Ordering may change after profiling or access to new hardware. ## Near Term -- Profile the generated CTA DFT8 mappings at representative local lengths and - attribute the `N>=128` crossover to barriers, bank conflicts, occupancy, and - coefficient traffic. -- Compose an established long-FFT local core with cuButterfly online-reorder - scheduling instead of extending scalar butterflies indefinitely. +- Run an orthogonal `(logN, batch)` sweep instead of coupling all comparisons + through constant total points; identify launch-limited, saturation, and + throughput regions for every operator. +- Refresh Dao-AILab FHT and GPU-NTT under the comprehensive-suite clock, + correctness, modulus, output-order, and trial protocol. +- Profile the remaining FP32 `logN=20` and FP64 `logN=16` FFT gaps against + cuFFT, separating local-core, permutation, coefficient, and launch costs. +- Convert the measured architecture space into a calibrated selector and + evaluate top-k prediction accuracy before exhaustive timing. - Add a device-pointer and CUDA-stream execution API without weakening the current typed semantic contract. - Reduce template warning volume and record compiled resource envelopes as @@ -40,6 +44,8 @@ portable across GPU generations. ## Paper Artifact +- Preserve the V100 comprehensive suite as the single-GPU baseline and keep + focused historical protocols separate from its cross-workload tables. - Freeze a versioned multi-GPU measurement matrix. - Publish scripts and container/toolchain metadata for every main table. - Separate architecture ablations, core-only comparisons, resident transforms, diff --git a/apps/cubutterfly_bench.cpp b/apps/cubutterfly_bench.cpp index 23c79c0..7b6463a 100644 --- a/apps/cubutterfly_bench.cpp +++ b/apps/cubutterfly_bench.cpp @@ -29,13 +29,16 @@ void print_usage() { << " [--element-stride N]\n" << " [--stage-space 1|2|4|8]\n" << " [--stage-handoff atomic|named-barrier]\n" - << " [--tile-threads 32|64|128|256] [--local-stages 5..10] [--reorder-columns power-of-two]\n" + << " [--tile-threads 32|64|128|256; resident also 512|1024] [--local-stages 5..10] [--reorder-columns power-of-two]\n" + << " [--prefix-threads 128|256|512|1024] [--suffix-threads 128|256|512|1024]\n" + << " [--prefix-ept N] [--suffix-ept N]\n" << " [--warp-stages 0..5]\n" << " [--pipeline-warps 4|8]\n" << " [--compute-unit auto|radix2|radix4|radix8]\n" << " [--complex-multiply four-mul|gauss3]\n" + << " [--cross-twiddle table|recurrence]\n" << " [--local-exchange shared|warp-register]\n" - << " [--fft-core scalar|thread-dft8|cta-dft8|wmma-dft8]\n" + << " [--fft-core scalar|thread-dft8|cta-dft8|wmma-dft8|cufftdx-block|cufftdx-direct|cufftdx-resident|turbofft-generated]\n" << " [--precision fp32|fp64|fp16-fp32|uint32]\n" << " [--warmup 20] [--repeat 100] [--verify] [--csv]\n" << " [--list-capabilities]\n"; @@ -108,6 +111,14 @@ int main(int argc, char** argv) { config.stage_handoff = cuntt::parse_stage_handoff(take_arg(index, argc, argv)); } else if (arg == "--tile-threads") { config.tile_threads = std::stoul(take_arg(index, argc, argv)); + } else if (arg == "--prefix-threads") { + config.prefix_threads = std::stoul(take_arg(index, argc, argv)); + } else if (arg == "--suffix-threads") { + config.suffix_threads = std::stoul(take_arg(index, argc, argv)); + } else if (arg == "--prefix-ept") { + config.prefix_ept = std::stoul(take_arg(index, argc, argv)); + } else if (arg == "--suffix-ept") { + config.suffix_ept = std::stoul(take_arg(index, argc, argv)); } else if (arg == "--local-stages") { config.local_stages = std::stoul(take_arg(index, argc, argv)); } else if (arg == "--reorder-columns") { @@ -120,6 +131,8 @@ int main(int argc, char** argv) { config.compute_unit = cuntt::parse_compute_unit(take_arg(index, argc, argv)); } else if (arg == "--complex-multiply") { config.complex_multiply = cuntt::parse_complex_multiply(take_arg(index, argc, argv)); + } else if (arg == "--cross-twiddle") { + config.cross_twiddle = cuntt::parse_cross_twiddle_mode(take_arg(index, argc, argv)); } else if (arg == "--local-exchange") { config.local_exchange = cuntt::parse_local_exchange(take_arg(index, argc, argv)); } else if (arg == "--fft-core") { @@ -266,8 +279,8 @@ int main(int argc, char** argv) { const auto device = cuntt::current_device_info(); std::cout << std::fixed << std::setprecision(6); if (csv) { - std::cout << "device,compute_capability,operator,precision,direction,normalization,placement,backend,compute_unit,complex_multiply,local_" - "exchange,fft_core,stage_space,stage_handoff,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,logN,N,batch,element_stride,batch_" + std::cout << "device,compute_capability,operator,precision,direction,normalization,placement,backend,compute_unit,complex_multiply,cross_twiddle,local_" + "exchange,fft_core,stage_space,stage_handoff,tile_threads,prefix_threads,suffix_threads,prefix_ept,suffix_ept,prefix_units_per_cta,suffix_units_per_cta,local_stages,reorder_columns,warp_stages,pipeline_warps,logN,N,batch,element_stride,batch_" "stride,warmup,repeat,h2d_ms,kernel_ms,d2h_ms," "transforms_s,Gbutterfly_s,points_s,max_error,correct\n"; std::cout << '"' << device.name << "\"," << device.compute_major << '.' << device.compute_minor << ',' @@ -275,9 +288,12 @@ int main(int argc, char** argv) { << (config.inverse ? "inverse" : "forward") << ',' << (config.normalize_inverse ? "inverse" : "none") << ',' << cuntt::butterfly_placement_name(config.placement) << ',' << cuntt::butterfly_backend_name(config.backend) << ',' << cuntt::compute_unit_name(config.compute_unit) << ',' << cuntt::complex_multiply_name(config.complex_multiply) << ',' + << cuntt::cross_twiddle_mode_name(config.cross_twiddle) << ',' << cuntt::local_exchange_name(config.local_exchange) << ',' << cuntt::fft_core_name(config.fft_core) << ',' << config.stage_space << ',' << cuntt::stage_handoff_name(config.stage_handoff) << ',' << config.tile_threads << ',' - << config.local_stages << ',' << config.reorder_columns << ',' << config.warp_stages << ',' << config.pipeline_warps << ',' + << config.prefix_threads << ',' << config.suffix_threads << ',' << config.prefix_ept << ',' << config.suffix_ept << ',' + << config.prefix_units_per_cta << ',' << config.suffix_units_per_cta << ',' << config.local_stages << ',' + << config.reorder_columns << ',' << config.warp_stages << ',' << config.pipeline_warps << ',' << config.log_n << ',' << n << ',' << config.batch << ',' << config.element_stride << ',' << config.batch_stride << ',' << warmup << ',' << repeat << ',' << stats.h2d_ms << ',' << stats.kernel_ms << ',' << stats.d2h_ms << ',' << stats.transforms_per_second << ',' << stats.butterflies_per_second / 1.0e9 << ',' << stats.points_per_second << ',' @@ -292,11 +308,18 @@ int main(int argc, char** argv) { << "backend: " << cuntt::butterfly_backend_name(config.backend) << "\n" << "compute_unit: " << cuntt::compute_unit_name(config.compute_unit) << "\n" << "complex_multiply: " << cuntt::complex_multiply_name(config.complex_multiply) << "\n" + << "cross_twiddle: " << cuntt::cross_twiddle_mode_name(config.cross_twiddle) << "\n" << "local_exchange: " << cuntt::local_exchange_name(config.local_exchange) << "\n" << "fft_core: " << cuntt::fft_core_name(config.fft_core) << "\n" << "stage_space: " << config.stage_space << "\n" << "stage_handoff: " << cuntt::stage_handoff_name(config.stage_handoff) << "\n" << "tile_threads: " << config.tile_threads << "\n" + << "prefix_threads: " << config.prefix_threads << "\n" + << "suffix_threads: " << config.suffix_threads << "\n" + << "prefix_ept: " << config.prefix_ept << "\n" + << "suffix_ept: " << config.suffix_ept << "\n" + << "prefix_units_per_cta: " << config.prefix_units_per_cta << "\n" + << "suffix_units_per_cta: " << config.suffix_units_per_cta << "\n" << "local_stages: " << config.local_stages << "\n" << "reorder_columns: " << config.reorder_columns << "\n" << "warp_stages: " << config.warp_stages << "\n" diff --git a/apps/vkfft_bench.cu b/apps/vkfft_bench.cu new file mode 100644 index 0000000..12dd3f0 --- /dev/null +++ b/apps/vkfft_bench.cu @@ -0,0 +1,329 @@ +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace { + +void check_cuda(cudaError_t status, const char* expression) { + if (status != cudaSuccess) { + throw std::runtime_error(std::string(expression) + ": " + cudaGetErrorString(status)); + } +} + +void check_cufft(cufftResult status, const char* expression) { + if (status != CUFFT_SUCCESS) { + throw std::runtime_error(std::string(expression) + " failed with cuFFT status " + std::to_string(status)); + } +} + +void check_vkfft(VkFFTResult status, const char* expression) { + if (status != VKFFT_SUCCESS) { + throw std::runtime_error(std::string(expression) + ": " + getVkFFTErrorString(status)); + } +} + +void check_driver(CUresult status, const char* expression) { + if (status != CUDA_SUCCESS) { + const char* message = nullptr; + cuGetErrorString(status, &message); + throw std::runtime_error(std::string(expression) + ": " + (message == nullptr ? "unknown CUDA driver error" : message)); + } +} + +#define CHECK_CUDA(expr) check_cuda((expr), #expr) +#define CHECK_CUFFT(expr) check_cufft((expr), #expr) +#define CHECK_VKFFT(expr) check_vkfft((expr), #expr) +#define CHECK_DRIVER(expr) check_driver((expr), #expr) + +class DeviceBuffer { + public: + explicit DeviceBuffer(std::size_t bytes) { CHECK_CUDA(cudaMalloc(&pointer_, bytes)); } + ~DeviceBuffer() { cudaFree(pointer_); } + DeviceBuffer(const DeviceBuffer&) = delete; + DeviceBuffer& operator=(const DeviceBuffer&) = delete; + void* get() const noexcept { return pointer_; } + + private: + void* pointer_ = nullptr; +}; + +class Event { + public: + Event() { CHECK_CUDA(cudaEventCreate(&event_)); } + ~Event() { cudaEventDestroy(event_); } + cudaEvent_t get() const noexcept { return event_; } + + private: + cudaEvent_t event_{}; +}; + +struct Options { + std::string library = "vkfft"; + std::uint32_t log_n = 12; + std::uint64_t batch = 0; + std::uint64_t total_points = 1ULL << 22; + std::uint32_t warmup = 20; + std::uint32_t repeat = 100; + bool verify = false; + bool csv = false; +}; + +const char* take_arg(int& index, int argc, char** argv) { + if (++index == argc) { + throw std::invalid_argument("missing option value"); + } + return argv[index]; +} + +Options parse_options(int argc, char** argv) { + Options options; + for (int index = 1; index < argc; ++index) { + const std::string argument = argv[index]; + if (argument == "--library") { + options.library = take_arg(index, argc, argv); + } else if (argument == "--logN") { + options.log_n = static_cast(std::stoul(take_arg(index, argc, argv))); + } else if (argument == "--batch") { + options.batch = std::stoull(take_arg(index, argc, argv)); + } else if (argument == "--total-points") { + options.total_points = std::stoull(take_arg(index, argc, argv)); + } else if (argument == "--warmup") { + options.warmup = static_cast(std::stoul(take_arg(index, argc, argv))); + } else if (argument == "--repeat") { + options.repeat = static_cast(std::stoul(take_arg(index, argc, argv))); + } else if (argument == "--verify") { + options.verify = true; + } else if (argument == "--csv") { + options.csv = true; + } else if (argument == "--help") { + std::cout << "vkfft_bench [--library cufft|vkfft] [--logN 12] [--batch N | --total-points N] " + "[--warmup 20] [--repeat 100] [--verify] [--csv]\n"; + std::exit(0); + } else { + throw std::invalid_argument("unknown option: " + argument); + } + } + if (options.library != "cufft" && options.library != "vkfft") { + throw std::invalid_argument("library must be cufft or vkfft"); + } + if (options.log_n < 1 || options.log_n > 30 || options.repeat == 0) { + throw std::invalid_argument("logN must be in [1, 30] and repeat must be positive"); + } + const std::uint64_t n = 1ULL << options.log_n; + if (options.batch == 0) { + options.batch = std::max(1, options.total_points / n); + } + if (options.batch > static_cast(std::numeric_limits::max())) { + throw std::invalid_argument("batch exceeds the cuFFT integer limit"); + } + return options; +} + +template +double time_launch(Launch&& launch, std::uint32_t warmup, std::uint32_t repeat) { + for (std::uint32_t iteration = 0; iteration < warmup; ++iteration) { + launch(); + } + CHECK_CUDA(cudaDeviceSynchronize()); + Event start; + Event stop; + CHECK_CUDA(cudaEventRecord(start.get())); + for (std::uint32_t iteration = 0; iteration < repeat; ++iteration) { + launch(); + } + CHECK_CUDA(cudaEventRecord(stop.get())); + CHECK_CUDA(cudaEventSynchronize(stop.get())); + float elapsed_ms = 0.0F; + CHECK_CUDA(cudaEventElapsedTime(&elapsed_ms, start.get(), stop.get())); + return elapsed_ms / repeat; +} + +std::vector make_input(std::uint64_t elements) { + std::mt19937 generator(20260723); + std::uniform_real_distribution distribution(-1.0F, 1.0F); + std::vector input(elements); + for (auto& value : input) { + value.x = distribution(generator); + value.y = distribution(generator); + } + return input; +} + +std::vector cufft_reference(const std::vector& input, std::uint32_t log_n, std::uint64_t batch) { + int n = 1 << log_n; + const std::size_t bytes = input.size() * sizeof(cufftComplex); + DeviceBuffer buffer(bytes); + CHECK_CUDA(cudaMemcpy(buffer.get(), input.data(), bytes, cudaMemcpyHostToDevice)); + cufftHandle plan = 0; + CHECK_CUFFT(cufftPlanMany(&plan, 1, &n, &n, 1, n, &n, 1, n, + CUFFT_C2C, static_cast(batch))); + CHECK_CUFFT(cufftExecC2C(plan, static_cast(buffer.get()), static_cast(buffer.get()), CUFFT_FORWARD)); + CHECK_CUDA(cudaDeviceSynchronize()); + std::vector output(input.size()); + CHECK_CUDA(cudaMemcpy(output.data(), buffer.get(), bytes, cudaMemcpyDeviceToHost)); + CHECK_CUFFT(cufftDestroy(plan)); + return output; +} + +struct ErrorStats { + double max_abs = 0.0; + double relative_l2 = 0.0; +}; + +ErrorStats compare(const std::vector& actual, const std::vector& expected) { + long double error_norm = 0.0; + long double reference_norm = 0.0; + double max_abs = 0.0; + for (std::size_t index = 0; index < actual.size(); ++index) { + const double real_error = static_cast(actual[index].x) - expected[index].x; + const double imag_error = static_cast(actual[index].y) - expected[index].y; + const double absolute_error = std::hypot(real_error, imag_error); + max_abs = std::max(max_abs, absolute_error); + error_norm += real_error * real_error + imag_error * imag_error; + reference_norm += static_cast(expected[index].x) * expected[index].x + + static_cast(expected[index].y) * expected[index].y; + } + return {max_abs, std::sqrt(static_cast(error_norm / std::max(reference_norm, 1.0L)))}; +} + +struct Result { + double plan_ms = 0.0; + double kernel_ms = 0.0; + ErrorStats error{}; +}; + +Result run_cufft(const Options& options, const std::vector& input, + const std::vector* reference) { + int n = 1 << options.log_n; + const std::size_t bytes = input.size() * sizeof(cufftComplex); + DeviceBuffer buffer(bytes); + CHECK_CUDA(cudaMemcpy(buffer.get(), input.data(), bytes, cudaMemcpyHostToDevice)); + cufftHandle plan = 0; + const auto plan_start = std::chrono::steady_clock::now(); + CHECK_CUFFT(cufftPlanMany(&plan, 1, &n, &n, 1, n, &n, 1, n, + CUFFT_C2C, static_cast(options.batch))); + const auto plan_stop = std::chrono::steady_clock::now(); + auto launch = [&] { + CHECK_CUFFT(cufftExecC2C(plan, static_cast(buffer.get()), static_cast(buffer.get()), CUFFT_FORWARD)); + }; + Result result; + result.plan_ms = std::chrono::duration(plan_stop - plan_start).count(); + result.kernel_ms = time_launch(launch, options.warmup, options.repeat); + if (reference != nullptr) { + CHECK_CUDA(cudaMemcpy(buffer.get(), input.data(), bytes, cudaMemcpyHostToDevice)); + launch(); + CHECK_CUDA(cudaDeviceSynchronize()); + std::vector output(input.size()); + CHECK_CUDA(cudaMemcpy(output.data(), buffer.get(), bytes, cudaMemcpyDeviceToHost)); + result.error = compare(output, *reference); + } + CHECK_CUFFT(cufftDestroy(plan)); + return result; +} + +Result run_vkfft(const Options& options, const std::vector& input, + const std::vector* reference) { + const std::uint64_t n = 1ULL << options.log_n; + std::uint64_t bytes = input.size() * sizeof(cufftComplex); + DeviceBuffer storage(bytes); + void* buffer = storage.get(); + CHECK_CUDA(cudaMemcpy(buffer, input.data(), bytes, cudaMemcpyHostToDevice)); + + CHECK_CUDA(cudaFree(nullptr)); + CHECK_DRIVER(cuInit(0)); + CUdevice device = 0; + CHECK_DRIVER(cuDeviceGet(&device, 0)); + VkFFTConfiguration configuration{}; + configuration.FFTdim = 1; + configuration.size[0] = n; + configuration.numberBatches = options.batch; + configuration.device = &device; + configuration.buffer = &buffer; + configuration.bufferSize = &bytes; + configuration.makeForwardPlanOnly = 1; + + VkFFTApplication application{}; + const auto plan_start = std::chrono::steady_clock::now(); + CHECK_VKFFT(initializeVkFFT(&application, configuration)); + const auto plan_stop = std::chrono::steady_clock::now(); + VkFFTLaunchParams launch_parameters{}; + auto launch = [&] { CHECK_VKFFT(VkFFTAppend(&application, -1, &launch_parameters)); }; + + Result result; + result.plan_ms = std::chrono::duration(plan_stop - plan_start).count(); + result.kernel_ms = time_launch(launch, options.warmup, options.repeat); + if (reference != nullptr) { + CHECK_CUDA(cudaMemcpy(buffer, input.data(), bytes, cudaMemcpyHostToDevice)); + launch(); + CHECK_CUDA(cudaDeviceSynchronize()); + std::vector output(input.size()); + CHECK_CUDA(cudaMemcpy(output.data(), buffer, bytes, cudaMemcpyDeviceToHost)); + result.error = compare(output, *reference); + } + deleteVkFFT(&application); + return result; +} + +} // namespace + +int main(int argc, char** argv) { + try { + const Options options = parse_options(argc, argv); + const std::uint64_t n = 1ULL << options.log_n; + if (options.batch > std::numeric_limits::max() / n) { + throw std::invalid_argument("element count overflows uint64_t"); + } + const std::uint64_t elements = n * options.batch; + const auto input = make_input(elements); + std::vector reference; + if (options.verify) { + reference = cufft_reference(input, options.log_n, options.batch); + } + const auto result = options.library == "cufft" + ? run_cufft(options, input, options.verify ? &reference : nullptr) + : run_vkfft(options, input, options.verify ? &reference : nullptr); + + cudaDeviceProp properties{}; + CHECK_CUDA(cudaGetDeviceProperties(&properties, 0)); + int cufft_version = 0; + CHECK_CUFFT(cufftGetVersion(&cufft_version)); + const std::string library_version = options.library == "cufft" ? std::to_string(cufft_version) + : std::to_string(VkFFTGetVersion()); + const double transforms_s = options.batch / (result.kernel_ms / 1000.0); + const double butterflies_s = transforms_s * static_cast(n / 2) * options.log_n; + const bool correct = result.error.relative_l2 <= 5.0e-5; + std::cout << std::fixed << std::setprecision(9); + if (options.csv) { + std::cout << "device,compute_capability,library,library_version,precision,direction,placement,logN,N,batch,warmup,repeat,plan_ms,kernel_ms,transforms_s,Gbutterfly_s,points_s,max_abs_error,relative_l2_error,correct\n"; + std::cout << '"' << properties.name << "\"," << properties.major << '.' << properties.minor << ',' << options.library + << ',' << library_version << ",fp32,forward,in-place," << options.log_n << ',' << n << ',' << options.batch << ',' << options.warmup << ',' + << options.repeat << ',' << result.plan_ms << ',' << result.kernel_ms << ',' << transforms_s << ',' + << butterflies_s / 1.0e9 << ',' << transforms_s * n << ',' << result.error.max_abs << ',' + << result.error.relative_l2 << ',' << (options.verify ? static_cast(correct) : -1) << '\n'; + } else { + std::cout << "device: " << properties.name << " (sm_" << properties.major << properties.minor << ")\n" + << "library: " << options.library << "\nlogN: " << options.log_n << "\nbatch: " << options.batch + << "\nplan_ms: " << result.plan_ms << "\nkernel_ms: " << result.kernel_ms + << "\nrelative_l2_error: " << result.error.relative_l2 << '\n'; + } + return options.verify && !correct ? 2 : 0; + } catch (const std::exception& error) { + std::cerr << "error: " << error.what() << '\n'; + return 1; + } +} diff --git a/config/butterfly_architecture_space.json b/config/butterfly_architecture_space.json new file mode 100644 index 0000000..a173637 --- /dev/null +++ b/config/butterfly_architecture_space.json @@ -0,0 +1,270 @@ +{ + "schema_version": 1, + "model": "multidimensional-space-time-butterfly", + "objects": { + "G_graph_semantics": { + "operator": ["fft", "ntt", "fwht", "xor-zeta", "subset-mobius", "structured-butterfly"], + "log_n": {"min": 1, "max": 32}, + "batch": {"min": 1}, + "direction": ["forward", "inverse"], + "normalization": ["none", "inverse", "unitary", "operator-defined"], + "placement": ["out-of-place", "in-place"], + "input_order": ["natural", "bit-reversed", "digit-reversed", "operator-defined"], + "output_order": ["natural", "bit-reversed", "digit-reversed", "operator-defined"], + "element_stride": {"min": 1}, + "batch_stride": {"min": 1} + }, + "A_architecture": { + "factorization_rank": [1, 2, "multi"], + "dimension_stage_counts": "ordered positive integers summing to log_n", + "per_dimension_mapping": { + "stage_count": "positive integer", + "stage_space_Us": "positive integer", + "stage_time_Ts": "ceil(stage_count / stage_space_Us)", + "data_space_Ud": "positive integer", + "data_time_Td": "ceil(local independent work / data_space_Ud)", + "stage_handoff_Hs": "selected from stage_handoff_Hs", + "stage_time_residence_Rs": "selected from stage_time_residence_Rs", + "data_time_residence_Rd": "selected from data_time_residence_Rd", + "processing_unit": "one P_processing_unit point", + "local_layout": "one L_layout point", + "realization": "one F_realization point" + }, + "between_dimension_mapping": { + "boundary": "selected from dimension_boundary", + "permutation": "selected from L_layout.intermediate_permutation", + "cross_coefficient_placement": ["none", "prefix-epilogue", "boundary-kernel", "suffix-prologue", "processing-core"], + "cross_coefficient_form": ["none", "native-table", "shoup", "barrett", "montgomery", "recurrence", "generated", "compressed", "operator-defined"], + "producer_units_per_cta": "positive integer", + "consumer_units_per_cta": "positive integer" + }, + "stage_space_Us": "positive integer", + "stage_time_Ts": "ceil(log_n / stage_space_Us)", + "data_space_Ud": "positive integer", + "data_time_Td": "ceil((N/2) / data_space_Ud)", + "batch_space_Ub": "positive integer", + "batch_time_Tb": "ceil(batch / batch_space_Ub)", + "hierarchical_unfolding": { + "levels": ["lane", "thread", "warp", "cta", "cluster", "grid", "device", "node"], + "per_level_factors": ["Us_level", "Ud_level", "Ub_level"], + "composition": "Us, Ud, and Ub equal the products of their active per-level factors", + "ownership": ["private", "warp-shared", "cta-shared", "cluster-shared", "device-shared", "distributed"] + }, + "stage_handoff_Hs": ["register", "warp-shuffle", "shared", "named-barrier", "global", "cluster-shared", "network"], + "stage_time_residence_Rs": ["register", "shared", "cluster-shared", "l1", "l2", "global", "distributed-memory"], + "data_time_residence_Rd": ["register", "shared", "cluster-shared", "l1", "l2", "global", "distributed-memory"], + "batch_time_residence_Rb": ["register", "shared", "cluster-shared", "l1", "l2", "global", "distributed-memory"], + "coefficient_supply": { + "residence": ["immediate", "register", "constant", "shared", "l1", "l2", "global", "generated", "distributed-memory"], + "sharing_scope": ["cell", "thread", "warp", "cta", "cluster", "grid"], + "schedule": ["preload", "stream", "prefetch", "recurrence", "fused-generate"] + }, + "dimension_boundary": ["none", "register", "shared-resident", "global-scratch", "cooperative-grid", "distributed-exchange"], + "schedule": ["stage-major", "data-major", "wavefront", "persistent", "producer-consumer"], + "tail_policy": ["predicate", "padding", "specialized-remainder"] + }, + "P_processing_unit": { + "stage_group": ["radix2", "radix4", "radix8", "mixed-radix", "full-codelet", "matrix-tile"], + "arithmetic_core": ["scalar", "vector", "tensor", "imported-codelet", "generated-codelet", "operator-defined"], + "coefficient_form": ["none", "native-table", "shoup", "barrett", "montgomery", "recurrence", "generated", "compressed", "operator-defined"], + "local_exchange": ["thread-register", "warp-shuffle", "shared", "tensor-fragment", "imported-codelet", "operator-defined"], + "word_bits": [16, 32, 64, 128, "operator-defined"], + "accumulator_bits": [16, 32, 64, 128, "operator-defined"], + "elements_per_thread": [1, 2, 4, 8, 16, 32, 64], + "units_per_cta": [1, 2, 4, 8, 16, 32, 64, 128] + }, + "L_layout": { + "global_order": ["natural", "bit-reversed", "digit-reversed", "transposed", "blocked"], + "intermediate_permutation": ["none", "online-tiled", "direct-strided", "transpose-kernel", "stockham-pingpong", "xor-swizzle"], + "bank_mapping": ["linear", "padded", "xor-swizzle", "operator-defined"], + "shared_padding": [0, 1, 2, "generated"], + "vector_width_bytes": [4, 8, 16, 32], + "alignment_bytes": [4, 8, 16, 32, 64, 128] + }, + "F_realization": { + "kernel_form": ["baseline", "tile256", "temporal-tile", "hierarchical", "online-reorder", "hybrid2d", "compact-stage", "warp-hybrid", "stage-pipeline", "resident", "direct", "cooperative", "vendor-baseline"], + "threads_per_cta": [32, 64, 128, 256, 512, 1024], + "warps_per_cta": [1, 2, 4, 8, 16, 32], + "ctas_per_work_unit": [1, 2, 4, 8, "generated"], + "pipeline_buffers": [1, 2, 3], + "pipeline_initiation_interval": "positive cycles", + "pipeline_depth": "positive cycles", + "async_copy": ["none", "global-to-shared", "tensor-memory"], + "synchronization": ["none", "warp", "cta-barrier", "named-barrier", "atomic", "grid", "cluster", "kernel-boundary", "network-collective"] + }, + "Q_generation_selection": { + "specialization": ["runtime-generic", "compile-time", "generated", "external"], + "selection": ["manual", "exhaustive", "hierarchical-search", "analytic-model", "learned-model"], + "status": ["abstract", "compiled", "awaiting-codegen", "requires-new-kernel", "semantic-infeasible", "hardware-infeasible", "external-baseline"], + "objectives": ["latency", "steady-state-throughput", "batch-throughput", "global-traffic", "on-chip-traffic", "energy", "code-size", "compile-time", "numeric-error"] + }, + "H_hardware": { + "execution": ["scalar-lanes", "simd", "tensor-core", "fpga-pipeline"], + "hierarchy": ["lane", "thread", "warp", "cta", "cluster", "grid", "device", "node"], + "transport": ["register", "shuffle", "shared", "cluster-shared", "cache", "global", "network"], + "capacity_fields": ["threads", "warps", "ctas", "registers", "shared-bytes", "cache-bytes", "global-bytes"], + "rate_fields": ["arithmetic", "boundary-bandwidth", "interstage-bandwidth", "feedback-bandwidth", "coefficient-bandwidth", "barrier-rate"] + } + }, + "operator_projections": { + "fft": { + "precision": ["fp16-fp32", "fp32", "fp64"], + "cell": "complex weighted sum/difference", + "coefficient": ["native-table", "recurrence", "generated"], + "cores": ["scalar-radix2", "scalar-radix4", "scalar-radix8", "thread-dft8", "cta-dft8", "wmma-dft8", "cufftdx-block", "cufftdx-direct", "turbofft-generated"], + "traits": ["stage-coefficient", "symmetric-update", "floating-error"] + }, + "ntt": { + "precision": ["uint32", "uint64"], + "cell": "modular weighted sum/difference", + "coefficient": ["native-table", "shoup", "barrett", "montgomery", "recurrence", "compressed"], + "cores": ["radix2", "radix4", "radix8", "shoup", "barrett", "compact-root"], + "traits": ["stage-coefficient", "symmetric-update", "exact-arithmetic", "modulus-contract"] + }, + "fwht": { + "precision": ["fp16", "fp32", "fp64"], + "cell": "sum/difference", + "coefficient": ["none"], + "cores": ["scalar-radix2", "scalar-radix4", "scalar-radix8", "warp-register", "tensor-hadamard"], + "traits": ["coefficient-free", "symmetric-update"] + }, + "xor-zeta": { + "precision": ["uint8", "uint16", "uint32", "uint64"], + "cell": "semiring pair update", + "coefficient": ["none"], + "cores": ["scalar-radix2", "scalar-radix4", "scalar-radix8", "packed-integer"], + "traits": ["coefficient-free", "asymmetric-update", "semiring-contract"] + }, + "subset-mobius": { + "precision": ["operator-defined"], + "cell": "inverse semiring pair update", + "coefficient": ["none", "operator-defined"], + "cores": ["scalar-radix2", "packed-integer"], + "traits": ["asymmetric-update", "inverse-contract", "semiring-contract"], + "status": "candidate" + }, + "structured-butterfly": { + "precision": ["operator-defined"], + "cell": "2x2 linear or semiring map", + "coefficient": ["native-table", "generated", "operator-defined"], + "cores": ["scalar", "vector", "tensor", "generated-codelet"], + "traits": ["operator-defined"], + "status": "candidate" + } + }, + "processing_core_bindings": { + "fft": { + "scalar-radix2": {"stage_group": "radix2", "arithmetic_core": "scalar", "precision": ["fp32", "fp64"], "coefficient": ["native-table", "recurrence", "generated"], "exchange": ["thread-register", "warp-shuffle", "shared"]}, + "scalar-radix4": {"stage_group": "radix4", "arithmetic_core": "scalar", "precision": ["fp32", "fp64"], "coefficient": ["native-table", "recurrence", "generated"], "exchange": ["thread-register", "warp-shuffle", "shared"]}, + "scalar-radix8": {"stage_group": "radix8", "arithmetic_core": "scalar", "precision": ["fp32", "fp64"], "coefficient": ["native-table", "recurrence", "generated"], "exchange": ["thread-register", "warp-shuffle", "shared"]}, + "thread-dft8": {"stage_group": "full-codelet", "arithmetic_core": "scalar", "precision": ["fp32"], "coefficient": ["generated"], "exchange": ["thread-register"]}, + "cta-dft8": {"stage_group": "full-codelet", "arithmetic_core": "scalar", "precision": ["fp32"], "coefficient": ["generated"], "exchange": ["shared"]}, + "wmma-dft8": {"stage_group": "matrix-tile", "arithmetic_core": "tensor", "precision": ["fp16-fp32"], "coefficient": ["generated"], "exchange": ["tensor-fragment", "shared"]}, + "cufftdx-block": {"stage_group": "full-codelet", "arithmetic_core": "imported-codelet", "precision": ["fp32"], "coefficient": ["native-table", "recurrence"], "exchange": ["thread-register", "shared", "imported-codelet"]}, + "cufftdx-direct": {"stage_group": "full-codelet", "arithmetic_core": "imported-codelet", "precision": ["fp32"], "coefficient": ["native-table", "generated"], "exchange": ["imported-codelet"]}, + "turbofft-generated": {"stage_group": "full-codelet", "arithmetic_core": "generated-codelet", "precision": ["fp32"], "coefficient": ["generated"], "exchange": ["imported-codelet"]} + }, + "ntt": { + "radix2": {"stage_group": "radix2", "arithmetic_core": "scalar", "coefficient": ["native-table", "shoup", "barrett", "montgomery", "recurrence"], "exchange": ["thread-register", "warp-shuffle", "shared"]}, + "radix4": {"stage_group": "radix4", "arithmetic_core": "scalar", "coefficient": ["native-table", "shoup", "barrett", "montgomery", "recurrence"], "exchange": ["thread-register", "warp-shuffle", "shared"]}, + "radix8": {"stage_group": "radix8", "arithmetic_core": "scalar", "coefficient": ["native-table", "shoup", "barrett", "montgomery", "recurrence"], "exchange": ["thread-register", "warp-shuffle", "shared"]}, + "shoup": {"stage_group": "radix2", "arithmetic_core": "scalar", "coefficient": ["shoup"], "exchange": ["thread-register", "warp-shuffle", "shared"]}, + "barrett": {"stage_group": "radix2", "arithmetic_core": "scalar", "coefficient": ["barrett"], "exchange": ["thread-register", "warp-shuffle", "shared"]}, + "compact-root": {"stage_group": "radix2", "arithmetic_core": "scalar", "coefficient": ["compressed"], "exchange": ["thread-register", "shared"]} + }, + "fwht": { + "scalar-radix2": {"stage_group": "radix2", "arithmetic_core": "scalar", "coefficient": ["none"], "exchange": ["thread-register", "warp-shuffle", "shared"]}, + "scalar-radix4": {"stage_group": "radix4", "arithmetic_core": "scalar", "coefficient": ["none"], "exchange": ["thread-register", "warp-shuffle", "shared"]}, + "scalar-radix8": {"stage_group": "radix8", "arithmetic_core": "scalar", "coefficient": ["none"], "exchange": ["thread-register", "warp-shuffle", "shared"]}, + "warp-register": {"stage_group": "full-codelet", "arithmetic_core": "vector", "precision": ["fp32"], "coefficient": ["none"], "exchange": ["warp-shuffle", "thread-register"]}, + "tensor-hadamard": {"stage_group": "matrix-tile", "arithmetic_core": "tensor", "precision": ["fp16"], "coefficient": ["none"], "exchange": ["tensor-fragment", "shared"]} + }, + "xor-zeta": { + "scalar-radix2": {"stage_group": "radix2", "arithmetic_core": "scalar", "coefficient": ["none"], "exchange": ["thread-register", "warp-shuffle", "shared"]}, + "scalar-radix4": {"stage_group": "radix4", "arithmetic_core": "scalar", "coefficient": ["none"], "exchange": ["thread-register", "warp-shuffle", "shared"]}, + "scalar-radix8": {"stage_group": "radix8", "arithmetic_core": "scalar", "coefficient": ["none"], "exchange": ["thread-register", "warp-shuffle", "shared"]}, + "packed-integer": {"stage_group": "radix2", "arithmetic_core": "vector", "coefficient": ["none"], "exchange": ["thread-register", "warp-shuffle"]} + }, + "subset-mobius": { + "scalar-radix2": {"stage_group": "radix2", "arithmetic_core": "scalar", "coefficient": ["none", "operator-defined"], "exchange": ["thread-register", "warp-shuffle", "shared"]}, + "packed-integer": {"stage_group": "radix2", "arithmetic_core": "vector", "coefficient": ["none", "operator-defined"], "exchange": ["thread-register", "warp-shuffle"]} + }, + "structured-butterfly": { + "scalar": {"stage_group": "radix2", "arithmetic_core": "scalar", "coefficient": ["native-table", "generated", "operator-defined"], "exchange": ["thread-register", "warp-shuffle", "shared", "operator-defined"]}, + "vector": {"stage_group": "radix2", "arithmetic_core": "vector", "coefficient": ["native-table", "generated", "operator-defined"], "exchange": ["thread-register", "warp-shuffle", "shared", "operator-defined"]}, + "tensor": {"stage_group": "matrix-tile", "arithmetic_core": "tensor", "coefficient": ["native-table", "generated", "operator-defined"], "exchange": ["tensor-fragment", "shared", "operator-defined"]}, + "generated-codelet": {"stage_group": "full-codelet", "arithmetic_core": "generated-codelet", "coefficient": ["generated", "operator-defined"], "exchange": ["imported-codelet", "operator-defined"]} + } + }, + "precision_bindings": { + "fft": { + "fp16-fp32": {"word_bits": [16], "accumulator_bits": [32]}, + "fp32": {"word_bits": [32], "accumulator_bits": [32]}, + "fp64": {"word_bits": [64], "accumulator_bits": [64]} + }, + "ntt": { + "uint32": {"word_bits": [32], "accumulator_bits": [64]}, + "uint64": {"word_bits": [64], "accumulator_bits": [128]} + }, + "fwht": { + "fp16": {"word_bits": [16], "accumulator_bits": [16, 32]}, + "fp32": {"word_bits": [32], "accumulator_bits": [32]}, + "fp64": {"word_bits": [64], "accumulator_bits": [64]} + }, + "xor-zeta": { + "uint8": {"word_bits": [16], "accumulator_bits": [16]}, + "uint16": {"word_bits": [16], "accumulator_bits": [16]}, + "uint32": {"word_bits": [32], "accumulator_bits": [32]}, + "uint64": {"word_bits": [64], "accumulator_bits": [64]} + }, + "subset-mobius": { + "operator-defined": {"word_bits": ["operator-defined"], "accumulator_bits": ["operator-defined"]} + }, + "structured-butterfly": { + "operator-defined": {"word_bits": ["operator-defined"], "accumulator_bits": ["operator-defined"]} + } + }, + "implementation_families": { + "baseline": {"Us": 1, "Rs": "global-between-stages", "boundary": "global-scratch"}, + "tile256": {"Us": "tile-local stages", "Rs": "shared-within-tile", "boundary": "global-scratch"}, + "temporal-tile": {"Us": "local_stages", "Rs": "shared-or-register", "Rd": "shared-or-register", "boundary": "none"}, + "hierarchical": {"Us": 1, "Ts": "local-stages then global suffix", "Rs": "global-between-groups", "boundary": "global-scratch"}, + "online-reorder": {"Us": "dimension codelet stages", "Ts": "dimension count", "Rs": "register/shared within dimension", "boundary": "global-scratch with online permutation"}, + "hybrid2d": {"Us": "factor codelet stages", "Ts": 2, "Rs": "register/shared within factor", "boundary": "global-scratch with cross twiddle"}, + "compact-stage": {"Us": "packed stage group", "Rs": "register/shared", "boundary": "global-scratch"}, + "warp-hybrid": {"Us": "warp-local stages", "Hs": "shuffle then shared", "Rs": "register/shared", "boundary": "none"}, + "stage-pipeline": {"Us": "stage_space", "Hs": "named-barrier-or-atomic", "schedule": "producer-consumer"}, + "resident": {"Rs": "shared/register", "Rd": "shared/register", "boundary": "none"}, + "direct": {"Us": "full transform", "Ts": 1, "boundary": "none"}, + "vendor-baseline": {"specialization": "external", "status": "external-baseline"} + }, + "runtime_bindings": { + "ntt_backends": { + "baseline": "baseline", + "tile256": "tile256", + "hybrid2d": "hybrid2d", + "compact-stage": "compact-stage", + "stage-pipeline": "stage-pipeline" + }, + "butterfly_backends": { + "temporal-tile": "temporal-tile", + "hierarchical": "hierarchical", + "online-reorder": "online-reorder", + "warp-hybrid": "warp-hybrid", + "stage-pipeline": "stage-pipeline", + "cufft": "vendor-baseline" + } + }, + "invariants": [ + "Us * Ts >= log_n", + "Ud * Td >= N/2", + "Ub * Tb >= batch", + "Us, Ud, and Ub equal products of their active hardware-hierarchy factors", + "operator core and coefficient form belong to the selected operator projection", + "coefficient-free operators select coefficient form none", + "dimension_stage_counts sum to log_n", + "processing-unit semantics preserve the operator cell", + "layout mappings are bijective unless the operator contract says otherwise", + "reported performance preserves precision, direction, normalization, placement, strides, and output order" + ] +} diff --git a/config/fft_architecture_space.json b/config/fft_architecture_space.json new file mode 100644 index 0000000..be5e812 --- /dev/null +++ b/config/fft_architecture_space.json @@ -0,0 +1,89 @@ +{ + "schema_version": 1, + "model": "two-dimensional-space-time-butterfly", + "hardware_profiles": { + "v100-sm70": { + "sm_count": 80, + "warp_size": 32, + "max_threads_per_cta": 1024, + "max_shared_bytes_per_cta": 98304, + "registers_per_sm": 65536, + "max_threads_per_sm": 2048, + "max_ctas_per_sm": 32 + } + }, + "axes": { + "log_n": {"min": 1, "max": 20}, + "decomposition": ["single-unit", "two-dimensional", "multi-dimensional"], + "precision": ["fp16-fp32", "fp32", "fp64"], + "direction": ["forward", "inverse"], + "placement": ["out-of-place", "in-place"], + "boundary": ["none", "global-scratch", "shared-resident", "cooperative-grid"], + "reorder": ["direct-strided", "online-tiled", "transpose-kernel", "stockham-pingpong"], + "cross_twiddle": ["table", "recurrence", "fused-core", "generated"], + "dimension": { + "core": [ + "scalar-radix2", "scalar-radix4", "scalar-radix8", "cta-dft8", + "wmma-dft8", "cufftdx-block", "cufftdx-direct", "turbofft-generated" + ], + "spatial_scope": ["thread", "warp", "cta", "multi-cta"], + "stage_fusion": [1, 2, 3, "full-dimension"], + "temporal_reuse": ["single-stage", "fused-stage-group", "resident-codelet", "full-dimension"], + "threads": [32, 64, 128, 256, 512, 1024], + "elements_per_thread": [1, 2, 4, 8, 16, 32, 64], + "units_per_cta": [1, 2, 4, 8, 16, 32, 64, 128], + "exchange": ["thread-register", "warp-shuffle", "shared", "imported-codelet"], + "shared_padding": [0, 1, 2], + "pipeline_buffers": [1, 2, 3] + } + }, + "families": [ + { + "name": "cufftdx-online", + "decomposition": "two-dimensional", + "prefix_core": "cufftdx-block", + "suffix_core": "cufftdx-block", + "boundary": "global-scratch", + "reorder": "online-tiled", + "precision": ["fp32"], + "cross_twiddle": ["table", "recurrence"], + "dimension_log_n": {"min": 3, "max": 10} + }, + { + "name": "cufftdx-large-online", + "decomposition": "two-dimensional", + "prefix_core": "cufftdx-block-or-direct", + "suffix_core": "cufftdx-block-or-direct", + "boundary": "global-scratch", + "reorder": "direct-strided-or-transpose", + "precision": ["fp32"], + "cross_twiddle": ["table", "recurrence"], + "dimension_log_n": {"min": 3, "max": 14}, + "status": "requires-new-kernel" + }, + { + "name": "resident-composition", + "decomposition": "two-dimensional", + "boundary": "shared-resident", + "reorder": "online-tiled", + "precision": ["fp32"], + "status": "selected-design-points" + }, + { + "name": "mixed-core-composition", + "decomposition": "two-dimensional", + "boundary": "global-scratch", + "reorder": "online-tiled-or-transpose", + "precision": ["fp16-fp32", "fp32", "fp64"], + "status": "requires-new-kernel" + }, + { + "name": "single-whole-transform", + "decomposition": "single-unit", + "boundary": "none", + "reorder": "direct-strided", + "precision": ["fp32"], + "status": "selected-design-points" + } + ] +} diff --git a/config/v100_comprehensive_suite.json b/config/v100_comprehensive_suite.json new file mode 100644 index 0000000..3f9ee2a --- /dev/null +++ b/config/v100_comprehensive_suite.json @@ -0,0 +1,63 @@ +{ + "schema_version": 1, + "hardware": "v100-sm70", + "protocols": { + "quick": {"target_points": 4194304, "warmup": 5, "repeat": 20, "trials": 3, "verify_batch": 1}, + "full": {"target_points": 4194304, "warmup": 1000, "repeat": 100, "trials": 5, "verify_batch": 1} + }, + "binaries": { + "butterfly": "build/cubutterfly_bench", + "ntt": "build/cuntt_bench", + "fft-library": "build/vkfft_bench" + }, + "cases": [ + {"id": "fft8_cub", "tier": "quick", "group": "fft-fp32-fwd-log8", "runner": "butterfly", "implementation": "cuButterfly-cuFFTDx", "operator": "fft", "precision": "fp32", "logN": 8, "args": ["--backend", "temporal-tile", "--fft-core", "cufftdx-block", "--tile-threads", "32", "--precision", "fp32", "--operator", "fft", "--placement", "in-place", "--normalization", "none"]}, + {"id": "fft8_cufft", "tier": "quick", "group": "fft-fp32-fwd-log8", "runner": "fft-library", "implementation": "cuFFT", "reference": true, "operator": "fft", "precision": "fp32", "logN": 8, "args": ["--library", "cufft"]}, + {"id": "fft8_vkfft", "tier": "quick", "group": "fft-fp32-fwd-log8", "runner": "fft-library", "implementation": "VkFFT", "operator": "fft", "precision": "fp32", "logN": 8, "args": ["--library", "vkfft"]}, + + {"id": "fft14_cub", "tier": "quick", "group": "fft-fp32-fwd-log14", "runner": "butterfly", "implementation": "cuButterfly-cuFFTDx-direct", "operator": "fft", "precision": "fp32", "logN": 14, "args": ["--backend", "temporal-tile", "--fft-core", "cufftdx-direct", "--tile-threads", "1024", "--precision", "fp32", "--operator", "fft", "--placement", "in-place", "--normalization", "none"]}, + {"id": "fft14_cufft", "tier": "quick", "group": "fft-fp32-fwd-log14", "runner": "fft-library", "implementation": "cuFFT", "reference": true, "operator": "fft", "precision": "fp32", "logN": 14, "args": ["--library", "cufft"]}, + {"id": "fft14_vkfft", "tier": "quick", "group": "fft-fp32-fwd-log14", "runner": "fft-library", "implementation": "VkFFT", "operator": "fft", "precision": "fp32", "logN": 14, "args": ["--library", "vkfft"]}, + + {"id": "fft18_cub", "tier": "quick", "group": "fft-fp32-fwd-log18", "runner": "butterfly", "implementation": "cuButterfly-cuFFTDx-online", "operator": "fft", "precision": "fp32", "logN": 18, "args": ["--backend", "online-reorder", "--fft-core", "cufftdx-block", "--local-stages", "9", "--reorder-columns", "1", "--cross-twiddle", "recurrence", "--prefix-threads", "256", "--suffix-threads", "256", "--prefix-ept", "8", "--suffix-ept", "8", "--precision", "fp32", "--operator", "fft", "--placement", "in-place", "--normalization", "none"]}, + {"id": "fft18_cufft", "tier": "quick", "group": "fft-fp32-fwd-log18", "runner": "fft-library", "implementation": "cuFFT", "reference": true, "operator": "fft", "precision": "fp32", "logN": 18, "args": ["--library", "cufft"]}, + {"id": "fft18_vkfft", "tier": "quick", "group": "fft-fp32-fwd-log18", "runner": "fft-library", "implementation": "VkFFT", "operator": "fft", "precision": "fp32", "logN": 18, "args": ["--library", "vkfft"]}, + + {"id": "fft20_cub", "tier": "quick", "group": "fft-fp32-fwd-log20", "runner": "butterfly", "implementation": "cuButterfly-cuFFTDx-online", "operator": "fft", "precision": "fp32", "logN": 20, "args": ["--backend", "online-reorder", "--fft-core", "cufftdx-block", "--local-stages", "10", "--reorder-columns", "1", "--cross-twiddle", "recurrence", "--prefix-threads", "512", "--suffix-threads", "512", "--prefix-ept", "8", "--suffix-ept", "8", "--precision", "fp32", "--operator", "fft", "--placement", "in-place", "--normalization", "none"]}, + {"id": "fft20_cufft", "tier": "quick", "group": "fft-fp32-fwd-log20", "runner": "fft-library", "implementation": "cuFFT", "reference": true, "operator": "fft", "precision": "fp32", "logN": 20, "args": ["--library", "cufft"]}, + {"id": "fft20_vkfft", "tier": "quick", "group": "fft-fp32-fwd-log20", "runner": "fft-library", "implementation": "VkFFT", "operator": "fft", "precision": "fp32", "logN": 20, "args": ["--library", "vkfft"]}, + + {"id": "fwht8_warp", "tier": "quick", "group": "fwht-fp32-fwd-log8", "runner": "butterfly", "implementation": "cuButterfly-warp-register", "operator": "fwht", "precision": "fp32", "logN": 8, "args": ["--operator", "fwht", "--precision", "fp32", "--backend", "temporal-tile", "--local-exchange", "warp-register", "--compute-unit", "radix2", "--tile-threads", "32", "--normalization", "none"]}, + {"id": "fwht8_shared", "tier": "quick", "group": "fwht-fp32-fwd-log8", "runner": "butterfly", "implementation": "cuButterfly-shared-radix4", "operator": "fwht", "precision": "fp32", "logN": 8, "args": ["--operator", "fwht", "--precision", "fp32", "--backend", "temporal-tile", "--local-exchange", "shared", "--compute-unit", "radix4", "--tile-threads", "128", "--normalization", "none"]}, + {"id": "fwht15_warp", "tier": "quick", "group": "fwht-fp32-fwd-log15", "runner": "butterfly", "implementation": "cuButterfly-warp-register", "operator": "fwht", "precision": "fp32", "logN": 15, "args": ["--operator", "fwht", "--precision", "fp32", "--backend", "temporal-tile", "--local-exchange", "warp-register", "--compute-unit", "radix2", "--tile-threads", "256", "--normalization", "none"]}, + {"id": "fwht15_online", "tier": "quick", "group": "fwht-fp32-fwd-log15", "runner": "butterfly", "implementation": "cuButterfly-online-radix4", "operator": "fwht", "precision": "fp32", "logN": 15, "args": ["--operator", "fwht", "--precision", "fp32", "--backend", "online-reorder", "--compute-unit", "radix4", "--tile-threads", "256", "--local-stages", "8", "--reorder-columns", "1", "--normalization", "none"]}, + {"id": "fwht20_online", "tier": "quick", "group": "fwht-fp32-fwd-log20", "runner": "butterfly", "implementation": "cuButterfly-online-radix4", "operator": "fwht", "precision": "fp32", "logN": 20, "args": ["--operator", "fwht", "--precision", "fp32", "--backend", "online-reorder", "--compute-unit", "radix4", "--tile-threads", "256", "--local-stages", "10", "--reorder-columns", "1", "--normalization", "none"]}, + {"id": "fwht20_hier", "tier": "quick", "group": "fwht-fp32-fwd-log20", "runner": "butterfly", "implementation": "cuButterfly-hierarchical-radix4", "operator": "fwht", "precision": "fp32", "logN": 20, "args": ["--operator", "fwht", "--precision", "fp32", "--backend", "hierarchical", "--compute-unit", "radix4", "--tile-threads", "256", "--local-stages", "10", "--normalization", "none"]}, + + {"id": "xor8_r4", "tier": "quick", "group": "xor-u32-fwd-log8", "runner": "butterfly", "implementation": "cuButterfly-radix4", "operator": "xor-zeta", "precision": "uint32", "logN": 8, "args": ["--operator", "xor-zeta", "--precision", "uint32", "--backend", "temporal-tile", "--compute-unit", "radix4", "--tile-threads", "128"]}, + {"id": "xor8_r2", "tier": "quick", "group": "xor-u32-fwd-log8", "runner": "butterfly", "implementation": "cuButterfly-radix2", "operator": "xor-zeta", "precision": "uint32", "logN": 8, "args": ["--operator", "xor-zeta", "--precision", "uint32", "--backend", "temporal-tile", "--compute-unit", "radix2", "--tile-threads", "128"]}, + {"id": "xor20_online", "tier": "quick", "group": "xor-u32-fwd-log20", "runner": "butterfly", "implementation": "cuButterfly-online-radix4", "operator": "xor-zeta", "precision": "uint32", "logN": 20, "args": ["--operator", "xor-zeta", "--precision", "uint32", "--backend", "online-reorder", "--compute-unit", "radix4", "--tile-threads", "256", "--local-stages", "10", "--reorder-columns", "1"]}, + {"id": "xor20_hier", "tier": "quick", "group": "xor-u32-fwd-log20", "runner": "butterfly", "implementation": "cuButterfly-hierarchical-radix4", "operator": "xor-zeta", "precision": "uint32", "logN": 20, "args": ["--operator", "xor-zeta", "--precision", "uint32", "--backend", "hierarchical", "--compute-unit", "radix4", "--tile-threads", "256", "--local-stages", "10"]}, + + {"id": "ntt12_30_hybrid", "tier": "quick", "group": "ntt-u30-natural-log12", "runner": "ntt", "implementation": "cuNTT-Hybrid2D-radix4", "operator": "ntt", "precision": "uint32", "modulus_bits": 30, "logN": 12, "args": ["--backend", "hybrid2d", "--compute-unit", "radix4", "--word-bits", "32", "--cross-twiddle", "fused", "--output-order", "natural"]}, + {"id": "ntt12_30_r2", "tier": "quick", "group": "ntt-u30-natural-log12", "runner": "ntt", "implementation": "cuNTT-Hybrid2D-radix2", "reference": true, "operator": "ntt", "precision": "uint32", "modulus_bits": 30, "logN": 12, "args": ["--backend", "hybrid2d", "--compute-unit", "radix2", "--word-bits", "32", "--cross-twiddle", "fused", "--output-order", "natural"]}, + {"id": "ntt16_60_r2", "tier": "quick", "group": "ntt-u60-natural-log16", "runner": "ntt", "implementation": "cuNTT-Hybrid2D-radix2", "operator": "ntt", "precision": "uint64", "modulus_bits": 60, "logN": 16, "args": ["--backend", "hybrid2d", "--compute-unit", "radix2", "--word-bits", "64", "--cross-twiddle", "fused", "--output-order", "natural"]}, + {"id": "ntt16_60_r4", "tier": "quick", "group": "ntt-u60-natural-log16", "runner": "ntt", "implementation": "cuNTT-Hybrid2D-radix4", "operator": "ntt", "precision": "uint64", "modulus_bits": 60, "logN": 16, "args": ["--backend", "hybrid2d", "--compute-unit", "radix4", "--word-bits", "64", "--cross-twiddle", "fused", "--output-order", "natural"]}, + {"id": "ntt20_60_compact", "tier": "quick", "group": "ntt-u60-bitrev-log20", "runner": "ntt", "implementation": "cuNTT-compact-stage", "operator": "ntt", "precision": "uint64", "modulus_bits": 60, "logN": 20, "args": ["--backend", "compact-stage", "--compute-unit", "radix2", "--word-bits", "64", "--output-order", "bit-reversed"]}, + + {"id": "fft3_mixed", "tier": "full", "group": "fft-mixed-fwd-log3", "runner": "butterfly", "implementation": "cuButterfly-WMMA", "operator": "fft", "precision": "fp16-fp32", "logN": 3, "args": ["--operator", "fft", "--precision", "fp16-fp32", "--backend", "temporal-tile", "--fft-core", "wmma-dft8", "--compute-unit", "radix8", "--tile-threads", "256", "--normalization", "none"]}, + {"id": "fft16_fp64_cub", "tier": "full", "group": "fft-fp64-fwd-log16", "runner": "butterfly", "implementation": "cuButterfly-scalar-online", "operator": "fft", "precision": "fp64", "logN": 16, "args": ["--operator", "fft", "--precision", "fp64", "--backend", "online-reorder", "--compute-unit", "radix4", "--tile-threads", "256", "--local-stages", "8", "--reorder-columns", "1", "--normalization", "none"]}, + {"id": "fft16_fp64_cufft", "tier": "full", "group": "fft-fp64-fwd-log16", "runner": "butterfly", "implementation": "cuFFT", "reference": true, "operator": "fft", "precision": "fp64", "logN": 16, "args": ["--operator", "fft", "--precision", "fp64", "--backend", "cufft", "--normalization", "none"]}, + {"id": "fft12_inverse_cub", "tier": "full", "group": "fft-fp32-inverse-log12", "runner": "butterfly", "implementation": "cuButterfly-cuFFTDx-direct", "operator": "fft", "precision": "fp32", "direction": "inverse", "logN": 12, "args": ["--operator", "fft", "--precision", "fp32", "--backend", "temporal-tile", "--fft-core", "cufftdx-direct", "--tile-threads", "512", "--inverse", "--normalization", "inverse"]}, + {"id": "fft12_inverse_cufft", "tier": "full", "group": "fft-fp32-inverse-log12", "runner": "butterfly", "implementation": "cuFFT", "reference": true, "operator": "fft", "precision": "fp32", "direction": "inverse", "logN": 12, "args": ["--operator", "fft", "--precision", "fp32", "--backend", "cufft", "--inverse", "--normalization", "inverse"]}, + {"id": "fft8_stride_cub", "tier": "full", "group": "fft-fp32-stride2-log8", "runner": "butterfly", "implementation": "cuButterfly-scalar", "operator": "fft", "precision": "fp32", "logN": 8, "element_stride": 2, "batch_padding": 7, "args": ["--operator", "fft", "--precision", "fp32", "--backend", "temporal-tile", "--compute-unit", "radix4", "--tile-threads", "128", "--placement", "in-place", "--normalization", "none"]}, + {"id": "fft8_stride_cufft", "tier": "full", "group": "fft-fp32-stride2-log8", "runner": "butterfly", "implementation": "cuFFT", "reference": true, "operator": "fft", "precision": "fp32", "logN": 8, "element_stride": 2, "batch_padding": 7, "args": ["--operator", "fft", "--precision", "fp32", "--backend", "cufft", "--placement", "in-place", "--normalization", "none"]}, + {"id": "fwht12_fp64", "tier": "full", "group": "fwht-fp64-fwd-log12", "runner": "butterfly", "implementation": "cuButterfly-online-radix4", "operator": "fwht", "precision": "fp64", "logN": 12, "args": ["--operator", "fwht", "--precision", "fp64", "--backend", "online-reorder", "--compute-unit", "radix4", "--tile-threads", "256", "--local-stages", "6", "--reorder-columns", "1", "--normalization", "none"]}, + {"id": "xor12_inverse", "tier": "full", "group": "xor-u32-inverse-log12", "runner": "butterfly", "implementation": "cuButterfly-online-radix4", "operator": "xor-zeta", "precision": "uint32", "direction": "inverse", "logN": 12, "args": ["--operator", "xor-zeta", "--precision", "uint32", "--backend", "online-reorder", "--compute-unit", "radix4", "--tile-threads", "256", "--local-stages", "6", "--reorder-columns", "1", "--inverse"]}, + {"id": "ntt16_60_inverse", "tier": "full", "group": "ntt-u60-inverse-log16", "runner": "ntt", "implementation": "cuNTT-Hybrid2D-radix2", "operator": "ntt", "precision": "uint64", "direction": "inverse", "modulus_bits": 60, "logN": 16, "args": ["--backend", "hybrid2d", "--compute-unit", "radix2", "--word-bits", "64", "--cross-twiddle", "fused", "--output-order", "natural", "--inverse"]} + ], + "external_evidence": [ + {"operator": "fwht", "implementation": "Dao-AILab FHT", "status": "not-runnable", "reason": "PyTorch is not installed in the active Python environment", "existing_result": "results/external_dao_fht_v100_summary.csv"}, + {"operator": "ntt", "implementation": "GPU-NTT", "status": "not-runnable", "reason": "the external comparator harness binary is not present", "existing_result": "results/compact_stage_logN20.csv"} + ] +} diff --git a/config/v100_fft_codegen.json b/config/v100_fft_codegen.json new file mode 100644 index 0000000..c28a1ff --- /dev/null +++ b/config/v100_fft_codegen.json @@ -0,0 +1,14 @@ +{ + "schema_version": 1, + "target": "v100-sm70", + "families": { + "cufftdx-online": { + "dimension_log_n": [3, 4, 5, 6, 7, 8, 9, 10], + "thread_ept_pairs": [ + [128, 4], [256, 4], [512, 4], [1024, 4], + [128, 8], [256, 8], [512, 8], [1024, 8], + [128, 16], [256, 16], [512, 16] + ] + } + } +} diff --git a/docs/README.md b/docs/README.md index 7fbbb39..7bad431 100644 --- a/docs/README.md +++ b/docs/README.md @@ -9,9 +9,13 @@ for the research idea, then move toward implementation and evidence. |:--|:--| | [Design Overview](design_overview.md) | What is the reusable space-time parallel paradigm? | | [Hardware Mapping Methodology](hardware_mapping_methodology.md) | How do the unfolding factors translate into GPU resource demand? | +| [Complete Butterfly Design Space](butterfly_design_space.md) | How are graph, architecture, processing unit, layout, realization, selection, and hardware separated? | +| [FFT Design Space](fft_design_space.md) | Which semantic, two-dimensional, processing-unit, and hardware axes are enumerable? | | [Candidate Implementations](implementation_candidates.md) | Which processing units and kernel forms are implemented or planned? | | [Getting Started](getting_started.md) | How is the project built and used? | | [Experimental Results](experiments.md) | What has been measured, and where are the gaps? | +| [Single-GPU Comprehensive Benchmark](comprehensive_benchmark.md) | How are lengths, precision, semantics, implementations, and external baselines compared together? | +| [V100 Comprehensive Results](comprehensive_v100_results.md) | What does the controlled full-suite comparison currently establish? | | [Reproducibility](reproducibility.md) | How are sweeps, external baselines, and profiler data reproduced? | | [Research Positioning](cubutterfly_positioning.md) | What is the intended contribution relative to prior work? | @@ -33,12 +37,14 @@ Repository maintenance and research priorities are documented in ## Measurement Reports +- [V100 Comprehensive Results](comprehensive_v100_results.md) - [V100 Initial NTT Results](v100_initial_results.md) - [V100 NTT Parameter Matrix](v100_matrix_results.md) - [GPU-NTT Gap Analysis](gpu_ntt_gap_analysis.md) - [Cross-Operator Results](cubutterfly_cross_operator_results.md) - [Large-Length Results](cubutterfly_large_results.md) - [CTA DFT8 Space-Time Mapping](fft_cta_space_time_results.md) +- [FFT Library Comparison](fft_library_comparison.md) - [Nsight Compute Profiling](ncu_profiling.md) - [Cross-GPU Experiment Matrix](cross_gpu_experiment.md) diff --git a/docs/butterfly_design_space.md b/docs/butterfly_design_space.md new file mode 100644 index 0000000..d91fe36 --- /dev/null +++ b/docs/butterfly_design_space.md @@ -0,0 +1,270 @@ +# Operator-Independent Butterfly Design Space + +This document is the canonical architecture description for cuButterfly. The +machine-readable form is +[`config/butterfly_architecture_space.json`](../config/butterfly_architecture_space.json); +[`scripts/butterfly_design_space.py`](../scripts/butterfly_design_space.py) +validates it and derives architecture demand. The FFT-specific specification is +a checked projection of this general space, not a second architecture model. + +## 1. Scope And Separation + +A design point is the tuple + +```text +D = (G, A, P, L, F, Q | H) +``` + +| Object | Owns | Does not own | +|:--|:--|:--| +| `G` graph semantics | operator, length, batch, direction, normalization, order, stride | physical execution | +| `A` architecture | graph factorization, space/time unfolding, residence, handoff, schedule | butterfly arithmetic circuit | +| `P` processing unit | radix/codelet, arithmetic core, coefficient form, local exchange | global graph schedule | +| `L` layout | global and intermediate permutations, bank mapping, vectorization | arithmetic semantics | +| `F` realization | threads, warps, CTAs, buffering, pipeline timing, synchronization | logical unfolding definition | +| `Q` generation/selection | specialization state, search policy, optimization objective | hardware limits | +| `H` hardware | hierarchy, execution resources, storage capacities, transport rates | transform semantics | + +This separation is the central contract. cuFFTDx, TurboFFT, a tensor-core +codelet, or a better modular multiplier changes `P`. CUDA block shape and +barriers change `F`. Neither change the meaning of the architecture factors in +`A`. Conversely, replacing two global passes by a resident composition changes +`A`, even if the same processing unit is used. + +## 2. Architecture Invariant + +For a binary butterfly graph with `K=log2(N)` stages and `D=N/2` independent +cells per stage, the basic unfolding is + +```text + space time +stage axis Us Ts Us * Ts >= K +data axis Ud Td Ud * Td >= D +batch axis Ub Tb Ub * Tb >= B +``` + +`Us` is the number of dependent stages materialized in space. `Ts` is their +temporal fold count. `Ud` is independent cell width, while `Td` serializes that +work. `Ub` replicates the mapping across independent transforms and `Tb` folds +the batch. The useful-lane fraction is + +```text +eta = K/(Us*Ts) * D/(Ud*Td) * B/(Ub*Tb). +``` + +The first two rows are the paper's two-dimensional space-time paradigm. The +batch row is deliberately separate: it does not change graph dependencies, but +it changes occupancy, replicated compute, and total coefficient/boundary +bandwidth on a GPU. + +At fixed physical cell budget `C=Us*Ud`, ignoring tails, +`Ts*Td=K*D/C` is constant. Moving resources from `Ud` to `Us` therefore does +not create arithmetic throughput. It trades boundary bandwidth for interstage +handoff and live state: + +```text +boundary words/cycle = 2 * Ud * Ub +interstage words/cycle = 2 * Ud * (Us - 1) * Ub +coefficient streams <= Us * Ud * Ub (coefficient-bearing operators) +``` + +The checked example in +`results/butterfly_architecture_fixedC_logN16.csv` holds `C=128`, `Ub=1`, and +`K=16`. `Us=1..16` preserves 4096 ideal body cycles while boundary demand falls +from 256 to 16 words/cycle and interstage demand rises from 0 to 240. This is +the architecture-level reason an optimum depends on the target hardware. + +## 3. Multi-Dimensional Factorization + +The graph may be factored into any ordered positive composition + +```text +K = k0 + k1 + ... + k(r-1). +``` + +Each logical dimension has its own complete mapping + +```text +Mi = (ki, Us_i, Ts_i, Ud_i, Td_i, Hs_i, Rs_i, Rd_i, Pi, Li, Fi). +``` + +The factors, core, thread count, EPT, exchange mechanism, and residence may be +asymmetric across dimensions. A boundary descriptor connects every adjacent +pair and records its permutation, cross coefficient placement/form, and +producer/consumer width. Thus `6+10` and `10+6`, or cuFFTDx EPT `4+16` and +`16+4`, are distinct points. Rank one is a whole-transform unit; rank two is +the current long FFT/Hybrid2D form; higher rank covers deeper compositions. + +An online reorder is a choice of boundary layout and producer epilogue. It can +remove a standalone transpose kernel, but it is not free: its stores, address +generation, synchronization scope, and resulting consumer coalescing belong to +`L` and `F` and must be measured. + +## 4. Hardware-Hierarchy Mapping + +A logical unfolding factor is insufficient to describe a GPU mapping. Each is +factored over the physical hierarchy: + +```text +Us = product(Us_lane, Us_thread, Us_warp, Us_cta, ...) +Ud = product(Ud_lane, Ud_thread, Ud_warp, Ud_cta, ...) +Ub = product(Ub_lane, Ub_thread, Ub_warp, Ub_cta, ...) +``` + +The supported levels are lane, thread, warp, CTA, cluster, grid, device, and +node. Ownership and transport must also be stated. For example, `Us=8` can mean +eight register stages in one thread, two stages per warp across four CTA +groups, or an eight-stage producer-consumer pipeline. These have the same +logical factors but different register pressure, barriers, occupancy, and +handoff bandwidth. + +The hardware profile supplies capacities and rates rather than preferred tile +constants. A legalizer maps `A/P/L/F` demand to `H`: + +| Demand | Principal hardware constraints | +|:--|:--| +| stage/data/batch spatial factors | lane, warp, CTA, grid concurrency | +| live state and coefficient residence | registers, shared memory, cache capacity | +| handoff and permutation | shuffle/shared/global/network bandwidth and barriers | +| arithmetic core | scalar, SIMD, tensor, or pipeline issue rates | +| temporal folds and pipeline II | latency hiding, occupancy, synchronization rate | +| vector/layout choice | alignment, memory transactions, bank conflicts | + +Consequently the V100 optimum is evidence for one `H`, not an architecture +constant. A different GPU regenerates hierarchy factors and `F/P/L` choices +while preserving the invariant in Section 2. + +## 5. Operator Projections + +The architecture only requires a regular staged pair-update graph. Operator +projections provide the semantic constraints that a processing unit must +preserve. + +| Operator | Cell/coefficient property | Current status | +|:--|:--|:--| +| FFT | complex weighted sum/difference; stage coefficients; floating error | implemented | +| NTT | modular weighted sum/difference; modulus and exactness contract | implemented | +| FWHT | coefficient-free symmetric sum/difference | implemented | +| XOR-zeta | coefficient-free asymmetric semiring update | implemented | +| subset/Mobius | asymmetric forward/inverse semiring update | candidate projection | +| structured butterfly | operator-defined 2x2 linear or semiring map | candidate projection | + +Coefficient-free operators set coefficient streams to zero. Asymmetric +operators constrain legal reordering and in-place updates. FFT normalization +and error tolerance, and NTT modulus/root validity, remain `G/P` contracts and +cannot be discarded when comparing performance. + +## 6. Coverage Of Design Freedoms + +The following table is the completeness checklist. A proposed optimization is +inside the model only if it changes at least one listed object. + +| Freedom | Represented by | +|:--|:--| +| operator, precision, direction, order, stride, batch | `G`, operator projection | +| number/order of factor dimensions | `A.factorization_rank`, stage composition | +| stage, data, and batch space/time unfolding | `A: Us/Ts, Ud/Td, Ub/Tb` | +| independent mapping per factor dimension | `A.per_dimension_mapping` | +| register/shared/global/distributed residence | `A: Rs/Rd/Rb` | +| handoff, online reorder, transpose, Stockham, swizzle | `A.dimension_boundary`, `L` | +| cross twiddle/root placement and generation | boundary descriptor, coefficient supply, `P` | +| radix, imported/generated codelet, tensor core | `P` | +| lane-to-node physical placement | `A.hierarchical_unfolding`, `H.hierarchy` | +| threads, EPT, units/CTA, CTAs/work | `P`, `F` | +| pipeline II/depth/buffers and synchronization | `F` | +| tails, padding, bank conflicts, vector width | `A.tail_policy`, `L` | +| runtime/generation/search state | `Q` | +| latency/throughput/traffic/energy/error objective | `Q.objectives` | +| capacity, arithmetic, transport, barrier limits | `H` | + +Out of scope are irregular sparse graphs whose partner relation cannot be +expressed as staged pair updates, communication faults, and distributed +placement policy above the declared node level. Adding one of these requires a +schema revision rather than silently treating it as a tile parameter. + +## 7. Current Runtime Projection + +The schema binds every public backend to an architecture family. NTT maps +`baseline`, `tile256`, `hybrid2d`, `compact-stage`, and `stage-pipeline`. +The common interface maps `temporal-tile`, `hierarchical`, `online-reorder`, +`warp-hybrid`, and `stage-pipeline`; `cufft` is explicitly an external vendor +baseline. Tests reject a binding to a nonexistent family. + +This is implementation coverage, not design-space coverage. `abstract`, +`awaiting-codegen`, `requires-new-kernel`, and `hardware-infeasible` are valid +states. They prevent an uncompiled point from being confused with a concept +that the architecture cannot express. + +Processing-core bindings prevent another kind of false point. Each named core +maps to a legal stage group, arithmetic class, coefficient subset, and local +exchange subset. For example, `scalar-radix4` derives `stage_group=radix4`, +while `cufftdx-block` derives `full-codelet/imported-codelet`. The enumerator +will not form `scalar-radix4/radix2` or attach a twiddle stream to FWHT. + +## 8. Validation And Enumeration + +Validate the general schema and its FFT projection: + +```bash +python3 scripts/butterfly_design_space.py --validate-only +``` + +Reproduce the fixed-compute architecture experiment: + +```bash +python3 scripts/butterfly_design_space.py \ + --operator ntt --logN 16 --factorization-rank 1 \ + --Us 1 2 4 8 16 --fixed-spatial-cells 128 \ + --stage-residence shared --data-residence shared \ + --output results/butterfly_architecture_fixedC_logN16.csv +``` + +Enumerate batch folding independently: + +```bash +python3 scripts/butterfly_design_space.py \ + --operator fft --logN 12 --factorization-rank 2 \ + --Us 4 --Ud 16 --batch 10 --Ub 1 2 4 +``` + +Construct a filtered product across processing-unit and realization choices: + +```bash +python3 scripts/butterfly_design_space.py \ + --operator fft --logN 12 --factorization-rank 2 \ + --Us 4 --Ud 16 --batch 10 --Ub 1 4 \ + --stage-residence shared --data-residence shared \ + --operator-core scalar-radix4 cufftdx-block \ + --coefficient-form native-table recurrence \ + --kernel-form online-reorder --threads 256 \ + --max-candidates 1000 --output results/fft_filtered_space.csv +``` + +Unspecified processing/layout/realization axes use their first legal value. +Specified lists form a filtered Cartesian product after dependent core +constraints are applied. `--max-candidates` guards against accidentally +materializing an unbounded product; hierarchical search should enumerate broad +architecture points first and expand `P/L/F` only for survivors. + +The general validator runs during CMake configure and under CTest. Its tests +cover projection validity, ordered multi-dimensional factorization, fixed-cell +conservation, operator-dependent coefficient demand, residence, batch +unfolding, hierarchy composition, legal core binding, filtered products, and +runtime-family bindings. + +## 9. Completeness Contract + +The schema is complete for the stated class when all of the following hold: + +1. Graph meaning is fully specified by `G` and an operator projection. +2. Every stage, data, batch, and factor-dimension mapping has explicit space, + time, residence, handoff, and boundary choices in `A/L`. +3. Local arithmetic and transport are replaceable `P` choices. +4. Every logical factor decomposes to an explicit hardware hierarchy in `F/H`. +5. Generation status and comparison objective are recorded in `Q`. +6. A measured result records enough fields to reconstruct this tuple and never + compares points with different semantic contracts. + +This contract is stronger than listing kernel knobs: it states which decisions +are architectural, how they compose, and which hardware demand changes when +any decision moves. diff --git a/docs/comprehensive_benchmark.md b/docs/comprehensive_benchmark.md new file mode 100644 index 0000000..cfcb35f --- /dev/null +++ b/docs/comprehensive_benchmark.md @@ -0,0 +1,84 @@ +# Single-GPU Comprehensive Benchmark + +The comprehensive suite compares operators and implementations on one GPU +without mixing incompatible semantics. Its canonical case list is +[`config/v100_comprehensive_suite.json`](../config/v100_comprehensive_suite.json). +The current measured interpretation is in +[`comprehensive_v100_results.md`](comprehensive_v100_results.md). + +## Test Layers + +1. **Correctness preflight** runs every implementation with `batch=1`, one + execution, and the benchmark's CPU/reference verification. +2. **Resident performance** uses the same `2^22` total points per semantic + group, CUDA-event kernel time, randomized case/trial order, and no host-device + transfers in the ranked metric. +3. **Comparison grouping** requires the same operator, precision, direction, + layout contract, length, and batch. A declared reference is used when one is + runnable; otherwise ratios are explicitly relative to the group fastest. + +`quick` uses 5 warmups, 20 repetitions, and 3 trials over representative short +and long FFT, NTT, FWHT, and XOR-zeta cases. `full` contains every quick case and +uses 1000 unmeasured warmups to stabilize V100 DVFS, 100 measured repetitions, +5 trials, FP64, mixed precision, inverse, +in-place/strided layouts, and additional semantic coverage. + +## Run + +Inspect commands without executing them: + +```bash +python3 scripts/run_comprehensive_suite.py --mode quick --dry-run +``` + +Run or resume the quick suite: + +```bash +python3 scripts/run_comprehensive_suite.py --mode quick \ + --output results/comprehensive_v100_quick_raw.csv + +python3 scripts/run_comprehensive_suite.py --mode quick --resume \ + --output results/comprehensive_v100_quick_raw.csv +``` + +Summarize it: + +```bash +python3 scripts/summarize_comprehensive_suite.py \ + results/comprehensive_v100_quick_raw.csv \ + --output results/comprehensive_v100_quick_summary.csv \ + --markdown results/comprehensive_v100_quick_report.md \ + --require-stable +``` + +Run the full suite after the quick data path is clean: + +```bash +python3 scripts/run_comprehensive_suite.py --mode full \ + --output results/comprehensive_v100_full_raw.csv +``` + +`--only fft18 ntt-u60` restricts execution by case-id or group substring. +`--resume` uses `(case_id, trial)` as the durable completion key and rewrites +the CSV after every successful sample. + +## Current External Coverage + +cuFFT and VkFFT are runnable in the current build and are included directly for +FP32 forward contiguous FFT groups. Dao-AILab FHT cannot be rerun from the +active environment because PyTorch is absent. The GPU-NTT comparator executable +is also absent. Both gaps are recorded in the manifest with paths to the +existing same-V100 evidence; the summary does not present those archived +numbers as fresh trials. + +The internal NTT radix-2 row is an ablation reference, not an external-library +reference. Groups without a runnable external reference must not be used to +claim library superiority. + +The default stability gate requires the central range to be at most 3%. With +five trials, the central range removes one sample from each end; the full range +is still reported. A case whose central range passes but full range does not is +labelled `stable-with-outlier`, never silently filtered. On this V100, short +per-process warmups can alternate between the 1312 MHz application clock and +the 1530 MHz boost clock; mixed-clock central samples are rejected. Locked +clocks are preferable when available. diff --git a/docs/comprehensive_v100_results.md b/docs/comprehensive_v100_results.md new file mode 100644 index 0000000..fc95c11 --- /dev/null +++ b/docs/comprehensive_v100_results.md @@ -0,0 +1,87 @@ +# V100 Comprehensive Results + +This report is the current single-GPU comparison baseline. All fresh rows were +measured on one Tesla V100-SXM2-16GB with CUDA 11.8. The full protocol uses +`2^22` total points per comparison group, 1000 unmeasured warmups, 100 measured +iterations, five independently launched trials, CUDA-event resident time, and +a correctness preflight for every implementation. + +The raw samples, machine-readable summary, and generated complete table are: + +- [`comprehensive_v100_full_raw.csv`](../results/comprehensive_v100_full_raw.csv) +- [`comprehensive_v100_full_summary.csv`](../results/comprehensive_v100_full_summary.csv) +- [`comprehensive_v100_full_report.md`](../results/comprehensive_v100_full_report.md) + +## FFT Against Runnable Libraries + +Each group below has identical precision, transform length, batch, direction, +normalization, placement, and stride. A ratio above one means higher throughput +than cuFFT. + +| Workload | N | Batch | cuButterfly | cuFFT | VkFFT | cuButterfly/cuFFT | +|:--|--:|--:|--:|--:|--:|--:| +| FP32 forward in-place, `logN=8` | 256 | 16,384 | 0.084234 ms | 0.083825 ms | 0.083548 ms | 0.995x | +| FP32 inverse normalized, `logN=12` | 4,096 | 1,024 | 0.088064 ms | 0.172892 ms | - | 1.963x | +| FP32 forward in-place, `logN=14` | 16,384 | 256 | 0.121129 ms | 0.121610 ms | 0.171766 ms | 1.004x | +| FP64 forward, `logN=16` | 65,536 | 64 | 0.534313 ms | 0.342804 ms | - | 0.642x | +| FP32 forward in-place, `logN=18` | 262,144 | 16 | 0.205087 ms | 0.211343 ms | 0.201083 ms | 1.031x | +| FP32 forward in-place, `logN=20` | 1,048,576 | 4 | 0.235438 ms | 0.210063 ms | 0.206275 ms | 0.892x | +| FP32 forward stride-2 in-place, `logN=8` | 256 | 16,384 | 0.172636 ms | 0.171428 ms | - | 0.993x | + +The FP32 forward result is therefore at library parity for `logN=8` and +`logN=14`, ahead of cuFFT by 3.1% at `logN=18`, and behind by 10.8% at +`logN=20`. FP64 remains a clear gap. The inverse result is semantically fair, +but its 1.963x ratio mainly demonstrates fused normalization: the cuButterfly +path folds scaling into the transform while the measured cuFFT path launches a +separate normalization kernel. It must not be presented as a 1.963x raw FFT +core advantage. + +## Internal Design-Space Evidence + +These rows compare alternative mappings inside this repository. They establish +that the architecture parameters matter; without a fresh external reference +they do not establish superiority over another library. + +| Operator and workload | N | Batch | Selected point | Alternative | Selected advantage | +|:--|--:|--:|:--|:--|--:| +| FWHT FP32, `logN=8` | 256 | 16,384 | warp-register 0.042742 ms | shared radix-4 0.048466 ms | 1.134x | +| FWHT FP32, `logN=15` | 32,768 | 128 | warp-register 0.064707 ms | online radix-4 0.316396 ms | 4.890x | +| FWHT FP32, `logN=20` | 1,048,576 | 4 | online radix-4 0.319560 ms | hierarchical radix-4 0.488079 ms | 1.527x | +| NTT 30-bit natural, `logN=12` | 4,096 | 1,024 | radix-4 0.140012 ms | radix-2 0.164291 ms | 1.173x | +| NTT 60-bit natural, `logN=16` | 65,536 | 64 | radix-4 0.277780 ms | radix-2 0.304835 ms | 1.097x | +| XOR-zeta uint32, `logN=20` | 1,048,576 | 4 | online radix-4 0.319304 ms | hierarchical radix-4 0.486994 ms | 1.525x | + +The choices are not monotonic across operators or lengths. Register exchange +wins for small and medium FWHT, online reordering wins at long length, and NTT +radix selection changes the local arithmetic/resource balance. This is the +intended evidence for treating processing unit, stage unfolding, data +unfolding, residence, and layout as independent hardware-selected axes. + +## Stability And Evidence Boundary + +All 37 cases passed correctness. Of 37 median results, 36 are stable over their +full five-trial range. The short `logN=14` cuFFT case contains one repeatable +process-level timing outlier and is labelled `stable-with-outlier`; its central +three-trial range passes the 3% gate. The largest central relative range over +the suite is 0.82%. + +Short per-process warmups exposed two V100 clock modes near the configured +1312 MHz application clock and the 1530 MHz boost clock. The full protocol uses +1000 warmups to reach the boosted steady state. The full range remains in the +CSV even when the robust central range is used for the stability decision. + +Dao-AILab FHT was not rerun because PyTorch is absent from the active Python +environment. GPU-NTT was not rerun because its comparator executable is not +present. Existing same-V100 records remain useful context, but are not merged +with this suite: the archived GPU-NTT data also uses a different modulus from +the newly generated full-suite NTT case. Fresh external coverage is therefore +complete for cuFFT and VkFFT only. + +## Current Conclusion + +The defensible statement is: **cuButterfly reaches top-library performance on +selected V100 FP32 FFT shapes and demonstrates competitive archived FWHT/NTT +results, while long FP32 FFT, FP64 FFT, and fresh external coverage remain open +gaps.** The evidence does not support a blanket claim that every butterfly +operator, length, precision, and semantic mode is already faster than the best +specialized library. diff --git a/docs/core_integration_strategy.md b/docs/core_integration_strategy.md index c211b00..0856c2c 100644 --- a/docs/core_integration_strategy.md +++ b/docs/core_integration_strategy.md @@ -3,14 +3,18 @@ ## Separation of Concerns cuButterfly treats the layered parallel pattern as the contribution and keeps -the arithmetic core replaceable. Evaluation therefore separates five objects: +the arithmetic core replaceable. Evaluation uses the canonical seven-object +model and treats an external library as a comparison role: ```text G: mathematical graph and exact transform semantics -A: space-time mapping (Us, Ts, Ud, Td, handoff, residency) +A: space-time mapping (Us/Ts, Ud/Td, Ub/Tb, handoff, residency) P: processing unit (radix, arithmetic algorithm, coefficient representation) +L: global and intermediate layout F: hardware realization (kernel form, threads, warp boundary, pipeline warps) -B: complete external library baseline +Q: generation, candidate status, selection policy, and objective +H: hardware hierarchy, capacities, and rates +B: complete external library baseline (comparison role) ``` An imported radix codelet, modular reduction, or matrix fragment belongs to @@ -98,10 +102,19 @@ ranking. several length/layout combinations. - FFT has a same-process cuFFT baseline; the current best self kernel reaches 75.9% of its throughput at FP32 `N=256`, batch 16,384. At `logN=12..20`, - online-reorder reaches 32.7%-47.4% of cuFFT throughput. It removes the - stage-by-stage global boundary, so the remaining gap is now attributed to - local-core efficiency, permutation transactions, twiddle traffic, and - occupancy rather than kernel count alone. + the generic online-reorder core reaches 32.7%-47.4% of cuFFT throughput. + Replacing its local unit with cuFFTDx while preserving the same two-pass + mapping raises this to 41.9%-88.8%; the best `logN=18` and `logN=20` points + reach 88.1% and 88.8%, respectively. The remaining gap is concentrated in + short-problem launch/transpose overhead, fixed FFTs-per-CTA packaging, + permutation transactions, twiddle traffic, and occupancy rather than the + architecture requiring a stage-by-stage global boundary. + At `logN=12`, eliminating the boundary with a composed resident 64x64 unit + reaches 73.7%. Whole-transform cuFFTDx units at `logN=11,12,14` reach + 100.6%, 101.2%, and 102.9% of cuFFT throughput, while `logN=13` reaches + 96.5%. This separates physical boundary cost, equivalent-unit granularity, + and CTA shape. The larger two-pass transforms have not yet inherited these + direct-unit gains. - FWHT now has both a same-V100 Dao-AILab baseline and a locally integrated `warp-register` unit using the same register/shuffle/XOR-swizzle hierarchy. It reaches 99.9%, 98.5%, 97.5%, 95.8%, and 92.4% of Dao FP32 throughput at diff --git a/docs/cubutterfly_cross_operator_results.md b/docs/cubutterfly_cross_operator_results.md index a6bf315..9c8b4cd 100644 --- a/docs/cubutterfly_cross_operator_results.md +++ b/docs/cubutterfly_cross_operator_results.md @@ -82,11 +82,13 @@ temporal boundary stays in registers/shared memory or crosses a kernel and global memory. The expanded descriptor is: ```text -M = (Us, Ts, Ud, Td, Hs, Rs, Rd, L, F, Q) +M = (Us, Ts, Ud, Td, Ub, Tb, Hs, Rs, Rd, Rb, L, F, Q) Hs = physical service for a spatial stage edge Rs = residence level across stage-time folds Rd = residence level across data-time folds +Ub/Tb = batch-space and batch-time unfolding +Rb = residence and ownership across batch-time folds L = input/intermediate/output layout and permutation policy F = kernel realization family Q = realization parameters such as compute_unit, tile_threads, warp_stages, diff --git a/docs/cubutterfly_feature_coverage.md b/docs/cubutterfly_feature_coverage.md index 1b264e6..731dcbc 100644 --- a/docs/cubutterfly_feature_coverage.md +++ b/docs/cubutterfly_feature_coverage.md @@ -19,7 +19,7 @@ native unnormalized inverse for a core-equivalent comparison. |:--|:--|:--|:--:|:--:|:--:| | temporal-tile | shared: `logN=1..10`; register FWHT: `logN=3..15` | radix-2, fused radix-4/radix-8; FP32 FWHT register-vector unit | yes | yes | yes | | hierarchical | `logN=6..20` | local stages 5..10, radix-2/radix-4/radix-8, global remainder | yes | yes | yes | -| online-reorder | `logN=6..20` | radix-2/radix-4/radix-8 groups with a fused permutation store | yes | yes | yes | +| online-reorder | `logN=6..20` | radix-2/radix-4/radix-8 groups with a fused permutation store; optional two-pass cuFFTDx local FFTs | yes | yes | yes | | warp-hybrid | `logN=8` | radix-2 | yes | yes | yes | | stage-pipeline | `logN=8` | radix-2 | yes | FWHT only | yes | | cuFFT | `logN=1..20` | vendor plan | yes | yes | n/a | @@ -30,6 +30,19 @@ Generated FFT codelets add FP32 `thread-dft8` and mixed `fp16-fp32` Core operands to FP16 and accumulates into FP32. Generated availability is controlled by `config/v100_design_points.json`. +When cuFFTDx is enabled, FP32 online-reorder can compose two local FFTs whose +individual sizes are `logN=3..10`. The first pass fuses the cross twiddle and a +transposed scratch store; the second pass restores natural order. Cross +twiddles are independently selectable as table lookup or register recurrence, +so this processing-unit choice remains subordinate to the architecture-level +space/time schedule. +An explicit `cufftdx-resident` core adds single-CTA `logN=12` 6+6 and +persistent `logN=14` 7+7 mappings with 256/512/1024-thread choices. The +`cufftdx-direct` points admit whole-transform `logN=11..14` units to measure the +processing-unit granularity ceiling independently of the composed schedule. +The V100-valid CTA choices are 256/512/1024 threads through `logN=13` and +512/1024 threads at `logN=14`. + Each temporal length is a compile-time CUDA specialization selected by the runtime. This preserves unrolling at performance-critical fixed sizes while presenting one plan interface. The FP64 complex stage pipeline is rejected @@ -83,6 +96,12 @@ radix-2/radix-4/radix-8 FFT, FWHT, and XOR are checked in both directions at `logN=11`. Online-reorder additionally covers unequal stage groups, multiple columns per suffix CTA, FP64, strided/in-place execution, and verified `logN=20` execution in the large-length protocol. +Optional cuFFTDx tests cover local `logN=3..10`, temporal and online-reorder +layouts, unequal long-FFT splits, table/recurrence cross twiddles, and forward +and normalized inverse execution. Online-reorder also covers independent +prefix/suffix EPT 4/8/16 and asymmetric thread/EPT mappings. Direct whole-transform tests cover every +valid `logN=11..14` CTA shape, normalized inverse, strided layout, and in-place +execution. Gauss three-multiply FFT is checked through temporal, hierarchical, and online-reorder mappings. NTT tests cover radix-8 at multiple lengths and on both 32-bit and 64-bit physical paths. Hybrid2D additionally checks the full diff --git a/docs/cubutterfly_large_results.md b/docs/cubutterfly_large_results.md index 46f8620..fc5f160 100644 --- a/docs/cubutterfly_large_results.md +++ b/docs/cubutterfly_large_results.md @@ -109,6 +109,25 @@ sudo -E ./scripts/profile_cubutterfly_fft.sh sudo chown -R "$USER:$USER" results/ncu_fft ``` +## Subsequent Processing-Core Composition + +The tables above preserve the original generic radix-4 online-reorder +experiment. The same two-pass architecture now also embeds cuFFTDx block FFTs, +a four-transform CTA staging tile, and an in-register cross-twiddle epilogue. +The resulting `logN=12..20` throughput is 41.9%-88.8% of cuFFT, including +0.235971 ms versus cuFFT's 0.209521 ms at `logN=20`. See +`processing_unit_design_space.md` and +`results/fft_cufftdx_long_v100_summary.csv` for the split and twiddle sweep. + +The later resident/direct granularity sweep distinguishes launch fusion from +unit selection. At `logN=12`, a one-CTA 64x64 composition improves from +0.213207 ms to 0.120412 ms by eliminating global scratch and using a padded +shared tile. The contiguous whole-transform units reach 1.006x, 1.012x, 0.965x, +and 1.029x cuFFT throughput at `logN=11..14`. At `logN=14`, the manual +persistent 7+7 mapping is much slower than both the direct unit and cuFFT, +demonstrating that temporal ownership alone does not prescribe the arithmetic +core or CTA shape. + ## External FWHT Baseline Dao-AILab `fast-hadamard-transform` commit diff --git a/docs/design_overview.md b/docs/design_overview.md index e855dc3..afc7827 100644 --- a/docs/design_overview.md +++ b/docs/design_overview.md @@ -7,14 +7,18 @@ binary stages. For `N=2^m`, stage `s` contains `N/2` independent butterfly updates. FFT and NTT attach stage coefficients, FWHT uses add/subtract, and XOR-zeta changes the pair operator, but their dependency topology is shared. -The project separates five objects: +The project separates seven objects and treats a complete external library as +a comparison role: ```text G: mathematical graph and exact transform semantics A: architecture-level space-time mapping P: replaceable processing unit +L: global and intermediate layout F: concrete GPU kernel realization -B: complete external library baseline +Q: generation, selection state, and objective +H: target hardware capacities and rates +B: complete external library baseline (comparison role) ``` This separation is essential. A faster complex multiply belongs to `P`; block @@ -22,7 +26,7 @@ shape, state residency, and online layout conversion belong to `A` and `F`. cuFFT remains `B` unless a local unit can be isolated without importing its complete scheduler. -## 2. Four Unfolding Factors +## 2. Three Independent Unfolding Axes Let `S` be the number of stage positions and `D` the independent data work. The logical iteration space is factorized as: @@ -30,6 +34,7 @@ The logical iteration space is factorized as: ```text S = Us * Ts D = Ud * Td +Bbatch = Ub * Tb ``` | Factor | Meaning | Typical GPU effect | @@ -38,6 +43,8 @@ D = Ud * Td | `Ts` | stage-time folding | more dependent stages retained in registers/shared memory | | `Ud` | data-space unfolding | more lanes, warps, CTAs, and memory-level parallelism | | `Td` | data-time folding | more independent items reused by each physical worker | +| `Ub` | batch-space unfolding | more independent transforms resident concurrently | +| `Tb` | batch-time folding | repeated transforms on the same physical mapping | These factors are not fixed tile dimensions. Legal and efficient values depend on the current GPU's register file, shared-memory partition, barrier service, @@ -49,7 +56,7 @@ The four factors alone cannot distinguish two mappings with different storage or handoff costs. cuButterfly uses: ```text -M = (Us, Ts, Ud, Td, Hs, Rs, Rd, L, F, Q) +M = (Us, Ts, Ud, Td, Ub, Tb, Hs, Rs, Rd, Rb, L, F, Q) ``` | Field | Role | @@ -57,6 +64,7 @@ M = (Us, Ts, Ud, Td, Hs, Rs, Rd, L, F, Q) | `Hs` | physical transport for a spatial stage edge: register, shuffle, shared memory, named barrier, or global handoff | | `Rs` | residence level across stage-time folds | | `Rd` | residence level across data-time folds | +| `Rb` | residence and ownership across batch-time folds | | `L` | bank mapping, input order, intermediate permutation, and output order | | `F` | temporal tile, Hybrid2D, online reorder, stage pipeline, or another kernel family | | `Q` | threads, rows, local stages, radix, columns, warps, and generated-core selection | @@ -121,7 +129,9 @@ choices. 7. Record the selected mapping per GPU rather than promoting it to an architecture constant. -The executable resource model and equations are detailed in +The complete object/axis contract is in +[Operator-Independent Butterfly Design Space](butterfly_design_space.md). The +executable resource equations are detailed in [Hardware Mapping Methodology](hardware_mapping_methodology.md). ## 7. Current Research Claim diff --git a/docs/experiments.md b/docs/experiments.md index 933a8ee..a2c1665 100644 --- a/docs/experiments.md +++ b/docs/experiments.md @@ -12,6 +12,12 @@ with CUDA 11.8. Cross-GPU rows are placeholders until measured. ## 2. What The Results Establish +The controlled full-suite cross-section and its evidence boundaries are +reported in [V100 Comprehensive Results](comprehensive_v100_results.md). It is +the current authority for claims spanning multiple lengths, precisions, +semantics, and runnable FFT libraries; the focused experiments below retain +their original protocols. + ### Common Mapping Across Operators At `N=256`, a controlled eight-warp stage pipeline selects the interior @@ -70,7 +76,7 @@ separately. | Area | Current boundary | Needed evidence or implementation | |:--|:--|:--| -| long FFT | 32.7%-47.4% of cuFFT throughput at `logN=12..20` | better local long-FFT core, permutation transactions, twiddle reuse, occupancy analysis | +| FFT | two-pass `logN=16..20` reaches 79.3%-88.8%; direct units at `logN=11,12,14` reach 1.006x-1.029x cuFFT while `logN=13` reaches 0.965x | compose larger units into long FFTs, NCU validation, automatic selection | | cross GPU | only V100 fully measured | predict and validate mappings on another GPU generation | | automatic selection | scripts rank measured candidates | calibrated cost model selecting before exhaustive sweep | | XOR-zeta baseline | internal comparisons only | pinned same-machine external implementation | @@ -81,6 +87,7 @@ separately. | Topic | Report | Primary records | |:--|:--|:--| +| comprehensive V100 suite | `comprehensive_v100_results.md` | `comprehensive_v100_full_raw.csv`, `comprehensive_v100_full_summary.csv` | | V100 NTT baseline | `v100_initial_results.md` | `hybrid2d_matrix*.csv` | | NTT vs GPU-NTT | `gpu_ntt_gap_analysis.md` | `fused_vs_gpuntt.csv`, `gpu_ntt_gap_same_modulus.csv` | | processing units | `processing_unit_design_space.md` | `processing_units_v100_*.csv` | diff --git a/docs/fft_design_space.md b/docs/fft_design_space.md new file mode 100644 index 0000000..e8ee274 --- /dev/null +++ b/docs/fft_design_space.md @@ -0,0 +1,117 @@ +# FFT Architecture Design Space + +## Scope + +The canonical specification is `config/fft_architecture_space.json`. It defines +the architecture independently of the CUDA specializations currently compiled. +The model has five layers: + +1. Semantic: length, precision, direction, placement, normalization, and layout. +2. Decomposition: single-unit, two-dimensional, or multi-dimensional stage partition. +3. Per-dimension mapping: spatial scope, stage fusion, temporal reuse, core, + threads, elements/thread, units/CTA, exchange, padding, and pipeline buffers. +4. Boundary: residency, permutation, cross-twiddle policy, and global/shared handoff. +5. Hardware: SM count, thread/shared/register limits, and scheduling capacity. + +`units_per_cta` is recorded as a derived quantity when the codelet uses a fixed +elements/thread contract: + +```text +units_per_cta = threads * elements_per_thread / dimension_size +tile_shared_bytes = threads * elements_per_thread * sizeof(complex) +``` + +The relation must produce an integer and cover at least one unit. + +The architectural terms remain independent of a particular codelet: + +- `spatial_scope` states whether concurrent work is owned by a thread, warp, + CTA, or cooperating CTAs; +- `stage_fusion` states how many equivalent butterfly stages form one operation; +- `temporal_reuse` states whether values survive one stage, a fused group, a + resident codelet, or the full dimension; +- threads, EPT, and units/CTA are the physical realization selected for that + architecture point. + +## Candidate States + +The enumerator never treats the current binary as the definition of the space. +Every point is assigned one state: + +| State | Meaning | +|:--|:--| +| `compiled` | A matching specialization exists in the current build. | +| `awaiting-codegen` | Hardware/resource constraints pass, but the specialization is not emitted. | +| `requires-new-kernel` | The point needs a new layout, residency, or mixed-core implementation. | +| `hardware-infeasible` | Coverage, CTA-thread, or shared-memory constraints fail. | + +For V100 and `logN=16,18,20`, enumerating both twiddle modes, six thread +budgets, seven EPT values, every split, and both dimensions produces: + +| State | Points | +|:--|--:| +| compiled | 2,048 | +| awaiting code generation | 10,878 | +| requires a new kernel/layout | 10,344 | +| hardware infeasible | 156,658 | +| total | 179,928 | + +These counts describe coverage, not a performance sweep. Generate them with: + +```bash +./scripts/fft_design_space.py --logNs 16 18 20 \ + --summary results/fft_design_space_v100_summary.json +``` + +Emit only a selected class for inspection or code generation: + +```bash +./scripts/fft_design_space.py --logNs 18 --status awaiting-codegen \ + --threads 128 256 512 --ept 4 8 16 \ + --output results/fft_design_space_logN18_codegen.csv \ + --summary results/fft_design_space_logN18_codegen_summary.json +``` + +## Build And Runtime Contract + +CMake validates and copies the canonical specification into the generated build +directory. `config/v100_fft_codegen.json` separately selects the specializations +compiled into this build. The generator validates every selected thread/EPT pair +against the canonical axes and V100 shared-memory/thread limits, then emits +availability, dispatch, and a resolved build manifest. + +The current selection contains EPT 4/8/16 and 128/256/512/1024-thread points; +1024/16 is excluded because its tiled storage exceeds the V100 per-CTA shared +memory limit. The public FFT configuration records independent prefix/suffix +thread and EPT values plus normalized units/CTA. Feasible but unselected values +fail explicitly as `awaiting code generation`; they do not fall back to EPT=8. + +Regenerate an isolated manifest with: + +```bash +./scripts/generate_fft_codegen.py \ + --space-spec config/fft_architecture_space.json \ + --selection config/v100_fft_codegen.json \ + --output-dir /tmp/cubutterfly-fft-codegen +``` + +The hierarchical performance explorer reads the same family definition to get +compiled thread options and dimension ranges. Hardware profiles remain separate: +V100 is measured, while A100/H100/RTX 4090 entries in +`configs/hardware/cross_gpu_matrix.csv` remain placeholders until captured. + +## Remaining Implementation Families + +Completing the model does not imply every family is implemented. The major +implementation queues are now explicit: + +- optionally emit the remaining cuFFTDx online EPT 1/2/32/64 points selected by a target profile; +- compose `logN=11..14` direct units using direct-strided or explicit transpose boundaries; +- allow different cores on the two dimensions; +- add shared-resident and cooperative-grid boundaries beyond selected points; +- generate padding and multi-buffer pipeline variants; +- extend the same schema to three or more dimensions for transforms beyond a + profitable two-dimensional factorization. + +Fine-grained performance search should operate only on `compiled` points after +the desired `awaiting-codegen` subset has been emitted. diff --git a/docs/fft_library_comparison.md b/docs/fft_library_comparison.md new file mode 100644 index 0000000..bfe6e40 --- /dev/null +++ b/docs/fft_library_comparison.md @@ -0,0 +1,97 @@ +# FFT Library Comparison + +This report isolates the FP32 complex-to-complex FFT gap on the V100. It does +not treat all projects containing an FFT as equivalent baselines. + +## Baseline Scope + +| Implementation | Relevant abstraction | V100 status | Comparison role | +|:--|:--|:--|:--| +| [NVIDIA cuFFT](https://docs.nvidia.com/cuda/cufft/) | complete general-purpose GPU FFT | measured | vendor reference | +| [VkFFT 1.3.4](https://github.com/DTolm/VkFFT) | complete cross-platform GPU FFT | measured at commit `066a17c` | direct external baseline | +| [NVIDIA cuFFTDx](https://docs.nvidia.com/cuda/cufftdx/) | device-side thread/block FFT building blocks | MathDx 24.4 adapter measured on SM70 | imported local processing unit | +| [TurboFFT](https://github.com/shixun404/TurboFFT) | generated complete FFT research artifact | commit `918179c`, T4 points ported and measured on SM70 | imported generated processing unit | +| [FlashFFTConv](https://github.com/HazyResearch/flash-fft-conv) | fused long convolution using FFT | Ampere/Hopper workload | not a raw V100 C2C FFT baseline | + +cuFFTDx belongs in the processing-unit design space: importing one of its local +FFTs would test the mapping paradigm with a stronger arithmetic core. It should +not be ranked as a complete long-transform library until the surrounding +composition is specified. FlashFFTConv similarly answers a fused-operator +question rather than the raw FFT question measured here. + +## Protocol + +- Tesla V100-SXM2-16GB, CUDA 11.8 build, FP32 forward C2C. +- Contiguous 1D batches with `2^22` total complex points. +- In-place placement for all three implementations. +- Plan construction excluded; 20 warmups and 100 executions per trial. +- Three trials, median execution time; every row is checked against cuFFT. +- cuButterfly points are selected from the existing design exploration rather + than tuned against these measurements. + +The initial direct measurements are: + +| logN | Batch | cuButterfly ms | cuFFT ms | VkFFT ms | cuButterfly / cuFFT throughput | cuButterfly / VkFFT throughput | +|--:|--:|--:|--:|--:|--:|--:| +| 3 | 524288 | 0.091310 | 0.088003 | 0.083610 | 96.4% | 91.6% | +| 8 | 16384 | 0.096082 | 0.084132 | 0.084152 | 87.6% | 87.6% | +| 12 | 1024 | 0.268278 | 0.089702 | 0.088515 | 33.4% | 33.0% | +| 16 | 64 | 0.418406 | 0.180634 | 0.195727 | 43.2% | 46.8% | +| 20 | 4 | 0.639795 | 0.223519 | 0.217252 | 34.9% | 34.0% | + +VkFFT is within 8.3% of cuFFT on all five shapes and is faster on three of +them. Therefore the long-transform deficit is not specific to the choice of +cuFFT as the original baseline. Two independent complete FFT libraries define +approximately the same performance envelope on this V100. + +This is a steady-state result, not a one-shot latency result. VkFFT generates +CUDA kernels through NVRTC: its median plan time rises from 172 ms at `logN=3` +to 803 ms at `logN=20`, while the measured cuFFT plans take 0.37-0.49 ms. +Applications that cannot cache and reuse plans should include this difference. + +The small-transform result also localizes the issue. The generated CTA DFT8 +and the radix-4 `N=256` point retain 88%-96% of cuFFT throughput. The loss grows +only when the transform crosses the local-unit boundary. The next optimization +target is consequently long-transform composition: prefix/suffix transaction +count, permutation layout, coefficient traffic, and occupancy. Replacing only +the DFT8 arithmetic is unlikely to recover the missing 2.1x-3.0x. This is now +measured directly: cuFFTDx reaches 99.3%-101.3% of cuFFT throughput at local +`logN=5..10`. Embedding that core into a two-pass tiled-transpose composition +raises long-transform throughput to 41.9%-88.8% of cuFFT at `logN=12..20`. +The remaining loss is now concentrated in the two physical layout edges, +cross-twiddle policy, and hardware-specific FFTs-per-CTA mapping rather than +the local arithmetic core. + +A subsequent resident-granularity experiment removes the intermediate global +edge at `logN=12`. The 64x64 composed unit reaches 0.120412 ms, or 73.7% of +cuFFT throughput. Extending the direct whole-transform units through +`logN=11..14` gives stable same-run wins at `logN=11,12,14` (1.006x, 1.012x, +and 1.029x), with `logN=13` at 0.965x. Thus launch fusion alone is insufficient: +the hardware-specific equivalent-unit size and CTA shape are first-class +mapping choices. These are local-unit results; the current `logN=16..20` +two-pass composition remains below cuFFT. + +## Reproduction + +```bash +./scripts/install_vkfft.sh +cmake -S . -B build -DCUBUTTERFLY_ENABLE_VKFFT=ON +cmake --build build -j + +./scripts/benchmark_fft_libraries.sh +./scripts/benchmark_fft_cubutterfly_selected.sh +python3 scripts/summarize_fft_libraries.py + +# Optional local processing-unit comparison +./scripts/install_cufftdx.sh +./scripts/install_turbofft.sh +cmake -S . -B build -DCUBUTTERFLY_ENABLE_CUFFTDX=ON \ + -DCUBUTTERFLY_ENABLE_TURBOFFT=ON +cmake --build build -j +./scripts/benchmark_fft_processing_units.sh +./scripts/benchmark_fft_cufftdx_long.sh +``` + +The raw files are `results/fft_libraries_v100_raw.csv` and +`results/fft_cubutterfly_selected_v100_raw.csv`. The combined derived table is +`results/fft_library_comparison_v100_summary.csv`. diff --git a/docs/getting_started.md b/docs/getting_started.md index 3743ec3..528c87d 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -41,6 +41,29 @@ cmake -S . -B build \ For a new GPU, copy the JSON specification and GPU profile instead of editing the V100 records in place. +### Optional FFT Processing Units + +cuFFTDx and TurboFFT are optional and the default build remains dependency +free beyond the CUDA Toolkit. Install the pinned versions and enable both +adapters with: + +```bash +./scripts/install_cufftdx.sh +./scripts/install_turbofft.sh + +cmake -S . -B build \ + -DCMAKE_CUDA_COMPILER=/usr/local/cuda-11.8/bin/nvcc \ + -DCMAKE_CUDA_ARCHITECTURES=70 \ + -DCUBUTTERFLY_ENABLE_CUFFTDX=ON \ + -DCUBUTTERFLY_ENABLE_TURBOFFT=ON +cmake --build build -j +``` + +The cuFFTDx adapter supports FP32 forward/inverse local FFTs at `logN=3..10`, +including strided and in-place plan semantics. The current TurboFFT artifact +adapter supports the generated FP32 forward, contiguous, out-of-place kernels +actually present upstream at `logN=7..10`. + ## Test ```bash @@ -108,6 +131,41 @@ Examples: --precision fp32 --fft-core cta-dft8 --compute-unit radix8 \ --logN 8 --tile-threads 64 --batch 16384 --verify --csv +# Imported cuFFTDx block processing unit +./build/cubutterfly_bench --operator fft --backend temporal-tile \ + --precision fp32 --fft-core cufftdx-block --logN 9 \ + --tile-threads 32 --batch 8192 --verify --csv + +# Imported TurboFFT generated processing unit +./build/cubutterfly_bench --operator fft --backend temporal-tile \ + --precision fp32 --fft-core turbofft-generated --logN 9 \ + --tile-threads 32 --batch 8192 --placement out-of-place \ + --normalization none --verify --csv + +# Long two-pass cuFFTDx composition with register cross-twiddle recurrence +./build/cubutterfly_bench --operator fft --backend online-reorder \ + --precision fp32 --fft-core cufftdx-block --logN 20 \ + --local-stages 10 --cross-twiddle recurrence \ + --prefix-threads 512 --prefix-ept 8 \ + --suffix-threads 512 --suffix-ept 8 \ + --tile-threads 32 --reorder-columns 1 --batch 4 --verify --csv + +# Independently search both FFT dimensions on the current GPU +./scripts/explore_fft_architecture.py --logNs 16 18 20 \ + --target-points 4194304 \ + --output-prefix results/fft_architecture_explore_v100 + +# Fully resident 64x64 schedule: one CTA, one launch, no global scratch traffic +./build/cubutterfly_bench --operator fft --backend online-reorder \ + --precision fp32 --fft-core cufftdx-resident --logN 12 \ + --local-stages 6 --cross-twiddle recurrence --tile-threads 1024 \ + --reorder-columns 1 --batch 1024 --verify --csv + +# Whole-transform equivalent processing unit used by the same runtime +./build/cubutterfly_bench --operator fft --backend temporal-tile \ + --precision fp32 --fft-core cufftdx-direct --logN 12 \ + --tile-threads 512 --batch 1024 --verify --csv + # Long online-reorder FFT ./build/cubutterfly_bench --operator fft --backend online-reorder \ --precision fp32 --compute-unit radix4 --logN 20 \ @@ -164,3 +222,11 @@ python3 scripts/summarize_cubutterfly_designs.py \ Use `--verify` for individual development points. Full sweeps rely on the test suite and should be followed by targeted verification of selected mappings. + +With both optional FFT units enabled, reproduce the V100 local-unit comparison +and derive the per-core medians with: + +```bash +./scripts/benchmark_fft_processing_units.sh +./scripts/benchmark_fft_cufftdx_long.sh +``` diff --git a/docs/hardware_mapping_methodology.md b/docs/hardware_mapping_methodology.md index 1d968b7..ef81cfe 100644 --- a/docs/hardware_mapping_methodology.md +++ b/docs/hardware_mapping_methodology.md @@ -1,5 +1,11 @@ # Hardware-Mapped Space-Time NTT Methodology +This document derives the original two graph-axis model in detail. The +[operator-independent design-space contract](butterfly_design_space.md) adds +ordered multi-dimensional graph factorization, the orthogonal batch unfolding, +and explicit lane-to-node hierarchy mapping without changing this `2 x 2` +graph invariant. + ## 1. Two-dimensional iteration domain An `N=2^K` radix-2 NTT is a two-dimensional iteration domain: @@ -176,7 +182,7 @@ response to these two different demands. Define the architecture, processing unit, and hardware realization separately: ```text -Architecture A = (K, Us, Ts, Ud, Td, Hs, Rs, Rd) +Architecture A = (K, Us, Ts, Ud, Td, Ub, Tb, Hs, Rs, Rd, Rb) Processing P = (radix, reduction, root_representation, coefficient_width) Layout L = (bank_mapping, global_order, output_order) Realization F = (kernel_form, tile_threads, warp_stages, pipeline_warps) @@ -455,7 +461,8 @@ output semantics held constant. ## 10. Portable architecture-selection procedure -1. Enumerate architecture points `(Us, Ud)` and derive `Ts`, `Td`, utilization, +1. Enumerate ordered graph factorizations and per-dimension `(Us, Ud)` points; + independently enumerate batch `(Ub,Tb)`. Derive `Ts`, `Td`, utilization, arithmetic cells, boundary bandwidth, inter-stage bandwidth, feedback bandwidth, and state capacity. 2. Select candidate residency levels and reject points whose state or feedback @@ -465,7 +472,8 @@ output semantics held constant. coefficient-width integer throughput. 4. Calibrate small device microbenchmarks for 64/32-bit modular multiply, barriers, shared-memory access, coalesced bandwidth, and permutation stores. -5. Map each surviving architecture point to legal stage pipelines, tile sizes, +5. Factor logical `Us`, `Ud`, and `Ub` over lane, thread, warp, CTA, cluster, + grid, device, and node levels; map survivors to legal pipelines, tile sizes, block shapes, processing units, root forms, and layouts. 6. Apply register, shared-memory, working-set, minimum-wave, and correctness constraints. diff --git a/docs/ncu_profiling.md b/docs/ncu_profiling.md index 64df80b..034d5de 100644 --- a/docs/ncu_profiling.md +++ b/docs/ncu_profiling.md @@ -1,5 +1,45 @@ # Nsight Compute Profiling +## FFT resident mapping + +The `logN=12` FFT decomposition compares two-pass, resident 64x64, direct 4096, +and cuFFT kernels: + +```bash +sudo -E ./scripts/profile_fft_resident_ncu.sh +sudo chown -R "$USER:$USER" results/ncu_fft_resident +``` + +The resulting counter analysis is recorded in +`results/ncu_fft_resident_analysis.md`. The key distinction is between the +two-pass external traffic boundary and the resident kernel's internal +shared-exchange/control overhead. + +The new whole-transform `logN=14` winner can be compared directly with cuFFT: + +```bash +sudo -E ./scripts/profile_fft_direct14_ncu.sh +sudo chown -R "$USER:$USER" results/ncu_fft_direct14 +``` + +This profiles the 1024-thread direct point and cuFFT with the same transform +count and counter set. Non-admin runs on the current server fail with +`ERR_NVGPUCTRPERM`. + +## FFT two-dimension mapping + +The `logN=18` architecture search selected a 256/256-thread `9+9` mapping over +the previous fixed 512/512 point. Profile the tuned, fixed, asymmetric, and +cuFFT cases with: + +```bash +sudo -E ./scripts/profile_fft_architecture_ncu.sh +sudo chown -R "$USER:$USER" results/ncu_fft_architecture +``` + +Override `LOG_N`, `BATCH`, and `LOCAL_STAGES` to reuse the script for another +selected split. + ## Purpose The profiling run compares three implementations under the same modulus, diff --git a/docs/processing_unit_design_space.md b/docs/processing_unit_design_space.md index 8fd54cf..43919a9 100644 --- a/docs/processing_unit_design_space.md +++ b/docs/processing_unit_design_space.md @@ -1,5 +1,11 @@ # Processing-Unit Design Space +The canonical operator-independent architecture and candidate-state contract is +defined in [Complete Butterfly Design Space](butterfly_design_space.md). The +[FFT Architecture Design Space](fft_design_space.md) is its validated FFT +projection. This document focuses on implemented processing units and measured +selections. + ## Architectural Boundary cuButterfly owns the two-dimensional space-time mapping. A processing unit is @@ -20,7 +26,7 @@ P = (stage_group, arithmetic_core, coefficient_form, local_exchange) codelet transport. The architectural mapping parameters remain -`(local_stages, reorder_columns, tile_threads, backend, ...)`. Consequently a +`(local_stages, reorder_columns, tile_threads, prefix_threads, suffix_threads, backend, ...)`. Consequently a core can be replaced without changing the mapping model, and each GPU can search the product of both spaces. @@ -29,6 +35,7 @@ search the product of both spaces. | Operator | Stage group | Arithmetic/coefficient choices | Mapping support | |:--|:--|:--|:--| | FFT FP32/FP64 | radix-2, fused radix-4, fused radix-8 | four-multiply, Gauss three-multiply, FP32 thread-register DFT8 | temporal, hierarchical, online-reorder; generated DFT8 point | +| FFT FP32 optional | cuFFTDx block FFT, TurboFFT generated FFT | imported local codelet transport and arithmetic | temporal full-local points; cuFFTDx `logN=3..10`, TurboFFT `logN=7..10` | | FFT mixed | temporally fused DFT8 matrix | FP16 WMMA input with FP32 accumulation/output | generated temporal point | | FWHT FP32/FP64 | radix-2, fused radix-4, fused radix-8 | add/subtract; FP32 register-vector/XOR-swizzle exchange | temporal, hierarchical, online-reorder | | XOR-zeta uint32 | radix-2, fused radix-4, fused radix-8 | add/subtract modulo `2^32` | temporal, hierarchical, online-reorder | @@ -45,6 +52,160 @@ Query the compiled matrix with: build/cubutterfly_bench --list-capabilities ``` +The imported choices are selected through `fft_core=cufftdx-block` and +`fft_core=turbofft-generated`. They deliberately use the same plan and timing +contract as the in-tree units. cuFFTDx is also composable with the long +`online-reorder` backend: each pass embeds a block FFT, retains per-thread +fragments in registers, uses shared memory for exchange and a tiled transpose, +and fuses the cross twiddle into the first-pass epilogue. TurboFFT remains a +standalone generated global kernel and therefore needs a device-codelet form +before the same composition is possible. + +## Imported FFT Unit Results + +The V100 comparison uses FP32 forward, contiguous out-of-place batches with +`2^22` total points, 20 warmups, 100 timed repetitions, and five trials. Values +are medians; throughput above 1 means faster than cuFFT for the same batch. + +| logN | cuFFT ms | CTA DFT8 ms | cuFFTDx ms | cuFFTDx / cuFFT | TurboFFT ms | TurboFFT / cuFFT | +|--:|--:|--:|--:|--:|--:|--:| +| 3 | 0.086313 | 0.090798 | 0.149279 | 0.578x | n/a | n/a | +| 4 | 0.084265 | 0.102072 | 0.099113 | 0.850x | n/a | n/a | +| 5 | 0.084746 | 0.099830 | 0.084808 | 0.999x | n/a | n/a | +| 6 | 0.084122 | 0.092037 | 0.084019 | **1.001x** | n/a | n/a | +| 7 | 0.084541 | 0.095672 | 0.084490 | **1.001x** | 0.087634 | 0.965x | +| 8 | 0.084152 | 0.101601 | 0.084736 | 0.993x | 0.087388 | 0.963x | +| 9 | 0.084920 | 0.101540 | 0.084756 | **1.002x** | 0.083702 | **1.015x** | +| 10 | 0.085903 | 0.107971 | 0.084808 | **1.013x** | 0.186931 | 0.460x | + +cuFFTDx reaches parity at `logN=5..10` but is not a replacement for the +specialized batched scheduling used by cuFFT at very small sizes. TurboFFT is +competitive at `logN=7..9`; its T4-selected `logN=10` mapping is a poor V100 +point, confirming that imported arithmetic does not remove the need for a +hardware-specific organization search. TurboFFT `logN=10` also measured about +`2.4e-4` maximum absolute error on the targeted random test, so its automated +unit test uses a documented `3e-4` FP32 threshold. + +Raw and derived records are +`results/fft_processing_units_v100_{raw,summary}.csv`; reproduce them with +`scripts/benchmark_fft_processing_units.sh`. + +## Long cuFFTDx Composition + +For `N=N1*N2`, the long path performs two local block FFT passes. The first +pass reads the `N1` dimension, applies `W_N^(k1*n2)` in registers, and writes +the transposed intermediate layout. The second pass transforms `N2` and writes +natural order. The original point stages four large local FFTs together so the +transpose edges use fully occupied 32-byte memory sectors. `cross_twiddle` selects either +one table lookup per element or two initial lookups followed by a per-thread +register recurrence. + +That four-FFT packaging is now a default rather than a constant. For the +cuFFTDx path, `prefix_threads` and `suffix_threads` independently select +128/256/512/1024-thread budgets, while each dimension independently selects +EPT 4/8/16 from the current V100 codegen manifest. The architecture derives +`FFTsPerBlock = threads*EPT/local_size` for each dimension. Invalid points +whose budget cannot cover one local FFT are rejected before launch. This exposes +the spatial width of both dimensions without changing the two-pass dataflow. + +The following V100 medians use `2^22` total FP32 complex points, 20 warmups, +100 repetitions, and five trials: + +| logN | Best split | Cross twiddle | Generic online ms | cuFFTDx online ms | Speedup | cuFFT ms | cuFFTDx/cuFFT throughput | +|--:|:--|:--|--:|--:|--:|--:|--:| +| 12 | `6+6` | table | 0.448748 | 0.211917 | 2.118x | 0.088893 | 41.9% | +| 14 | `5+9` | recurrence | 0.440914 | 0.203510 | 2.167x | 0.122757 | 60.3% | +| 16 | `6+10` | recurrence | 0.445317 | 0.225987 | 1.971x | 0.179292 | 79.3% | +| 18 | `10+8` | recurrence | 0.468081 | 0.240364 | 1.947x | 0.211661 | 88.1% | +| 20 | `10+10` | recurrence | 0.639396 | 0.235971 | 2.710x | 0.209521 | 88.8% | + +The selected split and twiddle policy vary with length. This is the intended +separation: the architecture selects the two-dimensional flow and hardware +mapping, while an established processing core supplies each resident local +transform. Reproduce the table with +`scripts/benchmark_fft_cufftdx_long.sh`. + +### Independent two-dimension mapping + +A hierarchical search first ranks split and twiddle policy at the default +512/512 mapping, expands both thread axes only for the leading splits, and then +remeasures finalists. On the same V100 with `2^22` points it selects: + +| logN | Split | Twiddle | Prefix/suffix threads | cuButterfly ms | cuFFT ms | Throughput ratio | +|--:|:--|:--|:--|--:|--:|--:| +| 16 | `6+10` | recurrence | `128/512` | 0.212685 | 0.180702 | 0.850x | +| 18 | `9+9` | recurrence | `256/256` | 0.212019 | 0.226877 | **1.070x** | +| 20 | `10+10` | recurrence | `512/512` | 0.245180 | 0.223232 | 0.910x | + +The `logN=18` point was independently confirmed with seven trials of 20 warmups +and 100 repetitions. More threads do not monotonically improve performance: +they increase FFTs per CTA and shared-memory footprint while reducing the number +of independently schedulable CTAs. The optimum therefore depends on both local +dimension lengths and the transform batch. + +Reproduce the constrained search with: + +```bash +./scripts/explore_fft_architecture.py \ + --logNs 16 18 20 --target-points 4194304 \ + --output-prefix results/fft_architecture_explore_v100 +``` + +Primary records are `results/fft_architecture_explore_v100_{search,confirm,summary}.csv` +and `results/fft_architecture_logN18_confirm_v100_{confirm,summary}.csv`. + +### Resident and direct granularity experiment + +At `logN=12`, one 4096-value transform fits in a V100 CTA. Three physical +organizations were measured with the same `2^22`-point protocol: + +| Organization | Physical boundary | Best mapping | Median ms | Throughput vs cuFFT | +|:--|:--|:--|--:|--:| +| cuFFTDx two-pass 64x64 | two launches, global scratch | table | 0.213207 | 41.6% | +| resident composed 64x64 | one launch, shared 64x65 tile | recurrence, 1024 threads | 0.120412 | 73.7% | +| direct cuFFTDx 4096 | one launch, whole-transform unit | 512 threads | 0.088996 | 99.7% | +| cuFFT | vendor plan | vendor selected | 0.088750 | 100.0% | + +The resident composed point proves that the intermediate global boundary is +not required at this size. Its remaining gap is not launch overhead: replacing +the 128 separately executed 64-point local FFTs with one 4096-point equivalent +unit closes it. Equivalent-unit granularity is therefore a hardware-dependent +architecture parameter alongside spatial width, temporal depth, CTA threads, +tile pitch, and cross-twiddle policy. + +The direct-unit search was then extended to every `logN=11..14` whole-transform +cuFFTDx specialization. A contiguous compile-time layout removes generic +stride/tail address work. Independent five-trial runs produce 1.006x, 1.012x, +0.965x, and 1.029x cuFFT throughput at `logN=11,12,13,14`, respectively. The +best V100 CTA shapes are 256, 512, 512, and 1024 threads. `cuobjdump` reports 63 +registers/thread and no local-memory spill for the winning `logN=14` point; +the 512-thread alternative uses about 90 registers/thread. + +The same ownership policy is not universally beneficial. A manually composed +persistent 7+7 `logN=14` CTA reaches only 0.227922 ms, while the direct 16384 +unit reaches 0.131543 ms and cuFFT reaches 0.135383 ms in the final run. +This separates the architecture decision (whole-transform temporal ownership) +from the processing-core implementation (manual symmetric composition versus +cuFFTDx). It also shows why the equivalent unit must remain selectable rather +than fixed. + +Reproduce the searches with: + +```bash +./scripts/benchmark_fft_resident_logN12.sh +./scripts/benchmark_fft_persistent_logN14.sh +./scripts/benchmark_fft_direct_units.sh +``` + +The privileged counter comparison is prepared in +`scripts/profile_fft_resident_ncu.sh`. +Its V100 result confirms that resident and direct have the same approximately +64 MiB external traffic, while resident executes 46.4% more warp instructions, +incurs 2.0x the shared-store conflicts, and has higher barrier stall. See +`results/ncu_fft_resident_analysis.md`. +The corresponding `logN=14` direct-versus-cuFFT capture is prepared in +`scripts/profile_fft_direct14_ncu.sh`. + ## V100 Selection Evidence The following medians use a Tesla V100-SXM2-16GB, contiguous forward data, diff --git a/docs/reproducibility.md b/docs/reproducibility.md index 15690f7..7ff63c5 100644 --- a/docs/reproducibility.md +++ b/docs/reproducibility.md @@ -57,6 +57,24 @@ python3 scripts/summarize_cubutterfly_designs.py \ --output results/reproduction_summary.csv ``` +The controlled single-GPU cross-workload suite validates semantic grouping, +runs correctness preflights, randomizes trial order, and persists each sample: + +```bash +python3 scripts/run_comprehensive_suite.py --mode full \ + --output results/comprehensive_v100_full_raw.csv + +python3 scripts/summarize_comprehensive_suite.py \ + results/comprehensive_v100_full_raw.csv \ + --output results/comprehensive_v100_full_summary.csv \ + --markdown results/comprehensive_v100_full_report.md \ + --require-stable +``` + +The current protocol fixes `N * batch = 2^22` for length comparisons. Do not +use it to infer independent batch scaling; that requires holding `N` fixed and +sweeping batch separately. + ## 4. Generated Design Points The build invokes: diff --git a/include/cuntt/butterfly.hpp b/include/cuntt/butterfly.hpp index c309fc6..fa32e41 100644 --- a/include/cuntt/butterfly.hpp +++ b/include/cuntt/butterfly.hpp @@ -89,6 +89,14 @@ enum class ComplexMultiply { const char* complex_multiply_name(ComplexMultiply multiply) noexcept; ComplexMultiply parse_complex_multiply(const std::string& name); +enum class CrossTwiddleMode { + Table, + Recurrence, +}; + +const char* cross_twiddle_mode_name(CrossTwiddleMode mode) noexcept; +CrossTwiddleMode parse_cross_twiddle_mode(const std::string& name); + enum class LocalExchange { SharedMemory, WarpRegister, @@ -102,6 +110,10 @@ enum class FftCore { ThreadDft8, CtaDft8, WmmaDft8, + CufftDxBlock, + CufftDxDirect, + CufftDxResident, + TurboFftGenerated, }; const char* fft_core_name(FftCore core) noexcept; @@ -123,12 +135,19 @@ struct ButterflyConfig { std::uint32_t stage_space = 0; StageHandoff stage_handoff = StageHandoff::NamedBarrier; std::uint32_t tile_threads = 128; + std::uint32_t prefix_threads = 0; + std::uint32_t suffix_threads = 0; + std::uint32_t prefix_ept = 8; + std::uint32_t suffix_ept = 8; + std::uint32_t prefix_units_per_cta = 0; + std::uint32_t suffix_units_per_cta = 0; std::uint32_t local_stages = 10; std::uint32_t reorder_columns = 1; std::uint32_t warp_stages = 5; std::uint32_t pipeline_warps = 8; ComputeUnit compute_unit = ComputeUnit::Radix2; ComplexMultiply complex_multiply = ComplexMultiply::FourMul; + CrossTwiddleMode cross_twiddle = CrossTwiddleMode::Table; LocalExchange local_exchange = LocalExchange::SharedMemory; FftCore fft_core = FftCore::Scalar; }; diff --git a/results/butterfly_architecture_fixedC_logN16.csv b/results/butterfly_architecture_fixedC_logN16.csv new file mode 100644 index 0000000..d499d5f --- /dev/null +++ b/results/butterfly_architecture_fixedC_logN16.csv @@ -0,0 +1,6 @@ +operator,logN,N,storage_word_bytes,butterflies_per_stage,Us,Ts,Ud,Td,batch,Ub,Tb,stage_utilization,data_utilization,batch_utilization,total_utilization,spatial_butterfly_cells,ideal_body_cycles,boundary_coefficient_words_per_cycle,interstage_coefficient_words_per_cycle,coefficient_streams_upper_bound,stage_feedback_folds,data_stream_folds,stage_feedback_bytes_above_residence,data_feedback_bytes_above_residence,stage_residence,data_residence,batch_residence,status,factorization_rank,dimension_stage_counts,precision,word_bits,accumulator_bits,operator_core,stage_group,arithmetic_core,coefficient_form,local_exchange,direction,normalization,placement,input_order,output_order,schedule,tail_policy,coefficient_residence,coefficient_sharing_scope,coefficient_schedule,elements_per_thread,units_per_cta,dimension_boundary,global_order,intermediate_permutation,bank_mapping,shared_padding,vector_width_bytes,alignment_bytes,kernel_form,threads_per_cta,warps_per_cta,ctas_per_work_unit,pipeline_buffers,async_copy,synchronization,specialization,selection_method,candidate_status,objective,element_stride,batch_stride,pipeline_initiation_interval,pipeline_depth +ntt,16,65536,4,32768,1,16,128,256,1,1,1,1.0,1.0,1.0,1.0,128,4096,256,0,128,15,255,0,0,shared,shared,global,abstract,1,16,uint32,32,64,radix2,radix2,scalar,native-table,thread-register,forward,none,out-of-place,natural,natural,stage-major,predicate,immediate,cell,preload,1,1,none,natural,none,linear,0,4,4,baseline,32,1,1,1,none,none,runtime-generic,manual,abstract,latency,1,1,1,1 +ntt,16,65536,4,32768,2,8,64,512,1,1,1,1.0,1.0,1.0,1.0,128,4096,128,128,128,7,511,0,0,shared,shared,global,abstract,1,16,uint32,32,64,radix2,radix2,scalar,native-table,thread-register,forward,none,out-of-place,natural,natural,stage-major,predicate,immediate,cell,preload,1,1,none,natural,none,linear,0,4,4,baseline,32,1,1,1,none,none,runtime-generic,manual,abstract,latency,1,1,1,1 +ntt,16,65536,4,32768,4,4,32,1024,1,1,1,1.0,1.0,1.0,1.0,128,4096,64,192,128,3,1023,0,0,shared,shared,global,abstract,1,16,uint32,32,64,radix2,radix2,scalar,native-table,thread-register,forward,none,out-of-place,natural,natural,stage-major,predicate,immediate,cell,preload,1,1,none,natural,none,linear,0,4,4,baseline,32,1,1,1,none,none,runtime-generic,manual,abstract,latency,1,1,1,1 +ntt,16,65536,4,32768,8,2,16,2048,1,1,1,1.0,1.0,1.0,1.0,128,4096,32,224,128,1,2047,0,0,shared,shared,global,abstract,1,16,uint32,32,64,radix2,radix2,scalar,native-table,thread-register,forward,none,out-of-place,natural,natural,stage-major,predicate,immediate,cell,preload,1,1,none,natural,none,linear,0,4,4,baseline,32,1,1,1,none,none,runtime-generic,manual,abstract,latency,1,1,1,1 +ntt,16,65536,4,32768,16,1,8,4096,1,1,1,1.0,1.0,1.0,1.0,128,4096,16,240,128,0,4095,0,0,shared,shared,global,abstract,1,16,uint32,32,64,radix2,radix2,scalar,native-table,thread-register,forward,none,out-of-place,natural,natural,stage-major,predicate,immediate,cell,preload,1,1,none,natural,none,linear,0,4,4,baseline,32,1,1,1,none,none,runtime-generic,manual,abstract,latency,1,1,1,1 diff --git a/results/comprehensive_v100_full_fft14_cufft_confirm_raw.csv b/results/comprehensive_v100_full_fft14_cufft_confirm_raw.csv new file mode 100644 index 0000000..7d06cad --- /dev/null +++ b/results/comprehensive_v100_full_fft14_cufft_confirm_raw.csv @@ -0,0 +1,6 @@ +suite_case_id,suite_group,suite_tier,suite_runner,implementation,reference,trial,performance_batch,preflight_correct,preflight_max_error,device,compute_capability,library,library_version,precision,direction,placement,logN,N,batch,warmup,repeat,plan_ms,kernel_ms,transforms_s,Gbutterfly_s,points_s,max_abs_error,relative_l2_error,correct,operator,normalization,element_stride,output_order,batch_stride +fft14_cufft,fft-fp32-fwd-log14,quick,fft-library,cuFFT,1,4,256,1,,Tesla V100-SXM2-16GB,7.0,cufft,10900,fp32,forward,in-place,14,16384,256,1000,100,2.112261000,0.127754241,2003847.367719990,229.817246909,32831035272.724308014,0.000000000,0.000000000,-1,fft,none,1,,16384 +fft14_cufft,fft-fp32-fwd-log14,quick,fft-library,cuFFT,1,5,256,1,,Tesla V100-SXM2-16GB,7.0,cufft,10900,fp32,forward,in-place,14,16384,256,1000,100,2.009443000,0.121159680,2112914.127896355,242.325895500,34617985071.453872681,0.000000000,0.000000000,-1,fft,none,1,,16384 +fft14_cufft,fft-fp32-fwd-log14,quick,fft-library,cuFFT,1,3,256,1,,Tesla V100-SXM2-16GB,7.0,cufft,10900,fp32,forward,in-place,14,16384,256,1000,100,2.160821000,0.121671677,2104022.949945917,241.306184083,34472312011.913909912,0.000000000,0.000000000,-1,fft,none,1,,16384 +fft14_cufft,fft-fp32-fwd-log14,quick,fft-library,cuFFT,1,2,256,1,,Tesla V100-SXM2-16GB,7.0,cufft,10900,fp32,forward,in-place,14,16384,256,1000,100,2.022924000,0.121221125,2111843.127459431,242.203064602,34600437800.295318604,0.000000000,0.000000000,-1,fft,none,1,,16384 +fft14_cufft,fft-fp32-fwd-log14,quick,fft-library,cuFFT,1,1,256,1,,Tesla V100-SXM2-16GB,7.0,cufft,10900,fp32,forward,in-place,14,16384,256,1000,100,1.804239000,0.121077754,2114343.819413972,242.489863961,34641409137.278511047,0.000000000,0.000000000,-1,fft,none,1,,16384 diff --git a/results/comprehensive_v100_full_fft14_cufft_confirm_summary.csv b/results/comprehensive_v100_full_fft14_cufft_confirm_summary.csv new file mode 100644 index 0000000..26a392c --- /dev/null +++ b/results/comprehensive_v100_full_fft14_cufft_confirm_summary.csv @@ -0,0 +1,2 @@ +case_id,group,implementation,reference,trials,median_kernel_ms,min_kernel_ms,max_kernel_ms,relative_range,central_relative_range,stability_class,correct,operator,precision,direction,normalization,placement,logN,N,performance_batch,element_stride,batch_stride,word_bits,modulus_bits,inverse,output_order,comparison_basis,basis_implementation,basis_kernel_ms,throughput_vs_basis,performance_class +fft14_cufft,fft-fp32-fwd-log14,cuFFT,1,5,0.121221125,0.121077754,0.127754241,0.055077,0.004224,stable-with-outlier,1,fft,fp32,forward,none,in-place,14,16384,256,1,16384,,,,,declared-reference,cuFFT,0.121221125,1.000000,parity diff --git a/results/comprehensive_v100_full_raw.csv b/results/comprehensive_v100_full_raw.csv new file mode 100644 index 0000000..9997f05 --- /dev/null +++ b/results/comprehensive_v100_full_raw.csv @@ -0,0 +1,186 @@ +suite_case_id,suite_group,suite_tier,suite_runner,implementation,reference,trial,performance_batch,preflight_correct,preflight_max_error,device,compute_capability,operator,precision,direction,normalization,placement,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,stage_handoff,tile_threads,prefix_threads,suffix_threads,prefix_ept,suffix_ept,prefix_units_per_cta,suffix_units_per_cta,local_stages,reorder_columns,warp_stages,pipeline_warps,logN,N,batch,element_stride,batch_stride,warmup,repeat,h2d_ms,kernel_ms,d2h_ms,transforms_s,Gbutterfly_s,points_s,max_error,correct,output_order,library,library_version,plan_ms,max_abs_error,relative_l2_error,word_bits,modulus,modulus_bits,n1_log,rows_per_block,threads_per_block,inverse,kernel_ntt_s,end_to_end_ntt_s,kernel_points_s,mod_multiply +fwht8_warp,fwht-fp32-fwd-log8,quick,butterfly,cuButterfly-warp-register,0,5,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,temporal-tile,radix2,four-mul,table,warp-register,scalar,0,named-barrier,32,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,2.764736,0.043121,2.610784,379957243.694552,389.076218,97269054385.805267,0.000000,-1,,,,,,,,,,,,,,,,, +fft18_cub,fft-fp32-fwd-log18,quick,butterfly,cuButterfly-cuFFTDx-online,0,2,16,1,0.000512,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,128,256,256,8,8,4,4,9,1,0,0,18,262144,16,1,262144,1000,100,5.453824,0.207206,5.110048,77217.692770,182.179394,20242154853.569401,0.000000,-1,,,,,,,,,,,,,,,,, +fft8_cufft,fft-fp32-fwd-log8,quick,fft-library,cuFFT,1,4,16384,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,8,256,16384,1,256,1000,100,,0.083752960,,195622936.867212325,200.317887352,50079471838.006355286,,-1,,cufft,10900,2.004925000,0.000000000,0.000000000,,,,,,,,,,, +ntt20_60_compact,ntt-u60-bitrev-log20,quick,ntt,cuNTT-compact-stage,0,4,4,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint64,forward,,,compact-stage,radix2,,fused,,,0,named-barrier,,,,,,,,,,,,20,1048576,4,1,1048576,1000,100,5.449600,0.342026,5.101024,,,,,-1,bit-reversed,,,,,,64,1152921504577486849,60,0,0,256,0,11695.008329,367.220077,12263105053.338837,shoup +fwht8_shared,fwht-fp32-fwd-log8,quick,butterfly,cuButterfly-shared-radix4,0,3,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,temporal-tile,radix4,four-mul,table,shared,scalar,0,named-barrier,128,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,2.765568,0.049101,2.604992,333680908.457075,341.689250,85422312565.011246,0.000000,-1,,,,,,,,,,,,,,,,, +fft16_fp64_cub,fft-fp64-fwd-log16,full,butterfly,cuButterfly-scalar-online,0,3,64,1,0.000000,Tesla V100-SXM2-16GB,7.0,fft,fp64,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,8,1,0,0,16,65536,64,1,65536,1000,100,10.920032,0.534180,10.121376,119809.831924,62.814857,7851857144.939702,0.000000,-1,,,,,,,,,,,,,,,,, +xor12_inverse,xor-u32-inverse-log12,full,butterfly,cuButterfly-online-radix4,0,3,1024,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,inverse,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,6,1,0,0,12,4096,1024,1,4096,1000,100,2.776320,0.354243,2.613312,2890674.656970,71.041220,11840203394.947237,0.000000,-1,,,,,,,,,,,,,,,,, +xor20_hier,xor-u32-fwd-log20,quick,butterfly,cuButterfly-hierarchical-radix4,0,5,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,forward,none,out-of-place,hierarchical,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,10,0,0,0,20,1048576,4,1,1048576,1000,100,2.766912,0.487066,2.600704,8212.446405,86.113742,8611374201.683891,0.000000,-1,,,,,,,,,,,,,,,,, +fwht20_online,fwht-fp32-fwd-log20,quick,butterfly,cuButterfly-online-radix4,0,5,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,10,1,0,0,20,1048576,4,1,1048576,1000,100,2.764608,0.319703,2.597568,12511.610677,131.193747,13119374676.911036,0.000000,-1,,,,,,,,,,,,,,,,, +fft16_fp64_cub,fft-fp64-fwd-log16,full,butterfly,cuButterfly-scalar-online,0,5,64,1,0.000000,Tesla V100-SXM2-16GB,7.0,fft,fp64,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,8,1,0,0,16,65536,64,1,65536,1000,100,10.922464,0.535613,10.121568,119489.164935,62.646735,7830841913.174810,0.000000,-1,,,,,,,,,,,,,,,,, +ntt12_30_r2,ntt-u30-natural-log12,quick,ntt,cuNTT-Hybrid2D-radix2,1,5,1024,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint32,forward,,,hybrid2d,radix2,,fused,,,0,named-barrier,,,,,,,,,,,,12,4096,1024,1,4096,1000,100,2.813472,0.164321,2.626624,,,,,-1,natural,,,,,,32,1073692673,30,6,4,256,0,6231694.076626,182713.013991,25525018937.861320,shoup +fft8_vkfft,fft-fp32-fwd-log8,quick,fft-library,VkFFT,0,3,16384,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,8,256,16384,1,256,1000,100,,0.083578885,,196030373.916807681,200.735102891,50183775722.702766418,,-1,,vkfft,10304,202.477834000,0.000000000,0.000000000,,,,,,,,,,, +fwht20_online,fwht-fp32-fwd-log20,quick,butterfly,cuButterfly-online-radix4,0,1,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,10,1,0,0,20,1048576,4,1,1048576,1000,100,2.777632,0.319652,2.616544,12513.614730,131.214761,13121476079.154661,0.000000,-1,,,,,,,,,,,,,,,,, +fft20_vkfft,fft-fp32-fwd-log20,quick,fft-library,VkFFT,0,3,4,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,20,1048576,4,1,1048576,1000,100,,0.206520334,,19368.552842865,203.093996658,20309399665.760250092,,-1,,vkfft,10304,791.704644000,0.000000000,0.000000000,,,,,,,,,,, +ntt16_60_r4,ntt-u60-natural-log16,quick,ntt,cuNTT-Hybrid2D-radix4,0,3,64,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint64,forward,,,hybrid2d,radix4,,fused,,,0,named-barrier,,,,,,,,,,,,16,65536,64,1,65536,1000,100,5.454240,0.279511,5.136160,,,,,-1,natural,,,,,,64,1152921504606584833,60,8,4,256,0,228971.282358,5887.812818,15005861960.594248,shoup +ntt16_60_r2,ntt-u60-natural-log16,quick,ntt,cuNTT-Hybrid2D-radix2,0,2,64,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint64,forward,,,hybrid2d,radix2,,fused,,,0,named-barrier,,,,,,,,,,,,16,65536,64,1,65536,1000,100,5.460224,0.303421,5.106624,,,,,-1,natural,,,,,,64,1152921504606584833,60,8,4,256,0,210927.746163,5887.618401,13823360772.515911,shoup +fft8_cub,fft-fp32-fwd-log8,quick,butterfly,cuButterfly-cuFFTDx,0,2,16384,1,0.000008,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,temporal-tile,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,5.464992,0.084234,5.106048,194505232.706111,199.173358,49793339572.764534,0.000000,-1,,,,,,,,,,,,,,,,, +ntt16_60_inverse,ntt-u60-inverse-log16,full,ntt,cuNTT-Hybrid2D-radix2,0,1,64,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint64,inverse,,,hybrid2d,radix2,,fused,,,0,named-barrier,,,,,,,,,,,,16,65536,64,1,65536,1000,100,5.448960,0.307671,5.105024,,,,,-1,natural,,,,,,64,1152921504606584833,60,8,4,256,1,208014.377753,5892.288201,13632430260.440632,shoup +fft20_cufft,fft-fp32-fwd-log20,quick,fft-library,cuFFT,1,1,4,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,20,1048576,4,1,1048576,1000,100,,0.210984960,,18958.697322494,198.796350036,19879635003.631694794,,-1,,cufft,10900,1.915361000,0.000000000,0.000000000,,,,,,,,,,, +xor20_hier,xor-u32-fwd-log20,quick,butterfly,cuButterfly-hierarchical-radix4,0,2,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,forward,none,out-of-place,hierarchical,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,10,0,0,0,20,1048576,4,1,1048576,1000,100,2.762144,0.487014,2.614048,8213.309789,86.122795,8612279525.492992,0.000000,-1,,,,,,,,,,,,,,,,, +fft14_vkfft,fft-fp32-fwd-log14,quick,fft-library,VkFFT,0,5,256,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,14,16384,256,1,16384,1000,100,,0.171745285,,1490579.490528545,170.951580610,24421654372.819675446,,-1,,vkfft,10304,367.028933000,0.000000000,0.000000000,,,,,,,,,,, +fft14_cub,fft-fp32-fwd-log14,quick,butterfly,cuButterfly-cuFFTDx-direct,0,3,256,1,0.000095,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,8,8,0,0,0,0,0,0,14,16384,256,1,16384,1000,100,5.524000,0.121129,5.108672,2113449.970580,242.387350,34626764317.982903,0.000000,-1,,,,,,,,,,,,,,,,, +ntt20_60_compact,ntt-u60-bitrev-log20,quick,ntt,cuNTT-compact-stage,0,2,4,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint64,forward,,,compact-stage,radix2,,fused,,,0,named-barrier,,,,,,,,,,,,20,1048576,4,1,1048576,1000,100,5.452928,0.341924,5.108064,,,,,-1,bit-reversed,,,,,,64,1152921504577486849,60,0,0,256,0,11698.511818,366.874327,12266778728.197012,shoup +fft8_cufft,fft-fp32-fwd-log8,quick,fft-library,cuFFT,1,1,16384,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,8,256,16384,1,256,1000,100,,0.083824642,,195455651.328582168,200.146586960,50036646740.117034912,,-1,,cufft,10900,9.112647000,0.000000000,0.000000000,,,,,,,,,,, +ntt16_60_inverse,ntt-u60-inverse-log16,full,ntt,cuNTT-Hybrid2D-radix2,0,2,64,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint64,inverse,,,hybrid2d,radix2,,fused,,,0,named-barrier,,,,,,,,,,,,16,65536,64,1,65536,1000,100,5.470816,0.306883,5.105536,,,,,-1,natural,,,,,,64,1152921504606584833,60,8,4,256,1,208548.833623,5880.604607,13667456360.309868,shoup +fwht12_fp64,fwht-fp64-fwd-log12,full,butterfly,cuButterfly-online-radix4,0,4,1024,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp64,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,6,1,0,0,12,4096,1024,1,4096,1000,100,5.468224,0.373197,5.111200,2743860.753916,67.433122,11238853648.039202,0.000000,-1,,,,,,,,,,,,,,,,, +ntt16_60_inverse,ntt-u60-inverse-log16,full,ntt,cuNTT-Hybrid2D-radix2,0,5,64,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint64,inverse,,,hybrid2d,radix2,,fused,,,0,named-barrier,,,,,,,,,,,,16,65536,64,1,65536,1000,100,5.468928,0.309002,5.102144,,,,,-1,natural,,,,,,64,1152921504606584833,60,8,4,256,1,207118.232668,5882.313000,13573700496.106485,shoup +xor8_r2,xor-u32-fwd-log8,quick,butterfly,cuButterfly-radix2,0,2,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,forward,none,out-of-place,temporal-tile,radix2,four-mul,table,shared,scalar,0,named-barrier,128,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,2.782528,0.050145,2.605472,326730653.920492,334.572190,83643047403.646042,0.000000,-1,,,,,,,,,,,,,,,,, +fwht8_shared,fwht-fp32-fwd-log8,quick,butterfly,cuButterfly-shared-radix4,0,5,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,temporal-tile,radix4,four-mul,table,shared,scalar,0,named-barrier,128,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,2.772896,0.048394,2.599488,338552684.191266,346.677949,86669487152.964005,0.000000,-1,,,,,,,,,,,,,,,,, +fft8_stride_cufft,fft-fp32-stride2-log8,full,butterfly,cuFFT,1,3,16384,1,0.000007,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,8,8,0,0,0,0,0,0,8,256,16384,2,518,1000,100,11.004832,0.171643,10.224384,95454008.824215,97.744905,24436226258.999104,0.000000,-1,,,,,,,,,,,,,,,,, +xor20_online,xor-u32-fwd-log20,quick,butterfly,cuButterfly-online-radix4,0,5,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,10,1,0,0,20,1048576,4,1,1048576,1000,100,2.773920,0.319345,2.596256,12525.652545,131.340986,13134098643.127274,0.000000,-1,,,,,,,,,,,,,,,,, +fft18_cub,fft-fp32-fwd-log18,quick,butterfly,cuButterfly-cuFFTDx-online,0,3,16,1,0.000512,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,128,256,256,8,8,4,4,9,1,0,0,18,262144,16,1,262144,1000,100,5.478560,0.205496,5.114752,77860.278404,183.695443,20410604821.845337,0.000000,-1,,,,,,,,,,,,,,,,, +ntt20_60_compact,ntt-u60-bitrev-log20,quick,ntt,cuNTT-compact-stage,0,5,4,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint64,forward,,,compact-stage,radix2,,fused,,,0,named-barrier,,,,,,,,,,,,20,1048576,4,1,1048576,1000,100,5.493280,0.341924,5.113792,,,,,-1,bit-reversed,,,,,,64,1152921504577486849,60,0,0,256,0,11698.511818,365.330310,12266778728.197012,shoup +fft8_stride_cub,fft-fp32-stride2-log8,full,butterfly,cuButterfly-scalar,0,2,16384,1,0.000005,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,temporal-tile,radix4,four-mul,table,shared,scalar,0,named-barrier,128,0,0,8,8,0,0,0,0,0,0,8,256,16384,2,518,1000,100,11.018240,0.172892,10.248416,94764277.561332,97.038620,24259655055.700985,0.000000,-1,,,,,,,,,,,,,,,,, +ntt12_30_hybrid,ntt-u30-natural-log12,quick,ntt,cuNTT-Hybrid2D-radix4,0,5,1024,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint32,forward,,,hybrid2d,radix4,,fused,,,0,named-barrier,,,,,,,,,,,,12,4096,1024,1,4096,1000,100,2.818784,0.139848,2.600096,,,,,-1,natural,,,,,,32,1073692673,30,6,4,256,0,7322252.276314,184214.817021,29991945323.782082,shoup +fft14_vkfft,fft-fp32-fwd-log14,quick,fft-library,VkFFT,0,1,256,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,14,16384,256,1,16384,1000,100,,0.172052473,,1487918.166995576,170.646358736,24378051248.055515289,,-1,,vkfft,10304,365.361929000,0.000000000,0.000000000,,,,,,,,,,, +ntt16_60_r2,ntt-u60-natural-log16,quick,ntt,cuNTT-Hybrid2D-radix2,0,5,64,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint64,forward,,,hybrid2d,radix2,,fused,,,0,named-barrier,,,,,,,,,,,,16,65536,64,1,65536,1000,100,5.476032,0.303862,5.098080,,,,,-1,natural,,,,,,64,1152921504606584833,60,8,4,256,0,210622.109183,5883.448693,13803330547.443935,shoup +fft3_mixed,fft-mixed-fwd-log3,full,butterfly,cuButterfly-WMMA,0,5,524288,1,0.000790,Tesla V100-SXM2-16GB,7.0,fft,fp16-fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,table,shared,wmma-dft8,0,named-barrier,256,0,0,8,8,0,0,0,0,0,0,3,8,524288,1,8,1000,100,5.511424,0.087306,5.104736,6005160773.632803,72.061929,48041286189.062424,0.000000,-1,,,,,,,,,,,,,,,,, +xor8_r2,xor-u32-fwd-log8,quick,butterfly,cuButterfly-radix2,0,4,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,forward,none,out-of-place,temporal-tile,radix2,four-mul,table,shared,scalar,0,named-barrier,128,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,2.792864,0.049705,2.595264,329625041.697651,337.536043,84384010674.598770,0.000000,-1,,,,,,,,,,,,,,,,, +xor8_r2,xor-u32-fwd-log8,quick,butterfly,cuButterfly-radix2,0,3,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,forward,none,out-of-place,temporal-tile,radix2,four-mul,table,shared,scalar,0,named-barrier,128,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,2.772384,0.049725,2.608096,329489270.892755,337.397013,84349253348.545319,0.000000,-1,,,,,,,,,,,,,,,,, +fwht15_online,fwht-fp32-fwd-log15,quick,butterfly,cuButterfly-online-radix4,0,4,128,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,8,1,0,0,15,32768,128,1,32768,1000,100,2.771296,0.316396,2.604704,404556.927763,99.423911,13256521408.932083,0.000000,-1,,,,,,,,,,,,,,,,, +fft3_mixed,fft-mixed-fwd-log3,full,butterfly,cuButterfly-WMMA,0,3,524288,1,0.000790,Tesla V100-SXM2-16GB,7.0,fft,fp16-fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,table,shared,wmma-dft8,0,named-barrier,256,0,0,8,8,0,0,0,0,0,0,3,8,524288,1,8,1000,100,5.481856,0.086948,5.106624,6029913788.574443,72.358965,48239310308.595543,0.000000,-1,,,,,,,,,,,,,,,,, +ntt16_60_inverse,ntt-u60-inverse-log16,full,ntt,cuNTT-Hybrid2D-radix2,0,3,64,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint64,inverse,,,hybrid2d,radix2,,fused,,,0,named-barrier,,,,,,,,,,,,16,65536,64,1,65536,1000,100,5.462272,0.307855,5.102176,,,,,-1,natural,,,,,,64,1152921504606584833,60,8,4,256,1,207889.829846,5886.516935,13624267888.761105,shoup +fwht15_online,fwht-fp32-fwd-log15,quick,butterfly,cuButterfly-online-radix4,0,1,128,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,8,1,0,0,15,32768,128,1,32768,1000,100,2.827584,0.316795,2.600576,404046.943933,99.298577,13239810258.799730,0.000000,-1,,,,,,,,,,,,,,,,, +ntt16_60_r4,ntt-u60-natural-log16,quick,ntt,cuNTT-Hybrid2D-radix4,0,5,64,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint64,forward,,,hybrid2d,radix4,,fused,,,0,named-barrier,,,,,,,,,,,,16,65536,64,1,65536,1000,100,5.493184,0.279603,5.106112,,,,,-1,natural,,,,,,64,1152921504606584833,60,8,4,256,0,228895.820325,5882.948116,15000916480.830057,shoup +ntt12_30_hybrid,ntt-u30-natural-log12,quick,ntt,cuNTT-Hybrid2D-radix4,0,3,1024,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint32,forward,,,hybrid2d,radix4,,fused,,,0,named-barrier,,,,,,,,,,,,12,4096,1024,1,4096,1000,100,2.816096,0.141087,2.598848,,,,,-1,natural,,,,,,32,1073692673,30,6,4,256,0,7257947.072771,184304.230585,29728551210.070793,shoup +ntt12_30_r2,ntt-u30-natural-log12,quick,ntt,cuNTT-Hybrid2D-radix2,1,3,1024,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint32,forward,,,hybrid2d,radix2,,fused,,,0,named-barrier,,,,,,,,,,,,12,4096,1024,1,4096,1000,100,2.816960,0.164823,2.602240,,,,,-1,natural,,,,,,32,1073692673,30,6,4,256,0,6212723.644249,183380.326197,25447316046.845669,shoup +fft16_fp64_cufft,fft-fp64-fwd-log16,full,butterfly,cuFFT,1,5,64,1,0.000000,Tesla V100-SXM2-16GB,7.0,fft,fp64,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,8,8,0,0,0,0,0,0,16,65536,64,1,65536,1000,100,10.953344,0.342989,10.129152,186595.003908,97.829521,12228690176.106882,0.000000,-1,,,,,,,,,,,,,,,,, +fft18_vkfft,fft-fp32-fwd-log18,quick,fft-library,VkFFT,0,2,16,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,18,262144,16,1,262144,1000,100,,0.201113611,,79557.021943309,187.698563643,20855395960.306766510,,-1,,vkfft,10304,330.791058000,0.000000000,0.000000000,,,,,,,,,,, +ntt16_60_inverse,ntt-u60-inverse-log16,full,ntt,cuNTT-Hybrid2D-radix2,0,4,64,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint64,inverse,,,hybrid2d,radix2,,fused,,,0,named-barrier,,,,,,,,,,,,16,65536,64,1,65536,1000,100,5.482464,0.306493,5.107072,,,,,-1,natural,,,,,,64,1152921504606584833,60,8,4,256,1,208813.610531,5873.699414,13684808779.760592,shoup +ntt12_30_hybrid,ntt-u30-natural-log12,quick,ntt,cuNTT-Hybrid2D-radix4,0,1,1024,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint32,forward,,,hybrid2d,radix4,,fused,,,0,named-barrier,,,,,,,,,,,,12,4096,1024,1,4096,1000,100,2.806432,0.140995,2.628704,,,,,-1,natural,,,,,,32,1073692673,30,6,4,256,0,7262691.362965,183639.886773,29747983822.702740,shoup +ntt12_30_r2,ntt-u30-natural-log12,quick,ntt,cuNTT-Hybrid2D-radix2,1,4,1024,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint32,forward,,,hybrid2d,radix2,,fused,,,0,named-barrier,,,,,,,,,,,,12,4096,1024,1,4096,1000,100,2.806304,0.164291,2.623776,,,,,-1,natural,,,,,,32,1073692673,30,6,4,256,0,6232859.549803,183041.148264,25529792715.993404,shoup +fft8_stride_cub,fft-fp32-stride2-log8,full,butterfly,cuButterfly-scalar,0,1,16384,1,0.000005,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,temporal-tile,radix4,four-mul,table,shared,scalar,0,named-barrier,128,0,0,8,8,0,0,0,0,0,0,8,256,16384,2,518,1000,100,10.982112,0.172636,10.219776,94904795.207285,97.182510,24295627573.065002,0.000000,-1,,,,,,,,,,,,,,,,, +fft20_vkfft,fft-fp32-fwd-log20,quick,fft-library,VkFFT,0,2,4,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,20,1048576,4,1,1048576,1000,100,,0.206028804,,19414.761037233,203.578524694,20357852469.377944946,,-1,,vkfft,10304,860.384777000,0.000000000,0.000000000,,,,,,,,,,, +ntt16_60_r4,ntt-u60-natural-log16,quick,ntt,cuNTT-Hybrid2D-radix4,0,4,64,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint64,forward,,,hybrid2d,radix4,,fused,,,0,named-barrier,,,,,,,,,,,,16,65536,64,1,65536,1000,100,5.460704,0.277586,5.111072,,,,,-1,natural,,,,,,64,1152921504606584833,60,8,4,256,0,230559.241454,5898.964470,15109930447.915117,shoup +fwht20_online,fwht-fp32-fwd-log20,quick,butterfly,cuButterfly-online-radix4,0,4,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,10,1,0,0,20,1048576,4,1,1048576,1000,100,2.767616,0.319508,2.598016,12519.230197,131.273643,13127364323.071751,0.000000,-1,,,,,,,,,,,,,,,,, +fft14_cufft,fft-fp32-fwd-log14,quick,fft-library,cuFFT,1,4,256,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,14,16384,256,1,16384,1000,100,,0.121610239,,2105085.902249996,241.428091957,34489727422.463935852,,-1,,cufft,10900,1.797128000,0.000000000,0.000000000,,,,,,,,,,, +fwht8_shared,fwht-fp32-fwd-log8,quick,butterfly,cuButterfly-shared-radix4,0,4,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,temporal-tile,radix4,four-mul,table,shared,scalar,0,named-barrier,128,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,2.760928,0.048476,2.627296,337980543.124224,346.092076,86523019039.801437,0.000000,-1,,,,,,,,,,,,,,,,, +ntt16_60_r4,ntt-u60-natural-log16,quick,ntt,cuNTT-Hybrid2D-radix4,0,1,64,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint64,forward,,,hybrid2d,radix4,,fused,,,0,named-barrier,,,,,,,,,,,,16,65536,64,1,65536,1000,100,5.451840,0.276982,5.108576,,,,,-1,natural,,,,,,64,1152921504606584833,60,8,4,256,0,231062.162167,5905.476853,15142889859.745329,shoup +fft16_fp64_cufft,fft-fp64-fwd-log16,full,butterfly,cuFFT,1,1,64,1,0.000000,Tesla V100-SXM2-16GB,7.0,fft,fp64,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,8,8,0,0,0,0,0,0,16,65536,64,1,65536,1000,100,10.933280,0.342712,10.125984,186745.551835,97.908452,12238556485.053068,0.000000,-1,,,,,,,,,,,,,,,,, +fft12_inverse_cufft,fft-fp32-inverse-log12,full,butterfly,cuFFT,1,1,1024,1,0.000000,Tesla V100-SXM2-16GB,7.0,fft,fp32,inverse,inverse,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,8,8,0,0,0,0,0,0,12,4096,1024,1,4096,1000,100,5.464992,0.172861,5.106944,5923819.611423,145.583791,24263965128.388992,0.000000,-1,,,,,,,,,,,,,,,,, +fft20_vkfft,fft-fp32-fwd-log20,quick,fft-library,VkFFT,0,1,4,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,20,1048576,4,1,1048576,1000,100,,0.206807047,,19341.700660283,202.812431116,20281243111.557331085,,-1,,vkfft,10304,787.599872000,0.000000000,0.000000000,,,,,,,,,,, +fft14_cub,fft-fp32-fwd-log14,quick,butterfly,cuButterfly-cuFFTDx-direct,0,4,256,1,0.000095,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,8,8,0,0,0,0,0,0,14,16384,256,1,16384,1000,100,5.523616,0.120934,5.117056,2116850.179835,242.777313,34682473346.417648,0.000000,-1,,,,,,,,,,,,,,,,, +fft12_inverse_cub,fft-fp32-inverse-log12,full,butterfly,cuButterfly-cuFFTDx-direct,0,1,1024,1,0.000000,Tesla V100-SXM2-16GB,7.0,fft,fp32,inverse,inverse,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,8,8,0,0,0,0,0,0,12,4096,1024,1,4096,1000,100,5.459872,0.088125,5.107296,11619800.469327,285.568216,47594702722.364128,0.000000,-1,,,,,,,,,,,,,,,,, +xor20_online,xor-u32-fwd-log20,quick,butterfly,cuButterfly-online-radix4,0,4,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,10,1,0,0,20,1048576,4,1,1048576,1000,100,2.781344,0.318884,2.593248,12543.752756,131.530781,13153078089.718042,0.000000,-1,,,,,,,,,,,,,,,,, +fft8_stride_cufft,fft-fp32-stride2-log8,full,butterfly,cuFFT,1,2,16384,1,0.000007,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,8,8,0,0,0,0,0,0,8,256,16384,2,518,1000,100,10.995104,0.171500,10.229600,95533794.779070,97.826606,24456651463.442005,0.000000,-1,,,,,,,,,,,,,,,,, +fwht15_warp,fwht-fp32-fwd-log15,quick,butterfly,cuButterfly-warp-register,0,2,128,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,temporal-tile,radix2,four-mul,table,warp-register,scalar,0,named-barrier,256,0,0,8,8,0,0,0,0,0,0,15,32768,128,1,32768,1000,100,2.779392,0.064748,2.603680,1976909.701143,485.845328,64779377087.040733,0.000000,-1,,,,,,,,,,,,,,,,, +fwht15_online,fwht-fp32-fwd-log15,quick,butterfly,cuButterfly-online-radix4,0,3,128,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,8,1,0,0,15,32768,128,1,32768,1000,100,2.764064,0.318188,2.606368,402278.486732,98.863961,13181861453.234652,0.000000,-1,,,,,,,,,,,,,,,,, +fft20_vkfft,fft-fp32-fwd-log20,quick,fft-library,VkFFT,0,5,4,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,20,1048576,4,1,1048576,1000,100,,0.205854714,,19431.180000168,203.750689999,20375068999.856094360,,-1,,vkfft,10304,793.155887000,0.000000000,0.000000000,,,,,,,,,,, +xor12_inverse,xor-u32-inverse-log12,full,butterfly,cuButterfly-online-radix4,0,4,1024,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,inverse,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,6,1,0,0,12,4096,1024,1,4096,1000,100,2.764704,0.354191,2.611776,2891092.520545,71.051490,11841914964.153713,0.000000,-1,,,,,,,,,,,,,,,,, +fft12_inverse_cub,fft-fp32-inverse-log12,full,butterfly,cuButterfly-cuFFTDx-direct,0,3,1024,1,0.000000,Tesla V100-SXM2-16GB,7.0,fft,fp32,inverse,inverse,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,8,8,0,0,0,0,0,0,12,4096,1024,1,4096,1000,100,5.457984,0.088125,5.107584,11619800.469327,285.568216,47594702722.364128,0.000000,-1,,,,,,,,,,,,,,,,, +xor8_r4,xor-u32-fwd-log8,quick,butterfly,cuButterfly-radix4,0,2,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,forward,none,out-of-place,temporal-tile,radix4,four-mul,table,shared,scalar,0,named-barrier,128,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,2.771296,0.047749,2.620352,343126763.877919,351.361806,87840451552.747177,0.000000,-1,,,,,,,,,,,,,,,,, +fft18_vkfft,fft-fp32-fwd-log18,quick,fft-library,VkFFT,0,3,16,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,18,262144,16,1,262144,1000,100,,0.201082885,,79569.178544889,187.727244664,20858582740.471263885,,-1,,vkfft,10304,329.703367000,0.000000000,0.000000000,,,,,,,,,,, +fft12_inverse_cub,fft-fp32-inverse-log12,full,butterfly,cuButterfly-cuFFTDx-direct,0,5,1024,1,0.000000,Tesla V100-SXM2-16GB,7.0,fft,fp32,inverse,inverse,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,8,8,0,0,0,0,0,0,12,4096,1024,1,4096,1000,100,5.459296,0.087818,5.106016,11660447.414706,286.567156,47761192610.636765,0.000000,-1,,,,,,,,,,,,,,,,, +ntt20_60_compact,ntt-u60-bitrev-log20,quick,ntt,cuNTT-compact-stage,0,1,4,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint64,forward,,,compact-stage,radix2,,fused,,,0,named-barrier,,,,,,,,,,,,20,1048576,4,1,1048576,1000,100,5.456288,0.341801,5.103008,,,,,-1,bit-reversed,,,,,,64,1152921504577486849,60,0,0,256,0,11702.717349,366.935561,12271188546.534697,shoup +fft8_cub,fft-fp32-fwd-log8,quick,butterfly,cuButterfly-cuFFTDx,0,4,16384,1,0.000008,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,temporal-tile,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,5.472736,0.084306,5.118528,194339869.666580,199.004027,49751006634.644554,0.000000,-1,,,,,,,,,,,,,,,,, +xor8_r4,xor-u32-fwd-log8,quick,butterfly,cuButterfly-radix4,0,1,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,forward,none,out-of-place,temporal-tile,radix4,four-mul,table,shared,scalar,0,named-barrier,128,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,2.771872,0.047770,2.625536,342979645.184681,351.211157,87802789167.278244,0.000000,-1,,,,,,,,,,,,,,,,, +ntt12_30_hybrid,ntt-u30-natural-log12,quick,ntt,cuNTT-Hybrid2D-radix4,0,4,1024,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint32,forward,,,hybrid2d,radix4,,fused,,,0,named-barrier,,,,,,,,,,,,12,4096,1024,1,4096,1000,100,2.815488,0.140012,2.619520,,,,,-1,natural,,,,,,32,1073692673,30,6,4,256,0,7313683.944703,183676.485342,29956849437.501480,shoup +fwht8_shared,fwht-fp32-fwd-log8,quick,butterfly,cuButterfly-shared-radix4,0,2,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,temporal-tile,radix4,four-mul,table,shared,scalar,0,named-barrier,128,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,2.767616,0.048466,2.630624,338051984.213032,346.165232,86541307958.536118,0.000000,-1,,,,,,,,,,,,,,,,, +fwht8_warp,fwht-fp32-fwd-log8,quick,butterfly,cuButterfly-warp-register,0,1,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,temporal-tile,radix2,four-mul,table,warp-register,scalar,0,named-barrier,32,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,2.765664,0.042732,2.600960,383417207.744806,392.619221,98154805182.670380,0.000000,-1,,,,,,,,,,,,,,,,, +fft14_vkfft,fft-fp32-fwd-log14,quick,fft-library,VkFFT,0,4,256,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,14,16384,256,1,16384,1000,100,,0.171765760,,1490401.815909683,170.931203463,24418743351.864253998,,-1,,vkfft,10304,483.242424000,0.000000000,0.000000000,,,,,,,,,,, +fft18_cufft,fft-fp32-fwd-log18,quick,fft-library,cuFFT,1,4,16,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,18,262144,16,1,262144,1000,100,,0.211384311,,75691.520814428,178.578702291,19842078032.377395630,,-1,,cufft,10900,2.201971000,0.000000000,0.000000000,,,,,,,,,,, +fft16_fp64_cufft,fft-fp64-fwd-log16,full,butterfly,cuFFT,1,4,64,1,0.000000,Tesla V100-SXM2-16GB,7.0,fft,fp64,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,8,8,0,0,0,0,0,0,16,65536,64,1,65536,1000,100,10.913536,0.342938,10.118752,186622.878653,97.844136,12230516975.409567,0.000000,-1,,,,,,,,,,,,,,,,, +fft20_cufft,fft-fp32-fwd-log20,quick,fft-library,cuFFT,1,3,4,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,20,1048576,4,1,1048576,1000,100,,0.209950715,,19052.090364251,199.775647058,19977564705.785293579,,-1,,cufft,10900,2.330321000,0.000000000,0.000000000,,,,,,,,,,, +xor8_r4,xor-u32-fwd-log8,quick,butterfly,cuButterfly-radix4,0,4,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,forward,none,out-of-place,temporal-tile,radix4,four-mul,table,shared,scalar,0,named-barrier,128,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,2.776896,0.047759,2.614592,343053161.999721,351.286438,87821609471.928665,0.000000,-1,,,,,,,,,,,,,,,,, +xor20_hier,xor-u32-fwd-log20,quick,butterfly,cuButterfly-hierarchical-radix4,0,4,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,forward,none,out-of-place,hierarchical,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,10,0,0,0,20,1048576,4,1,1048576,1000,100,2.766656,0.486830,2.597952,8216.419576,86.155404,8615540373.429674,0.000000,-1,,,,,,,,,,,,,,,,, +fwht15_warp,fwht-fp32-fwd-log15,quick,butterfly,cuButterfly-warp-register,0,1,128,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,temporal-tile,radix2,four-mul,table,warp-register,scalar,0,named-barrier,256,0,0,8,8,0,0,0,0,0,0,15,32768,128,1,32768,1000,100,2.764096,0.064666,2.600384,1979414.073303,486.460803,64861440354.005806,0.000000,-1,,,,,,,,,,,,,,,,, +fft14_cub,fft-fp32-fwd-log14,quick,butterfly,cuButterfly-cuFFTDx-direct,0,5,256,1,0.000095,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,8,8,0,0,0,0,0,0,14,16384,256,1,16384,1000,100,5.553888,0.121119,5.109344,2113628.731889,242.407852,34629693143.265564,0.000000,-1,,,,,,,,,,,,,,,,, +fft18_cufft,fft-fp32-fwd-log18,quick,fft-library,cuFFT,1,2,16,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,18,262144,16,1,262144,1000,100,,0.211343363,,75706.186266628,178.613302434,19845922492.678810120,,-1,,cufft,10900,2.267361000,0.000000000,0.000000000,,,,,,,,,,, +fwht8_warp,fwht-fp32-fwd-log8,quick,butterfly,cuButterfly-warp-register,0,2,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,temporal-tile,radix2,four-mul,table,warp-register,scalar,0,named-barrier,32,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,2.775936,0.042742,2.622752,383325341.904111,392.525150,98131287527.452530,0.000000,-1,,,,,,,,,,,,,,,,, +ntt12_30_r2,ntt-u30-natural-log12,quick,ntt,cuNTT-Hybrid2D-radix2,1,1,1024,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint32,forward,,,hybrid2d,radix2,,fused,,,0,named-barrier,,,,,,,,,,,,12,4096,1024,1,4096,1000,100,2.834400,0.164229,2.627712,,,,,-1,natural,,,,,,32,1073692673,30,6,4,256,0,6235191.238727,182001.052976,25539343313.827587,shoup +fwht20_hier,fwht-fp32-fwd-log20,quick,butterfly,cuButterfly-hierarchical-radix4,0,3,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,hierarchical,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,10,0,0,0,20,1048576,4,1,1048576,1000,100,2.770752,0.488079,2.598400,8195.388401,85.934876,8593487587.905790,0.000000,-1,,,,,,,,,,,,,,,,, +fft18_cufft,fft-fp32-fwd-log18,quick,fft-library,cuFFT,1,1,16,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,18,262144,16,1,262144,1000,100,,0.211046398,,75812.713106835,178.864630782,19873847864.678058624,,-1,,cufft,10900,1.903791000,0.000000000,0.000000000,,,,,,,,,,, +fft12_inverse_cufft,fft-fp32-inverse-log12,full,butterfly,cuFFT,1,4,1024,1,0.000000,Tesla V100-SXM2-16GB,7.0,fft,fp32,inverse,inverse,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,8,8,0,0,0,0,0,0,12,4096,1024,1,4096,1000,100,5.465024,0.172933,5.101504,5921364.400283,145.523452,24253908583.558353,0.000000,-1,,,,,,,,,,,,,,,,, +fft18_cub,fft-fp32-fwd-log18,quick,butterfly,cuButterfly-cuFFTDx-online,0,1,16,1,0.000512,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,128,256,256,8,8,4,4,9,1,0,0,18,262144,16,1,262144,1000,100,5.454144,0.205015,5.100288,78043.051601,184.126659,20458517718.808109,0.000000,-1,,,,,,,,,,,,,,,,, +fwht8_warp,fwht-fp32-fwd-log8,quick,butterfly,cuButterfly-warp-register,0,4,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,temporal-tile,radix2,four-mul,table,warp-register,scalar,0,named-barrier,32,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,2.766656,0.042732,2.627680,383417207.744806,392.619221,98154805182.670380,0.000000,-1,,,,,,,,,,,,,,,,, +fft14_cufft,fft-fp32-fwd-log14,quick,fft-library,cuFFT,1,3,256,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,14,16384,256,1,16384,1000,100,,0.125224963,,2044320.830395641,234.459067396,33494152485.202182770,,-1,,cufft,10900,1.753801000,0.000000000,0.000000000,,,,,,,,,,, +fwht20_online,fwht-fp32-fwd-log20,quick,butterfly,cuButterfly-online-radix4,0,2,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,10,1,0,0,20,1048576,4,1,1048576,1000,100,2.763584,0.319160,2.629568,12532.885421,131.416829,13141682863.452171,0.000000,-1,,,,,,,,,,,,,,,,, +ntt16_60_r2,ntt-u60-natural-log16,quick,ntt,cuNTT-Hybrid2D-radix2,0,4,64,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint64,forward,,,hybrid2d,radix2,,fused,,,0,named-barrier,,,,,,,,,,,,16,65536,64,1,65536,1000,100,5.450912,0.305428,5.111040,,,,,-1,natural,,,,,,64,1152921504606584833,60,8,4,256,0,209541.693748,5889.183642,13732524441.463753,shoup +xor12_inverse,xor-u32-inverse-log12,full,butterfly,cuButterfly-online-radix4,0,5,1024,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,inverse,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,6,1,0,0,12,4096,1024,1,4096,1000,100,2.772448,0.354130,2.610880,2891594.213671,71.063819,11843969899.194689,0.000000,-1,,,,,,,,,,,,,,,,, +fft8_vkfft,fft-fp32-fwd-log8,quick,fft-library,VkFFT,0,4,16384,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,8,256,16384,1,256,1000,100,,0.083537921,,196126498.519211531,200.833534484,50208383620.918151855,,-1,,vkfft,10304,204.136992000,0.000000000,0.000000000,,,,,,,,,,, +fft18_cufft,fft-fp32-fwd-log18,quick,fft-library,cuFFT,1,5,16,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,18,262144,16,1,262144,1000,100,,0.211292148,,75724.536756247,178.656596671,19850732963.429656982,,-1,,cufft,10900,1.897423000,0.000000000,0.000000000,,,,,,,,,,, +xor8_r4,xor-u32-fwd-log8,quick,butterfly,cuButterfly-radix4,0,5,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,forward,none,out-of-place,temporal-tile,radix4,four-mul,table,shared,scalar,0,named-barrier,128,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,2.763872,0.047780,2.621952,342906106.401127,351.135853,87783963238.688507,0.000000,-1,,,,,,,,,,,,,,,,, +fft14_vkfft,fft-fp32-fwd-log14,quick,fft-library,VkFFT,0,2,256,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,14,16384,256,1,16384,1000,100,,0.171509758,,1492626.446014601,171.186341841,24455191691.503215790,,-1,,vkfft,10304,366.086846000,0.000000000,0.000000000,,,,,,,,,,, +fft14_cub,fft-fp32-fwd-log14,quick,butterfly,cuButterfly-cuFFTDx-direct,0,1,256,1,0.000095,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,8,8,0,0,0,0,0,0,14,16384,256,1,16384,1000,100,5.521344,0.121252,5.105184,2111308.099159,242.141703,34591671896.616882,0.000000,-1,,,,,,,,,,,,,,,,, +fwht20_hier,fwht-fp32-fwd-log20,quick,butterfly,cuButterfly-hierarchical-radix4,0,4,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,hierarchical,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,10,0,0,0,20,1048576,4,1,1048576,1000,100,2.770528,0.488038,2.591040,8196.076027,85.942086,8594208616.157986,0.000000,-1,,,,,,,,,,,,,,,,, +fft8_cufft,fft-fp32-fwd-log8,quick,fft-library,cuFFT,1,5,16384,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,8,256,16384,1,256,1000,100,,0.083824642,,195455651.328582168,200.146586960,50036646740.117034912,,-1,,cufft,10900,1.811125000,0.000000000,0.000000000,,,,,,,,,,, +fft20_cufft,fft-fp32-fwd-log20,quick,fft-library,cuFFT,1,2,4,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,20,1048576,4,1,1048576,1000,100,,0.209879041,,19058.596734169,199.843871291,19984387129.127513885,,-1,,cufft,10900,1.818608000,0.000000000,0.000000000,,,,,,,,,,, +fft8_cub,fft-fp32-fwd-log8,quick,butterfly,cuButterfly-cuFFTDx,0,5,16384,1,0.000008,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,temporal-tile,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,5.456288,0.084296,5.106560,194363453.653734,199.028177,49757044135.355789,0.000000,-1,,,,,,,,,,,,,,,,, +ntt16_60_r2,ntt-u60-natural-log16,quick,ntt,cuNTT-Hybrid2D-radix2,0,1,64,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint64,forward,,,hybrid2d,radix2,,fused,,,0,named-barrier,,,,,,,,,,,,16,65536,64,1,65536,1000,100,5.451296,0.305193,5.102496,,,,,-1,natural,,,,,,64,1152921504606584833,60,8,4,256,0,209703.383706,5893.736858,13743120954.544653,shoup +fft18_cufft,fft-fp32-fwd-log18,quick,fft-library,cuFFT,1,3,16,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,18,262144,16,1,262144,1000,100,,0.211353600,,75702.519370827,178.604651142,19844961237.946090698,,-1,,cufft,10900,1.906940000,0.000000000,0.000000000,,,,,,,,,,, +fft12_inverse_cufft,fft-fp32-inverse-log12,full,butterfly,cuFFT,1,3,1024,1,0.000000,Tesla V100-SXM2-16GB,7.0,fft,fp32,inverse,inverse,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,8,8,0,0,0,0,0,0,12,4096,1024,1,4096,1000,100,5.471488,0.172892,5.105888,5922767.347583,145.557930,24259655055.700985,0.000000,-1,,,,,,,,,,,,,,,,, +ntt12_30_hybrid,ntt-u30-natural-log12,quick,ntt,cuNTT-Hybrid2D-radix4,0,2,1024,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint32,forward,,,hybrid2d,radix4,,fused,,,0,named-barrier,,,,,,,,,,,,12,4096,1024,1,4096,1000,100,2.812800,0.139776,2.599808,,,,,-1,natural,,,,,,32,1073692673,30,6,4,256,0,7326006.993661,184425.287543,30007324646.034645,shoup +fwht12_fp64,fwht-fp64-fwd-log12,full,butterfly,cuButterfly-online-radix4,0,5,1024,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp64,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,6,1,0,0,12,4096,1024,1,4096,1000,100,5.497568,0.372603,5.115872,2748234.259480,67.540605,11256767526.831722,0.000000,-1,,,,,,,,,,,,,,,,, +fwht8_warp,fwht-fp32-fwd-log8,quick,butterfly,cuButterfly-warp-register,0,3,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,temporal-tile,radix2,four-mul,table,warp-register,scalar,0,named-barrier,32,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,2.769152,0.042813,2.624352,382683578.158379,391.867984,97966996008.544937,0.000000,-1,,,,,,,,,,,,,,,,, +fft8_cub,fft-fp32-fwd-log8,quick,butterfly,cuButterfly-cuFFTDx,0,3,16384,1,0.000008,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,temporal-tile,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,5.456768,0.084183,5.099552,194623514.179532,199.294479,49823619629.960091,0.000000,-1,,,,,,,,,,,,,,,,, +fft8_vkfft,fft-fp32-fwd-log8,quick,fft-library,VkFFT,0,2,16384,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,8,256,16384,1,256,1000,100,,0.083517440,,196174596.180514753,200.882786489,50220696622.211776733,,-1,,vkfft,10304,202.411442000,0.000000000,0.000000000,,,,,,,,,,, +fft8_stride_cub,fft-fp32-stride2-log8,full,butterfly,cuButterfly-scalar,0,3,16384,1,0.000005,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,temporal-tile,radix4,four-mul,table,shared,scalar,0,named-barrier,128,0,0,8,8,0,0,0,0,0,0,8,256,16384,2,518,1000,100,10.966016,0.172646,10.221408,94899167.811371,97.176748,24294186959.711048,0.000000,-1,,,,,,,,,,,,,,,,, +fft20_cufft,fft-fp32-fwd-log20,quick,fft-library,cuFFT,1,5,4,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,20,1048576,4,1,1048576,1000,100,,0.210554883,,18997.422169512,199.202409488,19920240948.818264008,,-1,,cufft,10900,1.950727000,0.000000000,0.000000000,,,,,,,,,,, +fft8_stride_cub,fft-fp32-stride2-log8,full,butterfly,cuButterfly-scalar,0,4,16384,1,0.000005,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,temporal-tile,radix4,four-mul,table,shared,scalar,0,named-barrier,128,0,0,8,8,0,0,0,0,0,0,8,256,16384,2,518,1000,100,10.978624,0.172564,10.220128,94944213.872036,97.222875,24305718751.241280,0.000000,-1,,,,,,,,,,,,,,,,, +fft8_cufft,fft-fp32-fwd-log8,quick,fft-library,cuFFT,1,2,16384,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,8,256,16384,1,256,1000,100,,0.083834879,,195431784.190846741,200.122147011,50030536752.856765747,,-1,,cufft,10900,1.765640000,0.000000000,0.000000000,,,,,,,,,,, +fft18_vkfft,fft-fp32-fwd-log18,quick,fft-library,VkFFT,0,4,16,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,18,262144,16,1,262144,1000,100,,0.201011196,,79597.556434634,187.794196506,20866021834.000671387,,-1,,vkfft,10304,332.756321000,0.000000000,0.000000000,,,,,,,,,,, +fft3_mixed,fft-mixed-fwd-log3,full,butterfly,cuButterfly-WMMA,0,1,524288,1,0.000790,Tesla V100-SXM2-16GB,7.0,fft,fp16-fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,table,shared,wmma-dft8,0,named-barrier,256,0,0,8,8,0,0,0,0,0,0,3,8,524288,1,8,1000,100,5.498016,0.086968,5.118208,6028494218.356180,72.341931,48227953746.849442,0.000000,-1,,,,,,,,,,,,,,,,, +fwht20_hier,fwht-fp32-fwd-log20,quick,butterfly,cuButterfly-hierarchical-radix4,0,2,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,hierarchical,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,10,0,0,0,20,1048576,4,1,1048576,1000,100,2.767648,0.488202,2.621792,8193.325715,85.913247,8591324704.414026,0.000000,-1,,,,,,,,,,,,,,,,, +fft14_cub,fft-fp32-fwd-log14,quick,butterfly,cuButterfly-cuFFTDx-direct,0,2,256,1,0.000095,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,8,8,0,0,0,0,0,0,14,16384,256,1,16384,1000,100,5.531936,0.121129,5.101632,2113449.970580,242.387350,34626764317.982903,0.000000,-1,,,,,,,,,,,,,,,,, +fwht20_hier,fwht-fp32-fwd-log20,quick,butterfly,cuButterfly-hierarchical-radix4,0,1,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,hierarchical,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,10,0,0,0,20,1048576,4,1,1048576,1000,100,2.782592,0.488008,2.608288,8196.592073,85.947497,8594749729.192642,0.000000,-1,,,,,,,,,,,,,,,,, +fft20_cub,fft-fp32-fwd-log20,quick,butterfly,cuButterfly-cuFFTDx-online,0,5,4,1,0.001242,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,128,512,512,8,8,4,4,10,1,0,0,20,1048576,4,1,1048576,1000,100,5.467040,0.235479,5.113856,16986.650788,178.117943,17811794336.210011,0.000000,-1,,,,,,,,,,,,,,,,, +fwht15_online,fwht-fp32-fwd-log15,quick,butterfly,cuButterfly-online-radix4,0,5,128,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,8,1,0,0,15,32768,128,1,32768,1000,100,2.779008,0.316006,2.602752,405055.097438,99.546341,13272845432.846682,0.000000,-1,,,,,,,,,,,,,,,,, +fft18_vkfft,fft-fp32-fwd-log18,quick,fft-library,VkFFT,0,1,16,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,18,262144,16,1,262144,1000,100,,0.201205775,,79520.580305067,187.612587031,20845843003.491378784,,-1,,vkfft,10304,436.763764000,0.000000000,0.000000000,,,,,,,,,,, +fft16_fp64_cufft,fft-fp64-fwd-log16,full,butterfly,cuFFT,1,2,64,1,0.000000,Tesla V100-SXM2-16GB,7.0,fft,fp64,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,8,8,0,0,0,0,0,0,16,65536,64,1,65536,1000,100,10.955168,0.342804,10.123392,186695.336797,97.882125,12235265592.359299,0.000000,-1,,,,,,,,,,,,,,,,, +xor20_online,xor-u32-fwd-log20,quick,butterfly,cuButterfly-online-radix4,0,3,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,10,1,0,0,20,1048576,4,1,1048576,1000,100,2.774592,0.319345,2.600416,12525.652545,131.340986,13134098643.127274,0.000000,-1,,,,,,,,,,,,,,,,, +fft16_fp64_cub,fft-fp64-fwd-log16,full,butterfly,cuButterfly-scalar-online,0,1,64,1,0.000000,Tesla V100-SXM2-16GB,7.0,fft,fp64,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,8,1,0,0,16,65536,64,1,65536,1000,100,10.941472,0.533668,10.120544,119924.791533,62.875129,7859391137.913611,0.000000,-1,,,,,,,,,,,,,,,,, +fft14_cufft,fft-fp32-fwd-log14,quick,fft-library,cuFFT,1,5,256,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,14,16384,256,1,16384,1000,100,,0.121292800,,2110595.192867854,242.059941480,34579991639.946914673,,-1,,cufft,10900,1.826137000,0.000000000,0.000000000,,,,,,,,,,, +fwht20_online,fwht-fp32-fwd-log20,quick,butterfly,cuButterfly-online-radix4,0,3,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,10,1,0,0,20,1048576,4,1,1048576,1000,100,2.775200,0.319560,2.600576,12517.223177,131.252598,13125259810.484056,0.000000,-1,,,,,,,,,,,,,,,,, +fwht15_online,fwht-fp32-fwd-log15,quick,butterfly,cuButterfly-online-radix4,0,2,128,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,8,1,0,0,15,32768,128,1,32768,1000,100,2.762208,0.316273,2.594080,404714.102033,99.462538,13261671695.430296,0.000000,-1,,,,,,,,,,,,,,,,, +fft14_cufft,fft-fp32-fwd-log14,quick,fft-library,cuFFT,1,1,256,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,14,16384,256,1,16384,1000,100,,0.120698884,,2120980.668928816,243.251030958,34750147279.729728699,,-1,,cufft,10900,1.837426000,0.000000000,0.000000000,,,,,,,,,,, +fft8_cufft,fft-fp32-fwd-log8,quick,fft-library,cuFFT,1,3,16384,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,8,256,16384,1,256,1000,100,,0.083742723,,195646850.719739705,200.342375137,50085593784.253364563,,-1,,cufft,10900,1.866854000,0.000000000,0.000000000,,,,,,,,,,, +fft20_cub,fft-fp32-fwd-log20,quick,butterfly,cuButterfly-cuFFTDx-online,0,4,4,1,0.001242,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,128,512,512,8,8,4,4,10,1,0,0,20,1048576,4,1,1048576,1000,100,5.458368,0.235397,5.103776,16992.560596,178.179912,17817991219.896851,0.000000,-1,,,,,,,,,,,,,,,,, +xor8_r4,xor-u32-fwd-log8,quick,butterfly,cuButterfly-radix4,0,3,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,forward,none,out-of-place,temporal-tile,radix4,four-mul,table,shared,scalar,0,named-barrier,128,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,2.772160,0.047718,2.599680,343347625.106768,351.587968,87896992027.332626,0.000000,-1,,,,,,,,,,,,,,,,, +fft20_vkfft,fft-fp32-fwd-log20,quick,fft-library,VkFFT,0,4,4,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,20,1048576,4,1,1048576,1000,100,,0.206274569,,19391.629412783,203.335972031,20333597203.138195038,,-1,,vkfft,10304,797.613769000,0.000000000,0.000000000,,,,,,,,,,, +fft14_cufft,fft-fp32-fwd-log14,quick,fft-library,cuFFT,1,2,256,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,14,16384,256,1,16384,1000,100,,0.121640958,,2104554.291880996,241.367122627,34481017518.178230286,,-1,,cufft,10900,1.906798000,0.000000000,0.000000000,,,,,,,,,,, +ntt12_30_r2,ntt-u30-natural-log12,quick,ntt,cuNTT-Hybrid2D-radix2,1,2,1024,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint32,forward,,,hybrid2d,radix2,,fused,,,0,named-barrier,,,,,,,,,,,,12,4096,1024,1,4096,1000,100,2.821152,0.163359,2.599744,,,,,-1,natural,,,,,,32,1073692673,30,6,4,256,0,6268412.963491,183372.721907,25675419498.457104,shoup +xor12_inverse,xor-u32-inverse-log12,full,butterfly,cuButterfly-online-radix4,0,1,1024,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,inverse,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,6,1,0,0,12,4096,1024,1,4096,1000,100,2.812928,0.354304,2.607168,2890173.282853,71.028899,11838149766.566093,0.000000,-1,,,,,,,,,,,,,,,,, +fft8_stride_cufft,fft-fp32-stride2-log8,full,butterfly,cuFFT,1,4,16384,1,0.000007,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,8,8,0,0,0,0,0,0,8,256,16384,2,518,1000,100,11.018656,0.171039,10.219360,95791176.900518,98.090165,24522541286.532555,0.000000,-1,,,,,,,,,,,,,,,,, +xor20_online,xor-u32-fwd-log20,quick,butterfly,cuButterfly-online-radix4,0,1,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,10,1,0,0,20,1048576,4,1,1048576,1000,100,2.791648,0.319304,2.601408,12527.258870,131.357830,13135782996.364214,0.000000,-1,,,,,,,,,,,,,,,,, +fft20_cub,fft-fp32-fwd-log20,quick,butterfly,cuButterfly-cuFFTDx-online,0,1,4,1,0.001242,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,128,512,512,8,8,4,4,10,1,0,0,20,1048576,4,1,1048576,1000,100,5.455968,0.235438,5.109568,16989.605178,178.148922,17814892239.159260,0.000000,-1,,,,,,,,,,,,,,,,, +fwht15_warp,fwht-fp32-fwd-log15,quick,butterfly,cuButterfly-warp-register,0,3,128,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,temporal-tile,radix2,four-mul,table,warp-register,scalar,0,named-barrier,256,0,0,8,8,0,0,0,0,0,0,15,32768,128,1,32768,1000,100,2.766368,0.064696,2.605184,1978474.219006,486.229824,64830643208.399300,0.000000,-1,,,,,,,,,,,,,,,,, +fft12_inverse_cub,fft-fp32-inverse-log12,full,butterfly,cuButterfly-cuFFTDx-direct,0,4,1024,1,0.000000,Tesla V100-SXM2-16GB,7.0,fft,fp32,inverse,inverse,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,8,8,0,0,0,0,0,0,12,4096,1024,1,4096,1000,100,5.462144,0.088064,5.107360,11627906.975359,285.767442,47627906971.070625,0.000000,-1,,,,,,,,,,,,,,,,, +fwht8_shared,fwht-fp32-fwd-log8,quick,butterfly,cuButterfly-shared-radix4,0,1,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,temporal-tile,radix4,four-mul,table,shared,scalar,0,named-barrier,128,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,2.792192,0.048404,2.609824,338481083.440785,346.604629,86651157360.840881,0.000000,-1,,,,,,,,,,,,,,,,, +fft20_cub,fft-fp32-fwd-log20,quick,butterfly,cuButterfly-cuFFTDx-online,0,3,4,1,0.001242,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,128,512,512,8,8,4,4,10,1,0,0,20,1048576,4,1,1048576,1000,100,5.455744,0.235459,5.114464,16988.126779,178.133420,17813342025.666275,0.000000,-1,,,,,,,,,,,,,,,,, +fft18_cub,fft-fp32-fwd-log18,quick,butterfly,cuButterfly-cuFFTDx-online,0,4,16,1,0.000512,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,128,256,256,8,8,4,4,9,1,0,0,18,262144,16,1,262144,1000,100,5.464512,0.205087,5.098432,78015.776781,184.062310,20451367788.510426,0.000000,-1,,,,,,,,,,,,,,,,, +xor12_inverse,xor-u32-inverse-log12,full,butterfly,cuButterfly-online-radix4,0,2,1024,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,inverse,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,6,1,0,0,12,4096,1024,1,4096,1000,100,2.766272,0.355000,2.625792,2884504.465727,70.889582,11814930291.618235,0.000000,-1,,,,,,,,,,,,,,,,, +fft12_inverse_cufft,fft-fp32-inverse-log12,full,butterfly,cuFFT,1,5,1024,1,0.000000,Tesla V100-SXM2-16GB,7.0,fft,fp32,inverse,inverse,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,8,8,0,0,0,0,0,0,12,4096,1024,1,4096,1000,100,5.455456,0.172913,5.102432,5922065.535669,145.540683,24256780434.099327,0.000000,-1,,,,,,,,,,,,,,,,, +fft8_stride_cufft,fft-fp32-stride2-log8,full,butterfly,cuFFT,1,5,16384,1,0.000007,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,8,8,0,0,0,0,0,0,8,256,16384,2,518,1000,100,10.975904,0.171315,10.225216,95636584.801572,97.931863,24482965709.202446,0.000000,-1,,,,,,,,,,,,,,,,, +fwht12_fp64,fwht-fp64-fwd-log12,full,butterfly,cuButterfly-online-radix4,0,2,1024,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp64,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,6,1,0,0,12,4096,1024,1,4096,1000,100,5.461024,0.374241,5.123584,2736202.606675,67.244915,11207485876.940342,0.000000,-1,,,,,,,,,,,,,,,,, +fwht20_hier,fwht-fp32-fwd-log20,quick,butterfly,cuButterfly-hierarchical-radix4,0,5,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,hierarchical,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,10,0,0,0,20,1048576,4,1,1048576,1000,100,2.782080,0.488110,2.606240,8194.872507,85.929466,8592946633.779652,0.000000,-1,,,,,,,,,,,,,,,,, +fft12_inverse_cufft,fft-fp32-inverse-log12,full,butterfly,cuFFT,1,2,1024,1,0.000000,Tesla V100-SXM2-16GB,7.0,fft,fp32,inverse,inverse,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,8,8,0,0,0,0,0,0,12,4096,1024,1,4096,1000,100,5.489664,0.172872,5.110592,5923468.815268,145.575170,24262528267.337357,0.000000,-1,,,,,,,,,,,,,,,,, +xor8_r2,xor-u32-fwd-log8,quick,butterfly,cuButterfly-radix2,0,1,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,forward,none,out-of-place,temporal-tile,radix2,four-mul,table,shared,scalar,0,named-barrier,128,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,2.780256,0.049766,2.598432,329218089.190211,337.119323,84279830832.693939,0.000000,-1,,,,,,,,,,,,,,,,, +xor20_hier,xor-u32-fwd-log20,quick,butterfly,cuButterfly-hierarchical-radix4,0,1,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,forward,none,out-of-place,hierarchical,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,10,0,0,0,20,1048576,4,1,1048576,1000,100,2.768384,0.486994,2.595424,8213.655093,86.126416,8612641602.905708,0.000000,-1,,,,,,,,,,,,,,,,, +fft18_cub,fft-fp32-fwd-log18,quick,butterfly,cuButterfly-cuFFTDx-online,0,5,16,1,0.000512,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,128,256,256,8,8,4,4,9,1,0,0,18,262144,16,1,262144,1000,100,5.458912,0.204933,5.105024,78074.251050,184.200268,20466696467.370895,0.000000,-1,,,,,,,,,,,,,,,,, +fwht15_warp,fwht-fp32-fwd-log15,quick,butterfly,cuButterfly-warp-register,0,4,128,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,temporal-tile,radix2,four-mul,table,warp-register,scalar,0,named-barrier,256,0,0,8,8,0,0,0,0,0,0,15,32768,128,1,32768,1000,100,2.765440,0.064707,2.625824,1978161.208470,486.152899,64820386479.143539,0.000000,-1,,,,,,,,,,,,,,,,, +xor20_online,xor-u32-fwd-log20,quick,butterfly,cuButterfly-online-radix4,0,2,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,10,1,0,0,20,1048576,4,1,1048576,1000,100,2.766144,0.319293,2.595392,12527.661100,131.362048,13136204765.233334,0.000000,-1,,,,,,,,,,,,,,,,, +ntt16_60_r2,ntt-u60-natural-log16,quick,ntt,cuNTT-Hybrid2D-radix2,0,3,64,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint64,forward,,,hybrid2d,radix2,,fused,,,0,named-barrier,,,,,,,,,,,,16,65536,64,1,65536,1000,100,5.462432,0.304835,5.093920,,,,,-1,natural,,,,,,64,1152921504606584833,60,8,4,256,0,209949.958499,5892.542120,13759280480.158772,shoup +fft14_vkfft,fft-fp32-fwd-log14,quick,fft-library,VkFFT,0,3,256,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,14,16384,256,1,16384,1000,100,,0.172011524,,1488272.374976805,170.686982141,24383854591.619976044,,-1,,vkfft,10304,373.873853000,0.000000000,0.000000000,,,,,,,,,,, +fft8_stride_cufft,fft-fp32-stride2-log8,full,butterfly,cuFFT,1,1,16384,1,0.000007,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,8,8,0,0,0,0,0,0,8,256,16384,2,518,1000,100,10.962944,0.171428,10.225152,95573737.794680,97.867508,24466876875.438183,0.000000,-1,,,,,,,,,,,,,,,,, +fft20_cufft,fft-fp32-fwd-log20,quick,fft-library,cuFFT,1,4,4,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,20,1048576,4,1,1048576,1000,100,,0.210063368,,19041.873109631,199.668511378,19966851137.804233551,,-1,,cufft,10900,1.901245000,0.000000000,0.000000000,,,,,,,,,,, +ntt20_60_compact,ntt-u60-bitrev-log20,quick,ntt,cuNTT-compact-stage,0,3,4,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint64,forward,,,compact-stage,radix2,,fused,,,0,named-barrier,,,,,,,,,,,,20,1048576,4,1,1048576,1000,100,5.449984,0.342088,5.115456,,,,,-1,bit-reversed,,,,,,64,1152921504577486849,60,0,0,256,0,11692.909483,366.719211,12260904254.369951,shoup +fft3_mixed,fft-mixed-fwd-log3,full,butterfly,cuButterfly-WMMA,0,2,524288,1,0.000790,Tesla V100-SXM2-16GB,7.0,fft,fp16-fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,table,shared,wmma-dft8,0,named-barrier,256,0,0,8,8,0,0,0,0,0,0,3,8,524288,1,8,1000,100,5.476288,0.087593,5.136224,5985503389.449726,71.826041,47884027115.597809,0.000000,-1,,,,,,,,,,,,,,,,, +fft16_fp64_cufft,fft-fp64-fwd-log16,full,butterfly,cuFFT,1,3,64,1,0.000000,Tesla V100-SXM2-16GB,7.0,fft,fp64,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,8,8,0,0,0,0,0,0,16,65536,64,1,65536,1000,100,10.927360,0.342784,10.121856,186706.487950,97.887971,12235996394.283634,0.000000,-1,,,,,,,,,,,,,,,,, +fft16_fp64_cub,fft-fp64-fwd-log16,full,butterfly,cuButterfly-scalar-online,0,4,64,1,0.000000,Tesla V100-SXM2-16GB,7.0,fft,fp64,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,8,1,0,0,16,65536,64,1,65536,1000,100,10.902336,0.535828,10.125696,119441.208226,62.621592,7827699022.289263,0.000000,-1,,,,,,,,,,,,,,,,, +fft12_inverse_cub,fft-fp32-inverse-log12,full,butterfly,cuButterfly-cuFFTDx-direct,0,2,1024,1,0.000000,Tesla V100-SXM2-16GB,7.0,fft,fp32,inverse,inverse,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,8,8,0,0,0,0,0,0,12,4096,1024,1,4096,1000,100,5.465792,0.088044,5.112384,11630611.986239,285.833920,47638986695.635551,0.000000,-1,,,,,,,,,,,,,,,,, +fft20_cub,fft-fp32-fwd-log20,quick,butterfly,cuButterfly-cuFFTDx-online,0,2,4,1,0.001242,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,128,512,512,8,8,4,4,10,1,0,0,20,1048576,4,1,1048576,1000,100,5.454720,0.235407,5.098432,16991.822721,178.172175,17817217501.459431,0.000000,-1,,,,,,,,,,,,,,,,, +fft8_cub,fft-fp32-fwd-log8,quick,butterfly,cuButterfly-cuFFTDx,0,1,16384,1,0.000008,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,temporal-tile,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,5.495424,0.084204,5.101952,194576191.218150,199.246020,49811504951.846397,0.000000,-1,,,,,,,,,,,,,,,,, +xor8_r2,xor-u32-fwd-log8,quick,butterfly,cuButterfly-radix2,0,5,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,forward,none,out-of-place,temporal-tile,radix2,four-mul,table,shared,scalar,0,named-barrier,128,0,0,8,8,0,0,0,0,0,0,8,256,16384,1,256,1000,100,2.793248,0.049807,2.601248,328947378.108746,336.842115,84210528795.839005,0.000000,-1,,,,,,,,,,,,,,,,, +fft18_vkfft,fft-fp32-fwd-log18,quick,fft-library,VkFFT,0,5,16,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,18,262144,16,1,262144,1000,100,,0.201041922,,79585.391161007,187.765495025,20862832780.510974884,,-1,,vkfft,10304,328.941849000,0.000000000,0.000000000,,,,,,,,,,, +fwht12_fp64,fwht-fp64-fwd-log12,full,butterfly,cuButterfly-online-radix4,0,3,1024,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp64,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,6,1,0,0,12,4096,1024,1,4096,1000,100,5.483712,0.374200,5.105600,2736502.244690,67.252279,11208713194.248619,0.000000,-1,,,,,,,,,,,,,,,,, +fwht15_warp,fwht-fp32-fwd-log15,quick,butterfly,cuButterfly-warp-register,0,5,128,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp32,forward,none,out-of-place,temporal-tile,radix2,four-mul,table,warp-register,scalar,0,named-barrier,256,0,0,8,8,0,0,0,0,0,0,15,32768,128,1,32768,1000,100,2.764544,0.064829,2.600768,1974411.658082,485.231409,64697521212.021248,0.000000,-1,,,,,,,,,,,,,,,,, +fft16_fp64_cub,fft-fp64-fwd-log16,full,butterfly,cuButterfly-scalar-online,0,2,64,1,0.000000,Tesla V100-SXM2-16GB,7.0,fft,fp64,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,8,1,0,0,16,65536,64,1,65536,1000,100,10.928704,0.534313,10.115680,119779.987336,62.799210,7849901250.079092,0.000000,-1,,,,,,,,,,,,,,,,, +xor20_hier,xor-u32-fwd-log20,quick,butterfly,cuButterfly-hierarchical-radix4,0,3,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,xor-zeta,uint32,forward,none,out-of-place,hierarchical,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,10,0,0,0,20,1048576,4,1,1048576,1000,100,2.779872,0.486861,2.597216,8215.900528,86.149961,8614996112.061834,0.000000,-1,,,,,,,,,,,,,,,,, +fft3_mixed,fft-mixed-fwd-log3,full,butterfly,cuButterfly-WMMA,0,4,524288,1,0.000790,Tesla V100-SXM2-16GB,7.0,fft,fp16-fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,table,shared,wmma-dft8,0,named-barrier,256,0,0,8,8,0,0,0,0,0,0,3,8,524288,1,8,1000,100,5.473920,0.087020,5.113888,6024947183.607057,72.299366,48199577468.856453,0.000000,-1,,,,,,,,,,,,,,,,, +fwht12_fp64,fwht-fp64-fwd-log12,full,butterfly,cuButterfly-online-radix4,0,1,1024,1,0.000000,Tesla V100-SXM2-16GB,7.0,fwht,fp64,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,0,0,8,8,0,0,6,1,0,0,12,4096,1024,1,4096,1000,100,5.480192,0.372787,5.104576,2746875.374930,67.507209,11251201535.713928,0.000000,-1,,,,,,,,,,,,,,,,, +fft8_stride_cub,fft-fp32-stride2-log8,full,butterfly,cuButterfly-scalar,0,5,16384,1,0.000005,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,temporal-tile,radix4,four-mul,table,shared,scalar,0,named-barrier,128,0,0,8,8,0,0,0,0,0,0,8,256,16384,2,518,1000,100,11.010112,0.172564,10.224000,94944213.872036,97.222875,24305718751.241280,0.000000,-1,,,,,,,,,,,,,,,,, +ntt16_60_r4,ntt-u60-natural-log16,quick,ntt,cuNTT-Hybrid2D-radix4,0,2,64,1,,Tesla V100-SXM2-16GB,7.0,ntt,uint64,forward,,,hybrid2d,radix4,,fused,,,0,named-barrier,,,,,,,,,,,,16,65536,64,1,65536,1000,100,5.481888,0.277780,5.108416,,,,,-1,natural,,,,,,64,1152921504606584833,60,8,4,256,0,230397.764304,5888.802278,15099347881.421764,shoup +fft8_vkfft,fft-fp32-fwd-log8,quick,fft-library,VkFFT,0,5,16384,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,8,256,16384,1,256,1000,100,,0.083548166,,196102449.787914634,200.808908583,50202227145.706146240,,-1,,vkfft,10304,269.378891000,0.000000000,0.000000000,,,,,,,,,,, +fft8_vkfft,fft-fp32-fwd-log8,quick,fft-library,VkFFT,0,1,16384,1,,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,in-place,,,,,,,,,,,,,,,,,,,,8,256,16384,1,256,1000,100,,0.083578885,,196030373.916807681,200.735102891,50183775722.702766418,,-1,,vkfft,10304,203.761641000,0.000000000,0.000000000,,,,,,,,,,, diff --git a/results/comprehensive_v100_full_report.md b/results/comprehensive_v100_full_report.md new file mode 100644 index 0000000..f022bfa --- /dev/null +++ b/results/comprehensive_v100_full_report.md @@ -0,0 +1,68 @@ +# Single-GPU Comprehensive Summary + +Every row uses the listed transform length and batch. `Mtransform/s` and +`Gpoint/s` are derived from the median resident kernel time. Ratios above one +mean higher throughput than `Basis`; groups without a declared reference use +their fastest internal implementation as the basis. + +## FFT Results + +| Numeric | Semantics | logN | N | Batch | Layout | Implementation | Design point | Median ms | Mtransform/s | Gpoint/s | vs basis | Basis | Stability | +|:--|:--|--:|--:|--:|:--|:--|:--|--:|--:|--:|--:|:--|:--| +| fp16-fp32 | forward | 3 | 8 | 524,288 | out-of-place, es=1, bs=8 | cuButterfly-WMMA | temporal-tile / wmma-dft8 / radix8 | 0.087020 | 6024.914 | 48.199 | 1.000x | cuButterfly-WMMA | stable | +| fp32 | forward | 8 | 256 | 16,384 | in-place, es=1, bs=256 | VkFFT | library | 0.083548 | 196.102 | 50.202 | 1.003x | cuFFT | stable | +| fp32 | forward | 8 | 256 | 16,384 | in-place, es=1, bs=256 | cuFFT | library | 0.083825 | 195.456 | 50.037 | 1.000x | cuFFT | stable | +| fp32 | forward | 8 | 256 | 16,384 | in-place, es=1, bs=256 | cuButterfly-cuFFTDx | temporal-tile / cufftdx-block | 0.084234 | 194.506 | 49.793 | 0.995x | cuFFT | stable | +| fp32 | forward | 8 | 256 | 16,384 | in-place, es=2, bs=518 | cuFFT | cufft | 0.171428 | 95.574 | 24.467 | 1.000x | cuFFT | stable | +| fp32 | forward | 8 | 256 | 16,384 | in-place, es=2, bs=518 | cuButterfly-scalar | temporal-tile / radix4 | 0.172636 | 94.905 | 24.296 | 0.993x | cuFFT | stable | +| fp32 | inverse, norm=inverse | 12 | 4,096 | 1,024 | out-of-place, es=1, bs=4096 | cuButterfly-cuFFTDx-direct | temporal-tile / cufftdx-direct | 0.088064 | 11.628 | 47.628 | 1.963x | cuFFT | stable | +| fp32 | inverse, norm=inverse | 12 | 4,096 | 1,024 | out-of-place, es=1, bs=4096 | cuFFT | cufft | 0.172892 | 5.923 | 24.260 | 1.000x | cuFFT | stable | +| fp32 | forward | 14 | 16,384 | 256 | in-place, es=1, bs=16384 | cuButterfly-cuFFTDx-direct | temporal-tile / cufftdx-direct | 0.121129 | 2.113 | 34.627 | 1.004x | cuFFT | stable | +| fp32 | forward | 14 | 16,384 | 256 | in-place, es=1, bs=16384 | cuFFT | library | 0.121610 | 2.105 | 34.490 | 1.000x | cuFFT | stable-with-outlier | +| fp32 | forward | 14 | 16,384 | 256 | in-place, es=1, bs=16384 | VkFFT | library | 0.171766 | 1.490 | 24.419 | 0.708x | cuFFT | stable | +| fp64 | forward | 16 | 65,536 | 64 | out-of-place, es=1, bs=65536 | cuFFT | cufft | 0.342804 | 0.187 | 12.235 | 1.000x | cuFFT | stable | +| fp64 | forward | 16 | 65,536 | 64 | out-of-place, es=1, bs=65536 | cuButterfly-scalar-online | online-reorder / radix4 | 0.534313 | 0.120 | 7.850 | 0.642x | cuFFT | stable | +| fp32 | forward | 18 | 262,144 | 16 | in-place, es=1, bs=262144 | VkFFT | library | 0.201083 | 0.080 | 20.859 | 1.051x | cuFFT | stable | +| fp32 | forward | 18 | 262,144 | 16 | in-place, es=1, bs=262144 | cuButterfly-cuFFTDx-online | online-reorder / cufftdx-block | 0.205087 | 0.078 | 20.451 | 1.031x | cuFFT | stable | +| fp32 | forward | 18 | 262,144 | 16 | in-place, es=1, bs=262144 | cuFFT | library | 0.211343 | 0.076 | 19.846 | 1.000x | cuFFT | stable | +| fp32 | forward | 20 | 1,048,576 | 4 | in-place, es=1, bs=1048576 | VkFFT | library | 0.206275 | 0.019 | 20.334 | 1.018x | cuFFT | stable | +| fp32 | forward | 20 | 1,048,576 | 4 | in-place, es=1, bs=1048576 | cuFFT | library | 0.210063 | 0.019 | 19.967 | 1.000x | cuFFT | stable | +| fp32 | forward | 20 | 1,048,576 | 4 | in-place, es=1, bs=1048576 | cuButterfly-cuFFTDx-online | online-reorder / cufftdx-block | 0.235438 | 0.017 | 17.815 | 0.892x | cuFFT | stable | + +## NTT Results + +| Numeric | Semantics | logN | N | Batch | Layout | Implementation | Design point | Median ms | Mtransform/s | Gpoint/s | vs basis | Basis | Stability | +|:--|:--|--:|--:|--:|:--|:--|:--|--:|--:|--:|--:|:--|:--| +| uint32/30-bit | forward | 12 | 4,096 | 1,024 | n/a, es=1, bs=4096, natural | cuNTT-Hybrid2D-radix4 | hybrid2d / radix4 | 0.140012 | 7.314 | 29.957 | 1.173x | cuNTT-Hybrid2D-radix2 | stable | +| uint32/30-bit | forward | 12 | 4,096 | 1,024 | n/a, es=1, bs=4096, natural | cuNTT-Hybrid2D-radix2 | hybrid2d / radix2 | 0.164291 | 6.233 | 25.530 | 1.000x | cuNTT-Hybrid2D-radix2 | stable | +| uint64/60-bit | inverse | 16 | 65,536 | 64 | n/a, es=1, bs=65536, natural | cuNTT-Hybrid2D-radix2 | hybrid2d / radix2 | 0.307671 | 0.208 | 13.632 | 1.000x | cuNTT-Hybrid2D-radix2 | stable | +| uint64/60-bit | forward | 16 | 65,536 | 64 | n/a, es=1, bs=65536, natural | cuNTT-Hybrid2D-radix4 | hybrid2d / radix4 | 0.277780 | 0.230 | 15.099 | 1.000x | cuNTT-Hybrid2D-radix4 | stable | +| uint64/60-bit | forward | 16 | 65,536 | 64 | n/a, es=1, bs=65536, natural | cuNTT-Hybrid2D-radix2 | hybrid2d / radix2 | 0.304835 | 0.210 | 13.759 | 0.911x | cuNTT-Hybrid2D-radix4 | stable | +| uint64/60-bit | forward | 20 | 1,048,576 | 4 | n/a, es=1, bs=1048576, bit-reversed | cuNTT-compact-stage | compact-stage / radix2 | 0.341924 | 0.012 | 12.267 | 1.000x | cuNTT-compact-stage | stable | + +## FWHT Results + +| Numeric | Semantics | logN | N | Batch | Layout | Implementation | Design point | Median ms | Mtransform/s | Gpoint/s | vs basis | Basis | Stability | +|:--|:--|--:|--:|--:|:--|:--|:--|--:|--:|--:|--:|:--|:--| +| fp32 | forward | 8 | 256 | 16,384 | out-of-place, es=1, bs=256 | cuButterfly-warp-register | temporal-tile / warp-register / radix2 | 0.042742 | 383.323 | 98.131 | 1.000x | cuButterfly-warp-register | stable | +| fp32 | forward | 8 | 256 | 16,384 | out-of-place, es=1, bs=256 | cuButterfly-shared-radix4 | temporal-tile / radix4 | 0.048466 | 338.051 | 86.541 | 0.882x | cuButterfly-warp-register | stable | +| fp64 | forward | 12 | 4,096 | 1,024 | out-of-place, es=1, bs=4096 | cuButterfly-online-radix4 | online-reorder / radix4 | 0.373197 | 2.744 | 11.239 | 1.000x | cuButterfly-online-radix4 | stable | +| fp32 | forward | 15 | 32,768 | 128 | out-of-place, es=1, bs=32768 | cuButterfly-warp-register | temporal-tile / warp-register / radix2 | 0.064707 | 1.978 | 64.820 | 1.000x | cuButterfly-warp-register | stable | +| fp32 | forward | 15 | 32,768 | 128 | out-of-place, es=1, bs=32768 | cuButterfly-online-radix4 | online-reorder / radix4 | 0.316396 | 0.405 | 13.257 | 0.205x | cuButterfly-warp-register | stable | +| fp32 | forward | 20 | 1,048,576 | 4 | out-of-place, es=1, bs=1048576 | cuButterfly-online-radix4 | online-reorder / radix4 | 0.319560 | 0.013 | 13.125 | 1.000x | cuButterfly-online-radix4 | stable | +| fp32 | forward | 20 | 1,048,576 | 4 | out-of-place, es=1, bs=1048576 | cuButterfly-hierarchical-radix4 | hierarchical / radix4 | 0.488079 | 0.008 | 8.593 | 0.655x | cuButterfly-online-radix4 | stable | + +## XOR-ZETA Results + +| Numeric | Semantics | logN | N | Batch | Layout | Implementation | Design point | Median ms | Mtransform/s | Gpoint/s | vs basis | Basis | Stability | +|:--|:--|--:|--:|--:|:--|:--|:--|--:|--:|--:|--:|:--|:--| +| uint32 | forward | 8 | 256 | 16,384 | out-of-place, es=1, bs=256 | cuButterfly-radix4 | temporal-tile / radix4 | 0.047759 | 343.056 | 87.822 | 1.000x | cuButterfly-radix4 | stable | +| uint32 | forward | 8 | 256 | 16,384 | out-of-place, es=1, bs=256 | cuButterfly-radix2 | temporal-tile / radix2 | 0.049766 | 329.221 | 84.281 | 0.960x | cuButterfly-radix4 | stable | +| uint32 | inverse | 12 | 4,096 | 1,024 | out-of-place, es=1, bs=4096 | cuButterfly-online-radix4 | online-reorder / radix4 | 0.354243 | 2.891 | 11.840 | 1.000x | cuButterfly-online-radix4 | stable | +| uint32 | forward | 20 | 1,048,576 | 4 | out-of-place, es=1, bs=1048576 | cuButterfly-online-radix4 | online-reorder / radix4 | 0.319304 | 0.013 | 13.136 | 1.000x | cuButterfly-online-radix4 | stable | +| uint32 | forward | 20 | 1,048,576 | 4 | out-of-place, es=1, bs=1048576 | cuButterfly-hierarchical-radix4 | hierarchical / radix4 | 0.486994 | 0.008 | 8.613 | 0.656x | cuButterfly-online-radix4 | stable | + +## External Coverage Gaps + +- **fwht / Dao-AILab FHT**: not-runnable; PyTorch is not installed in the active Python environment. Existing evidence: `results/external_dao_fht_v100_summary.csv`. +- **ntt / GPU-NTT**: not-runnable; the external comparator harness binary is not present. Existing evidence: `results/compact_stage_logN20.csv`. diff --git a/results/comprehensive_v100_full_summary.csv b/results/comprehensive_v100_full_summary.csv new file mode 100644 index 0000000..c2fd764 --- /dev/null +++ b/results/comprehensive_v100_full_summary.csv @@ -0,0 +1,38 @@ +case_id,group,implementation,reference,trials,median_kernel_ms,min_kernel_ms,max_kernel_ms,relative_range,central_relative_range,stability_class,correct,operator,precision,direction,normalization,placement,logN,N,performance_batch,element_stride,batch_stride,word_bits,modulus_bits,inverse,output_order,backend,compute_unit,fft_core,local_exchange,cross_twiddle,million_transforms_s,billion_points_s,comparison_basis,basis_implementation,basis_kernel_ms,throughput_vs_basis,performance_class +fft14_cub,fft-fp32-fwd-log14,cuButterfly-cuFFTDx-direct,0,5,0.121129000,0.120934000,0.121252000,0.002625,0.000083,stable,1,fft,fp32,forward,none,in-place,14,16384,256,1,16384,,,,,temporal-tile,auto,cufftdx-direct,shared,table,2.113449,34.626753,declared-reference,cuFFT,0.121610239,1.003973,parity +fft14_cufft,fft-fp32-fwd-log14,cuFFT,1,5,0.121610239,0.120698884,0.125224963,0.037218,0.002863,stable-with-outlier,1,fft,fp32,forward,none,in-place,14,16384,256,1,16384,,,,,,,,,,2.105086,34.489727,declared-reference,cuFFT,0.121610239,1.000000,parity +fft14_vkfft,fft-fp32-fwd-log14,VkFFT,0,5,0.171765760,0.171509758,0.172052473,0.003160,0.001550,stable,1,fft,fp32,forward,none,in-place,14,16384,256,1,16384,,,,,,,,,,1.490402,24.418743,declared-reference,cuFFT,0.121610239,0.708000,slower +fft18_vkfft,fft-fp32-fwd-log18,VkFFT,0,5,0.201082885,0.201011196,0.201205775,0.000968,0.000357,stable,1,fft,fp32,forward,none,in-place,18,262144,16,1,262144,,,,,,,,,,0.079569,20.858583,declared-reference,cuFFT,0.211343363,1.051026,faster +fft18_cub,fft-fp32-fwd-log18,cuButterfly-cuFFTDx-online,0,5,0.205087000,0.204933000,0.207206000,0.011083,0.002345,stable,1,fft,fp32,forward,none,in-place,18,262144,16,1,262144,,,,,online-reorder,auto,cufftdx-block,shared,recurrence,0.078016,20.451340,declared-reference,cuFFT,0.211343363,1.030506,faster +fft18_cufft,fft-fp32-fwd-log18,cuFFT,1,5,0.211343363,0.211046398,0.211384311,0.001599,0.000291,stable,1,fft,fp32,forward,none,in-place,18,262144,16,1,262144,,,,,,,,,,0.075706,19.845922,declared-reference,cuFFT,0.211343363,1.000000,parity +fft20_vkfft,fft-fp32-fwd-log20,VkFFT,0,5,0.206274569,0.205854714,0.206807047,0.004617,0.002383,stable,1,fft,fp32,forward,none,in-place,20,1048576,4,1,1048576,,,,,,,,,,0.019392,20.333597,declared-reference,cuFFT,0.210063368,1.018368,parity +fft20_cufft,fft-fp32-fwd-log20,cuFFT,1,5,0.210063368,0.209879041,0.210984960,0.005265,0.002876,stable,1,fft,fp32,forward,none,in-place,20,1048576,4,1,1048576,,,,,,,,,,0.019042,19.966851,declared-reference,cuFFT,0.210063368,1.000000,parity +fft20_cub,fft-fp32-fwd-log20,cuButterfly-cuFFTDx-online,0,5,0.235438000,0.235397000,0.235479000,0.000348,0.000221,stable,1,fft,fp32,forward,none,in-place,20,1048576,4,1,1048576,,,,,online-reorder,auto,cufftdx-block,shared,recurrence,0.016990,17.814898,declared-reference,cuFFT,0.210063368,0.892224,slower +fft8_vkfft,fft-fp32-fwd-log8,VkFFT,0,5,0.083548166,0.083517440,0.083578885,0.000735,0.000490,stable,1,fft,fp32,forward,none,in-place,8,256,16384,1,256,,,,,,,,,,196.102449,50.202227,declared-reference,cuFFT,0.083824642,1.003309,parity +fft8_cufft,fft-fp32-fwd-log8,cuFFT,1,5,0.083824642,0.083742723,0.083834879,0.001099,0.000855,stable,1,fft,fp32,forward,none,in-place,8,256,16384,1,256,,,,,,,,,,195.455651,50.036647,declared-reference,cuFFT,0.083824642,1.000000,parity +fft8_cub,fft-fp32-fwd-log8,cuButterfly-cuFFTDx,0,5,0.084234000,0.084183000,0.084306000,0.001460,0.001092,stable,1,fft,fp32,forward,none,in-place,8,256,16384,1,256,,,,,temporal-tile,auto,cufftdx-block,shared,table,194.505782,49.793480,declared-reference,cuFFT,0.083824642,0.995140,parity +fft12_inverse_cub,fft-fp32-inverse-log12,cuButterfly-cuFFTDx-direct,0,5,0.088064000,0.087818000,0.088125000,0.003486,0.000920,stable,1,fft,fp32,inverse,inverse,out-of-place,12,4096,1024,1,4096,,,,,temporal-tile,auto,cufftdx-direct,shared,table,11.627907,47.627907,declared-reference,cuFFT,0.172892000,1.963254,faster +fft12_inverse_cufft,fft-fp32-inverse-log12,cuFFT,1,5,0.172892000,0.172861000,0.172933000,0.000416,0.000237,stable,1,fft,fp32,inverse,inverse,out-of-place,12,4096,1024,1,4096,,,,,cufft,auto,scalar,shared,table,5.922773,24.259677,declared-reference,cuFFT,0.172892000,1.000000,parity +fft8_stride_cufft,fft-fp32-stride2-log8,cuFFT,1,5,0.171428000,0.171039000,0.171643000,0.003523,0.001079,stable,1,fft,fp32,forward,none,in-place,8,256,16384,2,518,,,,,cufft,auto,scalar,shared,table,95.573652,24.466855,declared-reference,cuFFT,0.171428000,1.000000,parity +fft8_stride_cub,fft-fp32-stride2-log8,cuButterfly-scalar,0,5,0.172636000,0.172564000,0.172892000,0.001900,0.000475,stable,1,fft,fp32,forward,none,in-place,8,256,16384,2,518,,,,,temporal-tile,radix4,scalar,shared,table,94.904887,24.295651,declared-reference,cuFFT,0.171428000,0.993003,parity +fft16_fp64_cufft,fft-fp64-fwd-log16,cuFFT,1,5,0.342804000,0.342712000,0.342989000,0.000808,0.000449,stable,1,fft,fp64,forward,none,out-of-place,16,65536,64,1,65536,,,,,cufft,auto,scalar,shared,table,0.186696,12.235283,declared-reference,cuFFT,0.342804000,1.000000,parity +fft16_fp64_cub,fft-fp64-fwd-log16,cuButterfly-scalar-online,0,5,0.534313000,0.533668000,0.535828000,0.004043,0.002682,stable,1,fft,fp64,forward,none,out-of-place,16,65536,64,1,65536,,,,,online-reorder,radix4,scalar,shared,table,0.119780,7.849901,declared-reference,cuFFT,0.342804000,0.641579,slower +fft3_mixed,fft-mixed-fwd-log3,cuButterfly-WMMA,0,5,0.087020000,0.086948000,0.087593000,0.007412,0.003884,stable,1,fft,fp16-fp32,forward,none,out-of-place,3,8,524288,1,8,,,,,temporal-tile,radix8,wmma-dft8,shared,table,6024.913813,48.199311,group-fastest,cuButterfly-WMMA,0.087020000,1.000000,parity +fwht15_warp,fwht-fp32-fwd-log15,cuButterfly-warp-register,0,5,0.064707000,0.064666000,0.064829000,0.002519,0.000804,stable,1,fwht,fp32,forward,none,out-of-place,15,32768,128,1,32768,,,,,temporal-tile,radix2,scalar,warp-register,table,1.978148,64.819942,group-fastest,cuButterfly-warp-register,0.064707000,1.000000,parity +fwht15_online,fwht-fp32-fwd-log15,cuButterfly-online-radix4,0,5,0.316396000,0.316006000,0.318188000,0.006896,0.001650,stable,1,fwht,fp32,forward,none,out-of-place,15,32768,128,1,32768,,,,,online-reorder,radix4,scalar,shared,table,0.404556,13.256501,group-fastest,cuButterfly-warp-register,0.064707000,0.204513,slower +fwht20_online,fwht-fp32-fwd-log20,cuButterfly-online-radix4,0,5,0.319560000,0.319160000,0.319703000,0.001699,0.000451,stable,1,fwht,fp32,forward,none,out-of-place,20,1048576,4,1,1048576,,,,,online-reorder,radix4,scalar,shared,table,0.012517,13.125247,group-fastest,cuButterfly-online-radix4,0.319560000,1.000000,parity +fwht20_hier,fwht-fp32-fwd-log20,cuButterfly-hierarchical-radix4,0,5,0.488079000,0.488008000,0.488202000,0.000397,0.000148,stable,1,fwht,fp32,forward,none,out-of-place,20,1048576,4,1,1048576,,,,,hierarchical,radix4,scalar,shared,table,0.008195,8.593494,group-fastest,cuButterfly-online-radix4,0.319560000,0.654730,slower +fwht8_warp,fwht-fp32-fwd-log8,cuButterfly-warp-register,0,5,0.042742000,0.042732000,0.043121000,0.009101,0.001895,stable,1,fwht,fp32,forward,none,out-of-place,8,256,16384,1,256,,,,,temporal-tile,radix2,scalar,warp-register,table,383.323195,98.130738,group-fastest,cuButterfly-warp-register,0.042742000,1.000000,parity +fwht8_shared,fwht-fp32-fwd-log8,cuButterfly-shared-radix4,0,5,0.048466000,0.048394000,0.049101000,0.014588,0.001486,stable,1,fwht,fp32,forward,none,out-of-place,8,256,16384,1,256,,,,,temporal-tile,radix4,scalar,shared,table,338.051417,86.541163,group-fastest,cuButterfly-warp-register,0.042742000,0.881897,slower +fwht12_fp64,fwht-fp64-fwd-log12,cuButterfly-online-radix4,0,5,0.373197000,0.372603000,0.374241000,0.004389,0.003786,stable,1,fwht,fp64,forward,none,out-of-place,12,4096,1024,1,4096,,,,,online-reorder,radix4,scalar,shared,table,2.743859,11.238847,group-fastest,cuButterfly-online-radix4,0.373197000,1.000000,parity +ntt12_30_hybrid,ntt-u30-natural-log12,cuNTT-Hybrid2D-radix4,0,5,0.140012000,0.139776000,0.141087000,0.009363,0.008192,stable,1,ntt,uint32,forward,,,12,4096,1024,1,4096,32,30,0,natural,hybrid2d,radix4,,,fused,7.313659,29.956747,declared-reference,cuNTT-Hybrid2D-radix2,0.164291000,1.173407,faster +ntt12_30_r2,ntt-u30-natural-log12,cuNTT-Hybrid2D-radix2,1,5,0.164291000,0.163359000,0.164823000,0.008911,0.000560,stable,1,ntt,uint32,forward,,,12,4096,1024,1,4096,32,30,0,natural,hybrid2d,radix2,,,fused,6.232843,25.529725,declared-reference,cuNTT-Hybrid2D-radix2,0.164291000,1.000000,parity +ntt20_60_compact,ntt-u60-bitrev-log20,cuNTT-compact-stage,0,5,0.341924000,0.341801000,0.342088000,0.000839,0.000298,stable,1,ntt,uint64,forward,,,20,1048576,4,1,1048576,64,60,0,bit-reversed,compact-stage,radix2,,,fused,0.011699,12.266773,group-fastest,cuNTT-compact-stage,0.341924000,1.000000,parity +ntt16_60_inverse,ntt-u60-inverse-log16,cuNTT-Hybrid2D-radix2,0,5,0.307671000,0.306493000,0.309002000,0.008155,0.003159,stable,1,ntt,uint64,inverse,,,16,65536,64,1,65536,64,60,1,natural,hybrid2d,radix2,,,fused,0.208014,13.632432,group-fastest,cuNTT-Hybrid2D-radix2,0.307671000,1.000000,parity +ntt16_60_r4,ntt-u60-natural-log16,cuNTT-Hybrid2D-radix4,0,5,0.277780000,0.276982000,0.279603000,0.009436,0.006930,stable,1,ntt,uint64,forward,,,16,65536,64,1,65536,64,60,0,natural,hybrid2d,radix4,,,fused,0.230398,15.099374,group-fastest,cuNTT-Hybrid2D-radix4,0.277780000,1.000000,parity +ntt16_60_r2,ntt-u60-natural-log16,cuNTT-Hybrid2D-radix2,0,5,0.304835000,0.303421000,0.305428000,0.006584,0.004366,stable,1,ntt,uint64,forward,,,16,65536,64,1,65536,64,60,0,natural,hybrid2d,radix2,,,fused,0.209950,13.759260,group-fastest,cuNTT-Hybrid2D-radix4,0.277780000,0.911247,slower +xor20_online,xor-u32-fwd-log20,cuButterfly-online-radix4,0,5,0.319304000,0.318884000,0.319345000,0.001444,0.000163,stable,1,xor-zeta,uint32,forward,none,out-of-place,20,1048576,4,1,1048576,,,,,online-reorder,radix4,scalar,shared,table,0.012527,13.135770,group-fastest,cuButterfly-online-radix4,0.319304000,1.000000,parity +xor20_hier,xor-u32-fwd-log20,cuButterfly-hierarchical-radix4,0,5,0.486994000,0.486830000,0.487066000,0.000485,0.000314,stable,1,xor-zeta,uint32,forward,none,out-of-place,20,1048576,4,1,1048576,,,,,hierarchical,radix4,scalar,shared,table,0.008214,8.612640,group-fastest,cuButterfly-online-radix4,0.319304000,0.655663,slower +xor8_r4,xor-u32-fwd-log8,cuButterfly-radix4,0,5,0.047759000,0.047718000,0.047780000,0.001298,0.000440,stable,1,xor-zeta,uint32,forward,none,out-of-place,8,256,16384,1,256,,,,,temporal-tile,radix4,scalar,shared,table,343.055759,87.822274,group-fastest,cuButterfly-radix4,0.047759000,1.000000,parity +xor8_r2,xor-u32-fwd-log8,cuButterfly-radix2,0,5,0.049766000,0.049705000,0.050145000,0.008841,0.001648,stable,1,xor-zeta,uint32,forward,none,out-of-place,8,256,16384,1,256,,,,,temporal-tile,radix2,scalar,shared,table,329.220753,84.280513,group-fastest,cuButterfly-radix4,0.047759000,0.959671,slower +xor12_inverse,xor-u32-inverse-log12,cuButterfly-online-radix4,0,5,0.354243000,0.354130000,0.355000000,0.002456,0.000319,stable,1,xor-zeta,uint32,inverse,none,out-of-place,12,4096,1024,1,4096,,,,,online-reorder,radix4,scalar,shared,table,2.890671,11.840189,group-fastest,cuButterfly-online-radix4,0.354243000,1.000000,parity diff --git a/results/comprehensive_v100_quick_raw.csv b/results/comprehensive_v100_quick_raw.csv new file mode 100644 index 0000000..9b14574 --- /dev/null +++ b/results/comprehensive_v100_quick_raw.csv @@ -0,0 +1,82 @@ +suite_case_id,suite_group,suite_tier,suite_runner,implementation,reference,trial,performance_batch,preflight_correct,preflight_max_error,device,compute_capability,backend,stage_space,stage_handoff,compute_unit,word_bits,logN,N,batch,modulus,modulus_bits,n1_log,rows_per_block,threads_per_block,inverse,warmup,repeat,h2d_ms,kernel_ms,d2h_ms,kernel_ntt_s,end_to_end_ntt_s,kernel_points_s,cross_twiddle,mod_multiply,output_order,correct,operator,precision,direction,normalization,placement,element_stride,batch_stride,library,library_version,plan_ms,transforms_s,Gbutterfly_s,points_s,max_abs_error,relative_l2_error,complex_multiply,local_exchange,fft_core,tile_threads,prefix_threads,suffix_threads,prefix_ept,suffix_ept,prefix_units_per_cta,suffix_units_per_cta,local_stages,reorder_columns,warp_stages,pipeline_warps,max_error +ntt20_60_compact,ntt-u60-bitrev-log20,quick,ntt,cuNTT-compact-stage,0,1,4,1,,Tesla V100-SXM2-16GB,7.0,compact-stage,0,named-barrier,radix2,64,20,1048576,4,1152921504577486849,60,0,0,256,0,5,20,5.453824,0.349901,5.101376,11431.812115,366.800825,11987123820.436937,fused,shoup,bit-reversed,-1,ntt,uint64,forward,,,1,1048576,,,,,,,,,,,,,,,,,,,,,,, +fft18_cufft,fft-fp32-fwd-log18,quick,fft-library,cuFFT,1,2,16,1,,Tesla V100-SXM2-16GB,7.0,,,,,,18,262144,16,,,,,,,5,20,,0.226508811,,,,,,,,-1,fft,fp32,forward,none,in-place,1,262144,cufft,10900,2.238352000,70637.428721440,166.654603033,18517178114.753162384,0.000000000,0.000000000,,,,,,,,,,,,,,, +fft8_cub,fft-fp32-fwd-log8,quick,butterfly,cuButterfly-cuFFTDx,0,3,16384,1,0.000008,Tesla V100-SXM2-16GB,7.0,temporal-tile,0,named-barrier,auto,,8,256,16384,,,,,,,5,20,5.464992,0.085094,5.101824,,,,table,,,-1,fft,fp32,forward,none,in-place,1,256,,,,192539110.071755,197.160049,49290012178.369362,,,four-mul,shared,cufftdx-block,32,0,0,8,8,0,0,0,0,0,0,0.000000 +fft14_vkfft,fft-fp32-fwd-log14,quick,fft-library,VkFFT,0,2,256,1,,Tesla V100-SXM2-16GB,7.0,,,,,,14,16384,256,,,,,,,5,20,,0.173823997,,,,,,,,-1,fft,fp32,forward,none,in-place,1,16384,vkfft,10304,391.385014000,1472754.072286029,168.907219042,24129602720.334304810,0.000000000,0.000000000,,,,,,,,,,,,,,, +xor20_online,xor-u32-fwd-log20,quick,butterfly,cuButterfly-online-radix4,0,2,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,online-reorder,0,named-barrier,radix4,,20,1048576,4,,,,,,,5,20,2.779104,0.372736,2.614688,,,,table,,,-1,xor-zeta,uint32,forward,none,out-of-place,1,1048576,,,,10731.455843,112.527470,11252747042.169611,,,four-mul,shared,scalar,256,0,0,8,8,0,0,10,1,0,0,0.000000 +fwht15_online,fwht-fp32-fwd-log15,quick,butterfly,cuButterfly-online-radix4,0,2,128,1,0.000000,Tesla V100-SXM2-16GB,7.0,online-reorder,0,named-barrier,radix4,,15,32768,128,,,,,,,5,20,2.782432,0.369869,2.606176,,,,table,,,-1,fwht,fp32,forward,none,out-of-place,1,32768,,,,346068.646039,85.049830,11339977393.393368,,,four-mul,shared,scalar,256,0,0,8,8,0,0,8,1,0,0,0.000000 +fwht15_warp,fwht-fp32-fwd-log15,quick,butterfly,cuButterfly-warp-register,0,3,128,1,0.000000,Tesla V100-SXM2-16GB,7.0,temporal-tile,0,named-barrier,radix2,,15,32768,128,,,,,,,5,20,2.769632,0.069376,2.621728,,,,table,,,-1,fwht,fp32,forward,none,out-of-place,1,32768,,,,1845018.469549,453.431739,60457565210.173370,,,four-mul,warp-register,scalar,256,0,0,8,8,0,0,0,0,0,0,0.000000 +xor20_online,xor-u32-fwd-log20,quick,butterfly,cuButterfly-online-radix4,0,3,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,online-reorder,0,named-barrier,radix4,,20,1048576,4,,,,,,,5,20,2.776128,0.372429,2.596992,,,,table,,,-1,xor-zeta,uint32,forward,none,out-of-place,1,1048576,,,,10740.307812,112.620290,11262029004.709667,,,four-mul,shared,scalar,256,0,0,8,8,0,0,10,1,0,0,0.000000 +fwht20_online,fwht-fp32-fwd-log20,quick,butterfly,cuButterfly-online-radix4,0,1,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,online-reorder,0,named-barrier,radix4,,20,1048576,4,,,,,,,5,20,2.775712,0.374118,2.606400,,,,table,,,-1,fwht,fp32,forward,none,out-of-place,1,1048576,,,,10691.802733,112.111677,11211167742.370192,,,four-mul,shared,scalar,256,0,0,8,8,0,0,10,1,0,0,0.000000 +xor20_hier,xor-u32-fwd-log20,quick,butterfly,cuButterfly-hierarchical-radix4,0,1,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,hierarchical,0,named-barrier,radix4,,20,1048576,4,,,,,,,5,20,2.782464,0.493875,2.605600,,,,table,,,-1,xor-zeta,uint32,forward,none,out-of-place,1,1048576,,,,8099.212018,84.926393,8492639341.168939,,,four-mul,shared,scalar,256,0,0,8,8,0,0,10,0,0,0,0.000000 +ntt16_60_r4,ntt-u60-natural-log16,quick,ntt,cuNTT-Hybrid2D-radix4,0,1,64,1,,Tesla V100-SXM2-16GB,7.0,hybrid2d,0,named-barrier,radix4,64,16,65536,64,1152921504606584833,60,8,4,256,0,5,20,5.451968,0.305510,5.098912,209485.502420,5895.145430,13728841886.584517,fused,shoup,natural,-1,ntt,uint64,forward,,,1,65536,,,,,,,,,,,,,,,,,,,,,,, +fft8_vkfft,fft-fp32-fwd-log8,quick,fft-library,VkFFT,0,1,16384,1,,Tesla V100-SXM2-16GB,7.0,,,,,,8,256,16384,,,,,,,5,20,,0.084121600,,,,,,,,-1,fft,fp32,forward,none,in-place,1,256,vkfft,10304,203.162694000,194765673.028472334,199.440049181,49860012295.288917542,0.000000000,0.000000000,,,,,,,,,,,,,,, +fwht20_hier,fwht-fp32-fwd-log20,quick,butterfly,cuButterfly-hierarchical-radix4,0,2,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,hierarchical,0,named-barrier,radix4,,20,1048576,4,,,,,,,5,20,2.763456,0.495206,2.612736,,,,table,,,-1,fwht,fp32,forward,none,out-of-place,1,1048576,,,,8077.439778,84.698095,8469809492.405863,,,four-mul,shared,scalar,256,0,0,8,8,0,0,10,0,0,0,0.000000 +fft14_cufft,fft-fp32-fwd-log14,quick,fft-library,cuFFT,1,3,256,1,,Tesla V100-SXM2-16GB,7.0,,,,,,14,16384,256,,,,,,,5,20,,0.133990392,,,,,,,,-1,fft,fp32,forward,none,in-place,1,16384,cufft,10900,1.837262000,1910584.751704943,219.121144004,31303020571.933788300,0.000000000,0.000000000,,,,,,,,,,,,,,, +fft20_cufft,fft-fp32-fwd-log20,quick,fft-library,cuFFT,1,3,4,1,,Tesla V100-SXM2-16GB,7.0,,,,,,20,1048576,4,,,,,,,5,20,,0.224512011,,,,,,,,-1,fft,fp32,forward,none,in-place,1,1048576,cufft,10900,1.836578000,17816.418754255,186.818691117,18681869111.661933899,0.000000000,0.000000000,,,,,,,,,,,,,,, +fwht15_warp,fwht-fp32-fwd-log15,quick,butterfly,cuButterfly-warp-register,0,1,128,1,0.000000,Tesla V100-SXM2-16GB,7.0,temporal-tile,0,named-barrier,radix2,,15,32768,128,,,,,,,5,20,2.764192,0.069530,2.613664,,,,table,,,-1,fwht,fp32,forward,none,out-of-place,1,32768,,,,1840942.550904,452.430041,60324005508.008324,,,four-mul,warp-register,scalar,256,0,0,8,8,0,0,0,0,0,0,0.000000 +ntt16_60_r4,ntt-u60-natural-log16,quick,ntt,cuNTT-Hybrid2D-radix4,0,3,64,1,,Tesla V100-SXM2-16GB,7.0,hybrid2d,0,named-barrier,radix4,64,16,65536,64,1152921504606584833,60,8,4,256,0,5,20,5.463776,0.306074,5.111552,209100.029347,5881.595319,13703579523.301661,fused,shoup,natural,-1,ntt,uint64,forward,,,1,65536,,,,,,,,,,,,,,,,,,,,,,, +fft14_cufft,fft-fp32-fwd-log14,quick,fft-library,cuFFT,1,2,256,1,,Tesla V100-SXM2-16GB,7.0,,,,,,14,16384,256,,,,,,,5,20,,0.135731190,,,,,,,,-1,fft,fp32,forward,none,in-place,1,16384,cufft,10900,2.184934000,1886080.857055720,216.310841334,30901548762.000911713,0.000000000,0.000000000,,,,,,,,,,,,,,, +fft20_vkfft,fft-fp32-fwd-log20,quick,fft-library,VkFFT,0,3,4,1,,Tesla V100-SXM2-16GB,7.0,,,,,,20,1048576,4,,,,,,,5,20,,0.218060806,,,,,,,,-1,fft,fp32,forward,none,in-place,1,1048576,vkfft,10304,789.076747000,18343.507327858,192.345615398,19234561539.815769196,0.000000000,0.000000000,,,,,,,,,,,,,,, +fft14_cub,fft-fp32-fwd-log14,quick,butterfly,cuButterfly-cuFFTDx-direct,0,1,256,1,0.000095,Tesla V100-SXM2-16GB,7.0,temporal-tile,0,named-barrier,auto,,14,16384,256,,,,,,,5,20,5.520672,0.134195,5.102496,,,,table,,,-1,fft,fp32,forward,none,in-place,1,16384,,,,1907668.918984,218.786733,31255247568.637020,,,four-mul,shared,cufftdx-direct,1024,0,0,8,8,0,0,0,0,0,0,0.000000 +fwht20_online,fwht-fp32-fwd-log20,quick,butterfly,cuButterfly-online-radix4,0,2,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,online-reorder,0,named-barrier,radix4,,20,1048576,4,,,,,,,5,20,2.782368,0.372838,2.619168,,,,table,,,-1,fwht,fp32,forward,none,out-of-place,1,1048576,,,,10728.508428,112.496565,11249656453.734543,,,four-mul,shared,scalar,256,0,0,8,8,0,0,10,1,0,0,0.000000 +xor8_r2,xor-u32-fwd-log8,quick,butterfly,cuButterfly-radix2,0,2,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,temporal-tile,0,named-barrier,radix2,,8,256,16384,,,,,,,5,20,2.776576,0.052634,2.629984,,,,table,,,-1,xor-zeta,uint32,forward,none,out-of-place,1,256,,,,311284033.846225,318.754851,79688712664.633499,,,four-mul,shared,scalar,128,0,0,8,8,0,0,0,0,0,0,0.000000 +fwht8_warp,fwht-fp32-fwd-log8,quick,butterfly,cuButterfly-warp-register,0,1,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,temporal-tile,0,named-barrier,radix2,,8,256,16384,,,,,,,5,20,2.762336,0.043110,2.592672,,,,table,,,-1,fwht,fp32,forward,none,out-of-place,1,256,,,,380047502.074253,389.168642,97292160531.008713,,,four-mul,warp-register,scalar,32,0,0,8,8,0,0,0,0,0,0,0.000000 +fwht15_online,fwht-fp32-fwd-log15,quick,butterfly,cuButterfly-online-radix4,0,1,128,1,0.000000,Tesla V100-SXM2-16GB,7.0,online-reorder,0,named-barrier,radix4,,15,32768,128,,,,,,,5,20,2.770592,0.370022,2.619968,,,,table,,,-1,fwht,fp32,forward,none,out-of-place,1,32768,,,,345925.016255,85.014532,11335270932.656223,,,four-mul,shared,scalar,256,0,0,8,8,0,0,8,1,0,0,0.000000 +fft8_cub,fft-fp32-fwd-log8,quick,butterfly,cuButterfly-cuFFTDx,0,1,16384,1,0.000008,Tesla V100-SXM2-16GB,7.0,temporal-tile,0,named-barrier,auto,,8,256,16384,,,,,,,5,20,5.474208,0.084838,5.113152,,,,table,,,-1,fft,fp32,forward,none,in-place,1,256,,,,193120084.605901,197.754967,49438741659.110741,,,four-mul,shared,cufftdx-block,32,0,0,8,8,0,0,0,0,0,0,0.000000 +fft14_cub,fft-fp32-fwd-log14,quick,butterfly,cuButterfly-cuFFTDx-direct,0,2,256,1,0.000095,Tesla V100-SXM2-16GB,7.0,temporal-tile,0,named-barrier,auto,,14,16384,256,,,,,,,5,20,5.530560,0.133683,5.101536,,,,table,,,-1,fft,fp32,forward,none,in-place,1,16384,,,,1914975.038701,219.624657,31374951034.078346,,,four-mul,shared,cufftdx-direct,1024,0,0,8,8,0,0,0,0,0,0,0.000000 +xor20_hier,xor-u32-fwd-log20,quick,butterfly,cuButterfly-hierarchical-radix4,0,3,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,hierarchical,0,named-barrier,radix4,,20,1048576,4,,,,,,,5,20,2.779968,0.493773,2.630144,,,,table,,,-1,xor-zeta,uint32,forward,none,out-of-place,1,1048576,,,,8100.891668,84.944006,8494400582.132614,,,four-mul,shared,scalar,256,0,0,8,8,0,0,10,0,0,0,0.000000 +fft20_cufft,fft-fp32-fwd-log20,quick,fft-library,cuFFT,1,2,4,1,,Tesla V100-SXM2-16GB,7.0,,,,,,20,1048576,4,,,,,,,5,20,,0.223948792,,,,,,,,-1,fft,fp32,forward,none,in-place,1,1048576,cufft,10900,2.257087000,17861.226091059,187.288530097,18728853009.658626556,0.000000000,0.000000000,,,,,,,,,,,,,,, +fft8_vkfft,fft-fp32-fwd-log8,quick,fft-library,VkFFT,0,2,16384,1,,Tesla V100-SXM2-16GB,7.0,,,,,,8,256,16384,,,,,,,5,20,,0.084377602,,,,,,,,-1,fft,fp32,forward,none,in-place,1,256,vkfft,10304,203.665097000,194174753.271046191,198.834947350,49708736837.387825012,0.000000000,0.000000000,,,,,,,,,,,,,,, +fwht8_shared,fwht-fp32-fwd-log8,quick,butterfly,cuButterfly-shared-radix4,0,2,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,temporal-tile,0,named-barrier,radix4,,8,256,16384,,,,,,,5,20,2.777920,0.051405,2.606016,,,,table,,,-1,fwht,fp32,forward,none,out-of-place,1,256,,,,318725121.050057,326.374524,81593630988.814590,,,four-mul,shared,scalar,128,0,0,8,8,0,0,0,0,0,0,0.000000 +ntt16_60_r2,ntt-u60-natural-log16,quick,ntt,cuNTT-Hybrid2D-radix2,0,2,64,1,,Tesla V100-SXM2-16GB,7.0,hybrid2d,0,named-barrier,radix2,64,16,65536,64,1152921504606584833,60,8,4,256,0,5,20,5.489440,0.332339,5.110720,192574.335201,5854.105098,12620551631.731579,fused,shoup,natural,-1,ntt,uint64,forward,,,1,65536,,,,,,,,,,,,,,,,,,,,,,, +ntt20_60_compact,ntt-u60-bitrev-log20,quick,ntt,cuNTT-compact-stage,0,3,4,1,,Tesla V100-SXM2-16GB,7.0,compact-stage,0,named-barrier,radix2,64,20,1048576,4,1152921504577486849,60,0,0,256,0,5,20,5.480064,0.349850,5.117504,11433.484184,365.382972,11988877111.418558,fused,shoup,bit-reversed,-1,ntt,uint64,forward,,,1,1048576,,,,,,,,,,,,,,,,,,,,,,, +fft18_cub,fft-fp32-fwd-log18,quick,butterfly,cuButterfly-cuFFTDx-online,0,1,16,1,0.000512,Tesla V100-SXM2-16GB,7.0,online-reorder,0,named-barrier,auto,,18,262144,16,,,,,,,5,20,5.479520,0.212122,5.114976,,,,recurrence,,,-1,fft,fp32,forward,none,in-place,1,262144,,,,75428.431414,177.957997,19773110724.557930,,,four-mul,shared,cufftdx-block,128,256,256,8,8,4,4,9,1,0,0,0.000000 +fft14_vkfft,fft-fp32-fwd-log14,quick,fft-library,VkFFT,0,3,256,1,,Tesla V100-SXM2-16GB,7.0,,,,,,14,16384,256,,,,,,,5,20,,0.173721597,,,,,,,,-1,fft,fp32,forward,none,in-place,1,16384,vkfft,10304,367.806375000,1473622.192130060,169.006781971,24143825995.858901978,0.000000000,0.000000000,,,,,,,,,,,,,,, +ntt12_30_hybrid,ntt-u30-natural-log12,quick,ntt,cuNTT-Hybrid2D-radix4,0,3,1024,1,,Tesla V100-SXM2-16GB,7.0,hybrid2d,0,named-barrier,radix4,32,12,4096,1024,1073692673,30,6,4,256,0,5,20,2.827872,0.157901,2.629312,6485084.497463,182365.898897,26562906101.608421,fused,shoup,natural,-1,ntt,uint32,forward,,,1,4096,,,,,,,,,,,,,,,,,,,,,,, +fwht8_warp,fwht-fp32-fwd-log8,quick,butterfly,cuButterfly-warp-register,0,2,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,temporal-tile,0,named-barrier,radix2,,8,256,16384,,,,,,,5,20,2.768416,0.043315,2.619040,,,,table,,,-1,fwht,fp32,forward,none,out-of-place,1,256,,,,378250606.102258,387.328621,96832155162.178101,,,four-mul,warp-register,scalar,32,0,0,8,8,0,0,0,0,0,0,0.000000 +fwht8_shared,fwht-fp32-fwd-log8,quick,butterfly,cuButterfly-shared-radix4,0,3,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,temporal-tile,0,named-barrier,radix4,,8,256,16384,,,,,,,5,20,2.766592,0.051558,2.596448,,,,table,,,-1,fwht,fp32,forward,none,out-of-place,1,256,,,,317775585.115196,325.402199,81350549789.490280,,,four-mul,shared,scalar,128,0,0,8,8,0,0,0,0,0,0,0.000000 +xor20_online,xor-u32-fwd-log20,quick,butterfly,cuButterfly-online-radix4,0,1,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,online-reorder,0,named-barrier,radix4,,20,1048576,4,,,,,,,5,20,2.771968,0.372480,2.602112,,,,table,,,-1,xor-zeta,uint32,forward,none,out-of-place,1,1048576,,,,10738.831470,112.604809,11260480947.718960,,,four-mul,shared,scalar,256,0,0,8,8,0,0,10,1,0,0,0.000000 +fft8_cufft,fft-fp32-fwd-log8,quick,fft-library,cuFFT,1,1,16384,1,,Tesla V100-SXM2-16GB,7.0,,,,,,8,256,16384,,,,,,,5,20,,0.084224001,,,,,,,,-1,fft,fp32,forward,none,in-place,1,256,cufft,10900,1.811585000,194528874.056138039,199.197567033,49799391758.371337891,0.000000000,0.000000000,,,,,,,,,,,,,,, +ntt12_30_r2,ntt-u30-natural-log12,quick,ntt,cuNTT-Hybrid2D-radix2,1,3,1024,1,,Tesla V100-SXM2-16GB,7.0,hybrid2d,0,named-barrier,radix2,32,12,4096,1024,1073692673,30,6,4,256,0,5,20,2.836928,0.184627,2.643360,5546311.548506,180761.759148,22717692102.681152,fused,shoup,natural,-1,ntt,uint32,forward,,,1,4096,,,,,,,,,,,,,,,,,,,,,,, +ntt12_30_r2,ntt-u30-natural-log12,quick,ntt,cuNTT-Hybrid2D-radix2,1,2,1024,1,,Tesla V100-SXM2-16GB,7.0,hybrid2d,0,named-barrier,radix2,32,12,4096,1024,1073692673,30,6,4,256,0,5,20,2.816288,0.184422,2.618624,5552470.741925,182227.988689,22742920158.923393,fused,shoup,natural,-1,ntt,uint32,forward,,,1,4096,,,,,,,,,,,,,,,,,,,,,,, +ntt16_60_r2,ntt-u60-natural-log16,quick,ntt,cuNTT-Hybrid2D-radix2,0,3,64,1,,Tesla V100-SXM2-16GB,7.0,hybrid2d,0,named-barrier,radix2,64,16,65536,64,1152921504606584833,60,8,4,256,0,5,20,5.462944,0.332032,5.104736,192752.508651,5871.714842,12632228406.984022,fused,shoup,natural,-1,ntt,uint64,forward,,,1,65536,,,,,,,,,,,,,,,,,,,,,,, +xor8_r4,xor-u32-fwd-log8,quick,butterfly,cuButterfly-radix4,0,1,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,temporal-tile,0,named-barrier,radix4,,8,256,16384,,,,,,,5,20,2.774880,0.050278,2.625216,,,,table,,,-1,xor-zeta,uint32,forward,none,out-of-place,1,256,,,,325865561.879793,333.686335,83421583841.227066,,,four-mul,shared,scalar,128,0,0,8,8,0,0,0,0,0,0,0.000000 +fft14_cub,fft-fp32-fwd-log14,quick,butterfly,cuButterfly-cuFFTDx-direct,0,3,256,1,0.000095,Tesla V100-SXM2-16GB,7.0,temporal-tile,0,named-barrier,auto,,14,16384,256,,,,,,,5,20,5.541024,0.132608,5.107776,,,,table,,,-1,fft,fp32,forward,none,in-place,1,16384,,,,1930501.981982,221.405411,31629344472.795444,,,four-mul,shared,cufftdx-direct,1024,0,0,8,8,0,0,0,0,0,0,0.000000 +fwht8_shared,fwht-fp32-fwd-log8,quick,butterfly,cuButterfly-shared-radix4,0,1,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,temporal-tile,0,named-barrier,radix4,,8,256,16384,,,,,,,5,20,2.769504,0.051456,2.625088,,,,table,,,-1,fwht,fp32,forward,none,out-of-place,1,256,,,,318407979.192353,326.049771,81512442673.242294,,,four-mul,shared,scalar,128,0,0,8,8,0,0,0,0,0,0,0.000000 +fft18_cufft,fft-fp32-fwd-log18,quick,fft-library,cuFFT,1,1,16,1,,Tesla V100-SXM2-16GB,7.0,,,,,,18,262144,16,,,,,,,5,20,,0.226150393,,,,,,,,-1,fft,fp32,forward,none,in-place,1,262144,cufft,10900,1.948990000,70749.379443325,166.918727923,18546525324.791114807,0.000000000,0.000000000,,,,,,,,,,,,,,, +xor8_r4,xor-u32-fwd-log8,quick,butterfly,cuButterfly-radix4,0,3,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,temporal-tile,0,named-barrier,radix4,,8,256,16384,,,,,,,5,20,2.775200,0.050227,2.622976,,,,table,,,-1,xor-zeta,uint32,forward,none,out-of-place,1,256,,,,326197741.316208,334.026487,83506621776.949265,,,four-mul,shared,scalar,128,0,0,8,8,0,0,0,0,0,0,0.000000 +xor8_r4,xor-u32-fwd-log8,quick,butterfly,cuButterfly-radix4,0,2,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,temporal-tile,0,named-barrier,radix4,,8,256,16384,,,,,,,5,20,2.765312,0.050227,2.596704,,,,table,,,-1,xor-zeta,uint32,forward,none,out-of-place,1,256,,,,326197741.316208,334.026487,83506621776.949265,,,four-mul,shared,scalar,128,0,0,8,8,0,0,0,0,0,0,0.000000 +fft8_vkfft,fft-fp32-fwd-log8,quick,fft-library,VkFFT,0,3,16384,1,,Tesla V100-SXM2-16GB,7.0,,,,,,8,256,16384,,,,,,,5,20,,0.084275201,,,,,,,,-1,fft,fp32,forward,none,in-place,1,256,vkfft,10304,213.752580000,194410690.366543800,199.076546935,49769136733.835212708,0.000000000,0.000000000,,,,,,,,,,,,,,, +fft14_cufft,fft-fp32-fwd-log14,quick,fft-library,cuFFT,1,1,256,1,,Tesla V100-SXM2-16GB,7.0,,,,,,14,16384,256,,,,,,,5,20,,0.135731190,,,,,,,,-1,fft,fp32,forward,none,in-place,1,16384,cufft,10900,1.848339000,1886080.857055720,216.310841334,30901548762.000911713,0.000000000,0.000000000,,,,,,,,,,,,,,, +fft18_cub,fft-fp32-fwd-log18,quick,butterfly,cuButterfly-cuFFTDx-online,0,2,16,1,0.000512,Tesla V100-SXM2-16GB,7.0,online-reorder,0,named-barrier,auto,,18,262144,16,,,,,,,5,20,5.456192,0.212787,5.103392,,,,recurrence,,,-1,fft,fp32,forward,none,in-place,1,262144,,,,75192.494181,177.401351,19711261194.534111,,,four-mul,shared,cufftdx-block,128,256,256,8,8,4,4,9,1,0,0,0.000000 +fwht20_hier,fwht-fp32-fwd-log20,quick,butterfly,cuButterfly-hierarchical-radix4,0,1,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,hierarchical,0,named-barrier,radix4,,20,1048576,4,,,,,,,5,20,2.808736,0.495002,2.647552,,,,table,,,-1,fwht,fp32,forward,none,out-of-place,1,1048576,,,,8080.781731,84.733138,8473313784.397819,,,four-mul,shared,scalar,256,0,0,8,8,0,0,10,0,0,0,0.000000 +fft18_cufft,fft-fp32-fwd-log18,quick,fft-library,cuFFT,1,3,16,1,,Tesla V100-SXM2-16GB,7.0,,,,,,18,262144,16,,,,,,,5,20,,0.226254389,,,,,,,,-1,fft,fp32,forward,none,in-place,1,262144,cufft,10900,2.261200000,70716.860312144,166.842005667,18538000629.666797638,0.000000000,0.000000000,,,,,,,,,,,,,,, +fft8_cufft,fft-fp32-fwd-log8,quick,fft-library,cuFFT,1,2,16384,1,,Tesla V100-SXM2-16GB,7.0,,,,,,8,256,16384,,,,,,,5,20,,0.084172800,,,,,,,,-1,fft,fp32,forward,none,in-place,1,256,cufft,10900,1.709659000,194647201.522604764,199.318734359,49829683589.786819458,0.000000000,0.000000000,,,,,,,,,,,,,,, +ntt12_30_hybrid,ntt-u30-natural-log12,quick,ntt,cuNTT-Hybrid2D-radix4,0,1,1024,1,,Tesla V100-SXM2-16GB,7.0,hybrid2d,0,named-barrier,radix4,32,12,4096,1024,1073692673,30,6,4,256,0,5,20,2.806528,0.157747,2.624704,6491399.136331,183217.716313,26588770862.412933,fused,shoup,natural,-1,ntt,uint32,forward,,,1,4096,,,,,,,,,,,,,,,,,,,,,,, +fwht15_online,fwht-fp32-fwd-log15,quick,butterfly,cuButterfly-online-radix4,0,3,128,1,0.000000,Tesla V100-SXM2-16GB,7.0,online-reorder,0,named-barrier,radix4,,15,32768,128,,,,,,,5,20,2.771296,0.369920,2.615232,,,,table,,,-1,fwht,fp32,forward,none,out-of-place,1,32768,,,,346020.774778,85.038066,11338408747.933266,,,four-mul,shared,scalar,256,0,0,8,8,0,0,8,1,0,0,0.000000 +fft20_vkfft,fft-fp32-fwd-log20,quick,fft-library,VkFFT,0,1,4,1,,Tesla V100-SXM2-16GB,7.0,,,,,,20,1048576,4,,,,,,,5,20,,0.216115192,,,,,,,,-1,fft,fp32,forward,none,in-place,1,1048576,vkfft,10304,791.236530000,18508.647961198,194.077240446,19407724044.560783386,0.000000000,0.000000000,,,,,,,,,,,,,,, +fft18_vkfft,fft-fp32-fwd-log18,quick,fft-library,VkFFT,0,1,16,1,,Tesla V100-SXM2-16GB,7.0,,,,,,18,262144,16,,,,,,,5,20,,0.213299200,,,,,,,,-1,fft,fp32,forward,none,in-place,1,262144,vkfft,10304,329.681535000,75012.001941839,176.975516133,19663946237.041408539,0.000000000,0.000000000,,,,,,,,,,,,,,, +fwht20_online,fwht-fp32-fwd-log20,quick,butterfly,cuButterfly-online-radix4,0,3,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,online-reorder,0,named-barrier,radix4,,20,1048576,4,,,,,,,5,20,2.764864,0.372890,2.609344,,,,table,,,-1,fwht,fp32,forward,none,out-of-place,1,1048576,,,,10727.036185,112.481127,11248112695.035477,,,four-mul,shared,scalar,256,0,0,8,8,0,0,10,1,0,0,0.000000 +fft18_vkfft,fft-fp32-fwd-log18,quick,fft-library,VkFFT,0,2,16,1,,Tesla V100-SXM2-16GB,7.0,,,,,,18,262144,16,,,,,,,5,20,,0.213350385,,,,,,,,-1,fft,fp32,forward,none,in-place,1,262144,vkfft,10304,436.112084000,74994.005602296,176.933057441,19659228604.608200073,0.000000000,0.000000000,,,,,,,,,,,,,,, +fft20_cub,fft-fp32-fwd-log20,quick,butterfly,cuButterfly-cuFFTDx-online,0,3,4,1,0.001242,Tesla V100-SXM2-16GB,7.0,online-reorder,0,named-barrier,auto,,20,1048576,4,,,,,,,5,20,5.456480,0.247245,5.106208,,,,recurrence,,,-1,fft,fp32,forward,none,in-place,1,1048576,,,,16178.297451,169.641744,16964174427.627050,,,four-mul,shared,cufftdx-block,128,512,512,8,8,4,4,10,1,0,0,0.000000 +ntt12_30_hybrid,ntt-u30-natural-log12,quick,ntt,cuNTT-Hybrid2D-radix4,0,2,1024,1,,Tesla V100-SXM2-16GB,7.0,hybrid2d,0,named-barrier,radix4,32,12,4096,1024,1073692673,30,6,4,256,0,5,20,2.815904,0.157901,2.620832,6485084.497463,183032.440092,26562906101.608421,fused,shoup,natural,-1,ntt,uint32,forward,,,1,4096,,,,,,,,,,,,,,,,,,,,,,, +fft8_cufft,fft-fp32-fwd-log8,quick,fft-library,cuFFT,1,3,16384,1,,Tesla V100-SXM2-16GB,7.0,,,,,,8,256,16384,,,,,,,5,20,,0.084224001,,,,,,,,-1,fft,fp32,forward,none,in-place,1,256,cufft,10900,1.840037000,194528874.056138039,199.197567033,49799391758.371337891,0.000000000,0.000000000,,,,,,,,,,,,,,, +fft20_cufft,fft-fp32-fwd-log20,quick,fft-library,cuFFT,1,1,4,1,,Tesla V100-SXM2-16GB,7.0,,,,,,20,1048576,4,,,,,,,5,20,,0.224972799,,,,,,,,-1,fft,fp32,forward,none,in-place,1,1048576,cufft,10900,1.889569000,17779.927219228,186.436049638,18643604963.829582214,0.000000000,0.000000000,,,,,,,,,,,,,,, +ntt12_30_r2,ntt-u30-natural-log12,quick,ntt,cuNTT-Hybrid2D-radix2,1,1,1024,1,,Tesla V100-SXM2-16GB,7.0,hybrid2d,0,named-barrier,radix2,32,12,4096,1024,1073692673,30,6,4,256,0,5,20,2.806912,0.184781,2.617504,5541701.113268,182557.336991,22698807759.945099,fused,shoup,natural,-1,ntt,uint32,forward,,,1,4096,,,,,,,,,,,,,,,,,,,,,,, +fwht15_warp,fwht-fp32-fwd-log15,quick,butterfly,cuButterfly-warp-register,0,2,128,1,0.000000,Tesla V100-SXM2-16GB,7.0,temporal-tile,0,named-barrier,radix2,,15,32768,128,,,,,,,5,20,2.767648,0.069478,2.620544,,,,table,,,-1,fwht,fp32,forward,none,out-of-place,1,32768,,,,1842299.188020,452.763448,60368459793.048813,,,four-mul,warp-register,scalar,256,0,0,8,8,0,0,0,0,0,0,0.000000 +xor8_r2,xor-u32-fwd-log8,quick,butterfly,cuButterfly-radix2,0,3,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,temporal-tile,0,named-barrier,radix2,,8,256,16384,,,,,,,5,20,2.766720,0.052531,2.597632,,,,table,,,-1,xor-zeta,uint32,forward,none,out-of-place,1,256,,,,311890829.939529,319.376210,79844052464.519531,,,four-mul,shared,scalar,128,0,0,8,8,0,0,0,0,0,0,0.000000 +fwht20_hier,fwht-fp32-fwd-log20,quick,butterfly,cuButterfly-hierarchical-radix4,0,3,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,hierarchical,0,named-barrier,radix4,,20,1048576,4,,,,,,,5,20,2.767072,0.495002,2.597344,,,,table,,,-1,fwht,fp32,forward,none,out-of-place,1,1048576,,,,8080.781731,84.733138,8473313784.397819,,,four-mul,shared,scalar,256,0,0,8,8,0,0,10,0,0,0,0.000000 +fft20_cub,fft-fp32-fwd-log20,quick,butterfly,cuButterfly-cuFFTDx-online,0,1,4,1,0.001242,Tesla V100-SXM2-16GB,7.0,online-reorder,0,named-barrier,auto,,20,1048576,4,,,,,,,5,20,5.451936,0.247450,5.107648,,,,recurrence,,,-1,fft,fp32,forward,none,in-place,1,1048576,,,,16164.908463,169.501351,16950135056.751627,,,four-mul,shared,cufftdx-block,128,512,512,8,8,4,4,10,1,0,0,0.000000 +fwht8_warp,fwht-fp32-fwd-log8,quick,butterfly,cuButterfly-warp-register,0,3,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,temporal-tile,0,named-barrier,radix2,,8,256,16384,,,,,,,5,20,2.771008,0.043264,2.619616,,,,table,,,-1,fwht,fp32,forward,none,out-of-place,1,256,,,,378698243.386047,387.787001,96946750306.827927,,,four-mul,warp-register,scalar,32,0,0,8,8,0,0,0,0,0,0,0.000000 +xor8_r2,xor-u32-fwd-log8,quick,butterfly,cuButterfly-radix2,0,1,16384,1,0.000000,Tesla V100-SXM2-16GB,7.0,temporal-tile,0,named-barrier,radix2,,8,256,16384,,,,,,,5,20,2.760736,0.052378,2.591776,,,,table,,,-1,xor-zeta,uint32,forward,none,out-of-place,1,256,,,,312805472.765052,320.312804,80078201027.853409,,,four-mul,shared,scalar,128,0,0,8,8,0,0,0,0,0,0,0.000000 +fft20_vkfft,fft-fp32-fwd-log20,quick,fft-library,VkFFT,0,2,4,1,,Tesla V100-SXM2-16GB,7.0,,,,,,20,1048576,4,,,,,,,5,20,,0.217856005,,,,,,,,-1,fft,fp32,forward,none,in-place,1,1048576,vkfft,10304,789.871527000,18360.751648983,192.526435211,19252643521.084339142,0.000000000,0.000000000,,,,,,,,,,,,,,, +fft20_cub,fft-fp32-fwd-log20,quick,butterfly,cuButterfly-cuFFTDx-online,0,2,4,1,0.001242,Tesla V100-SXM2-16GB,7.0,online-reorder,0,named-barrier,auto,,20,1048576,4,,,,,,,5,20,5.455136,0.246886,5.137440,,,,recurrence,,,-1,fft,fp32,forward,none,in-place,1,1048576,,,,16201.783337,169.888012,16988801164.265228,,,four-mul,shared,cufftdx-block,128,512,512,8,8,4,4,10,1,0,0,0.000000 +ntt16_60_r4,ntt-u60-natural-log16,quick,ntt,cuNTT-Hybrid2D-radix4,0,2,64,1,,Tesla V100-SXM2-16GB,7.0,hybrid2d,0,named-barrier,radix4,64,16,65536,64,1152921504606584833,60,8,4,256,0,5,20,5.451648,0.306227,5.099168,208995.146410,5894.790914,13696705915.101875,fused,shoup,natural,-1,ntt,uint64,forward,,,1,65536,,,,,,,,,,,,,,,,,,,,,,, +fft18_vkfft,fft-fp32-fwd-log18,quick,fft-library,VkFFT,0,3,16,1,,Tesla V100-SXM2-16GB,7.0,,,,,,18,262144,16,,,,,,,5,20,,0.212428808,,,,,,,,-1,fft,fp32,forward,none,in-place,1,262144,vkfft,10304,329.142827000,75319.351149450,177.700643889,19744515987.721538544,0.000000000,0.000000000,,,,,,,,,,,,,,, +xor20_hier,xor-u32-fwd-log20,quick,butterfly,cuButterfly-hierarchical-radix4,0,2,4,1,0.000000,Tesla V100-SXM2-16GB,7.0,hierarchical,0,named-barrier,radix4,,20,1048576,4,,,,,,,5,20,2.769216,0.494029,2.603744,,,,table,,,-1,xor-zeta,uint32,forward,none,out-of-place,1,1048576,,,,8096.693848,84.899988,8489998848.715824,,,four-mul,shared,scalar,256,0,0,8,8,0,0,10,0,0,0,0.000000 +fft8_cub,fft-fp32-fwd-log8,quick,butterfly,cuButterfly-cuFFTDx,0,2,16384,1,0.000008,Tesla V100-SXM2-16GB,7.0,temporal-tile,0,named-barrier,auto,,8,256,16384,,,,,,,5,20,5.458464,0.084787,5.106496,,,,table,,,-1,fft,fp32,forward,none,in-place,1,256,,,,193236703.895783,197.874385,49468596197.320442,,,four-mul,shared,cufftdx-block,32,0,0,8,8,0,0,0,0,0,0,0.000000 +fft18_cub,fft-fp32-fwd-log18,quick,butterfly,cuButterfly-cuFFTDx-online,0,3,16,1,0.000512,Tesla V100-SXM2-16GB,7.0,online-reorder,0,named-barrier,auto,,18,262144,16,,,,,,,5,20,5.456448,0.212019,5.100320,,,,recurrence,,,-1,fft,fp32,forward,none,in-place,1,262144,,,,75464.861747,178.043946,19782660717.705360,,,four-mul,shared,cufftdx-block,128,256,256,8,8,4,4,9,1,0,0,0.000000 +fft14_vkfft,fft-fp32-fwd-log14,quick,fft-library,VkFFT,0,1,256,1,,Tesla V100-SXM2-16GB,7.0,,,,,,14,16384,256,,,,,,,5,20,,0.173670396,,,,,,,,-1,fft,fp32,forward,none,in-place,1,16384,vkfft,10304,365.562091000,1474056.635952343,169.056607464,24150943923.443195343,0.000000000,0.000000000,,,,,,,,,,,,,,, +ntt16_60_r2,ntt-u60-natural-log16,quick,ntt,cuNTT-Hybrid2D-radix2,0,1,64,1,,Tesla V100-SXM2-16GB,7.0,hybrid2d,0,named-barrier,radix2,64,16,65536,64,1152921504606584833,60,8,4,256,0,5,20,5.461728,0.332288,5.109088,192604.007898,5869.888041,12622496261.599760,fused,shoup,natural,-1,ntt,uint64,forward,,,1,65536,,,,,,,,,,,,,,,,,,,,,,, +ntt20_60_compact,ntt-u60-bitrev-log20,quick,ntt,cuNTT-compact-stage,0,2,4,1,,Tesla V100-SXM2-16GB,7.0,compact-stage,0,named-barrier,radix2,64,20,1048576,4,1152921504577486849,60,0,0,256,0,5,20,5.475712,0.350208,5.108768,11421.784133,365.808341,11976608719.008291,fused,shoup,bit-reversed,-1,ntt,uint64,forward,,,1,1048576,,,,,,,,,,,,,,,,,,,,,,, diff --git a/results/comprehensive_v100_quick_report.md b/results/comprehensive_v100_quick_report.md new file mode 100644 index 0000000..784dab9 --- /dev/null +++ b/results/comprehensive_v100_quick_report.md @@ -0,0 +1,58 @@ +# Single-GPU Comprehensive Summary + +Every row uses the listed transform length and batch. `Mtransform/s` and +`Gpoint/s` are derived from the median resident kernel time. Ratios above one +mean higher throughput than `Basis`; groups without a declared reference use +their fastest internal implementation as the basis. + +## FFT Results + +| Numeric | Semantics | logN | N | Batch | Layout | Implementation | Design point | Median ms | Mtransform/s | Gpoint/s | vs basis | Basis | Stability | +|:--|:--|--:|--:|--:|:--|:--|:--|--:|--:|--:|--:|:--|:--| +| fp32 | forward | 8 | 256 | 16,384 | in-place, es=1, bs=256 | cuFFT | library | 0.084224 | 194.529 | 49.799 | 1.000x | cuFFT | stable | +| fp32 | forward | 8 | 256 | 16,384 | in-place, es=1, bs=256 | VkFFT | library | 0.084275 | 194.411 | 49.769 | 0.999x | cuFFT | stable | +| fp32 | forward | 8 | 256 | 16,384 | in-place, es=1, bs=256 | cuButterfly-cuFFTDx | temporal-tile / cufftdx-block | 0.084838 | 193.121 | 49.439 | 0.993x | cuFFT | stable | +| fp32 | forward | 14 | 16,384 | 256 | in-place, es=1, bs=16384 | cuButterfly-cuFFTDx-direct | temporal-tile / cufftdx-direct | 0.133683 | 1.915 | 31.375 | 1.015x | cuFFT | stable | +| fp32 | forward | 14 | 16,384 | 256 | in-place, es=1, bs=16384 | cuFFT | library | 0.135731 | 1.886 | 30.902 | 1.000x | cuFFT | stable | +| fp32 | forward | 14 | 16,384 | 256 | in-place, es=1, bs=16384 | VkFFT | library | 0.173722 | 1.474 | 24.144 | 0.781x | cuFFT | stable | +| fp32 | forward | 18 | 262,144 | 16 | in-place, es=1, bs=262144 | cuButterfly-cuFFTDx-online | online-reorder / cufftdx-block | 0.212122 | 0.075 | 19.773 | 1.067x | cuFFT | stable | +| fp32 | forward | 18 | 262,144 | 16 | in-place, es=1, bs=262144 | VkFFT | library | 0.213299 | 0.075 | 19.664 | 1.061x | cuFFT | stable | +| fp32 | forward | 18 | 262,144 | 16 | in-place, es=1, bs=262144 | cuFFT | library | 0.226254 | 0.071 | 18.538 | 1.000x | cuFFT | stable | +| fp32 | forward | 20 | 1,048,576 | 4 | in-place, es=1, bs=1048576 | VkFFT | library | 0.217856 | 0.018 | 19.253 | 1.031x | cuFFT | stable | +| fp32 | forward | 20 | 1,048,576 | 4 | in-place, es=1, bs=1048576 | cuFFT | library | 0.224512 | 0.018 | 18.682 | 1.000x | cuFFT | stable | +| fp32 | forward | 20 | 1,048,576 | 4 | in-place, es=1, bs=1048576 | cuButterfly-cuFFTDx-online | online-reorder / cufftdx-block | 0.247245 | 0.016 | 16.964 | 0.908x | cuFFT | stable | + +## NTT Results + +| Numeric | Semantics | logN | N | Batch | Layout | Implementation | Design point | Median ms | Mtransform/s | Gpoint/s | vs basis | Basis | Stability | +|:--|:--|--:|--:|--:|:--|:--|:--|--:|--:|--:|--:|:--|:--| +| uint32/30-bit | forward | 12 | 4,096 | 1,024 | n/a, es=1, bs=4096, natural | cuNTT-Hybrid2D-radix4 | hybrid2d / radix4 | 0.157901 | 6.485 | 26.563 | 1.169x | cuNTT-Hybrid2D-radix2 | stable | +| uint32/30-bit | forward | 12 | 4,096 | 1,024 | n/a, es=1, bs=4096, natural | cuNTT-Hybrid2D-radix2 | hybrid2d / radix2 | 0.184627 | 5.546 | 22.718 | 1.000x | cuNTT-Hybrid2D-radix2 | stable | +| uint64/60-bit | forward | 16 | 65,536 | 64 | n/a, es=1, bs=65536, natural | cuNTT-Hybrid2D-radix4 | hybrid2d / radix4 | 0.306074 | 0.209 | 13.704 | 1.000x | cuNTT-Hybrid2D-radix4 | stable | +| uint64/60-bit | forward | 16 | 65,536 | 64 | n/a, es=1, bs=65536, natural | cuNTT-Hybrid2D-radix2 | hybrid2d / radix2 | 0.332288 | 0.193 | 12.622 | 0.921x | cuNTT-Hybrid2D-radix4 | stable | +| uint64/60-bit | forward | 20 | 1,048,576 | 4 | n/a, es=1, bs=1048576, bit-reversed | cuNTT-compact-stage | compact-stage / radix2 | 0.349901 | 0.011 | 11.987 | 1.000x | cuNTT-compact-stage | stable | + +## FWHT Results + +| Numeric | Semantics | logN | N | Batch | Layout | Implementation | Design point | Median ms | Mtransform/s | Gpoint/s | vs basis | Basis | Stability | +|:--|:--|--:|--:|--:|:--|:--|:--|--:|--:|--:|--:|:--|:--| +| fp32 | forward | 8 | 256 | 16,384 | out-of-place, es=1, bs=256 | cuButterfly-warp-register | temporal-tile / warp-register / radix2 | 0.043264 | 378.698 | 96.947 | 1.000x | cuButterfly-warp-register | stable | +| fp32 | forward | 8 | 256 | 16,384 | out-of-place, es=1, bs=256 | cuButterfly-shared-radix4 | temporal-tile / radix4 | 0.051456 | 318.408 | 81.512 | 0.841x | cuButterfly-warp-register | stable | +| fp32 | forward | 15 | 32,768 | 128 | out-of-place, es=1, bs=32768 | cuButterfly-warp-register | temporal-tile / warp-register / radix2 | 0.069478 | 1.842 | 60.369 | 1.000x | cuButterfly-warp-register | stable | +| fp32 | forward | 15 | 32,768 | 128 | out-of-place, es=1, bs=32768 | cuButterfly-online-radix4 | online-reorder / radix4 | 0.369920 | 0.346 | 11.338 | 0.188x | cuButterfly-warp-register | stable | +| fp32 | forward | 20 | 1,048,576 | 4 | out-of-place, es=1, bs=1048576 | cuButterfly-online-radix4 | online-reorder / radix4 | 0.372890 | 0.011 | 11.248 | 1.000x | cuButterfly-online-radix4 | stable | +| fp32 | forward | 20 | 1,048,576 | 4 | out-of-place, es=1, bs=1048576 | cuButterfly-hierarchical-radix4 | hierarchical / radix4 | 0.495002 | 0.008 | 8.473 | 0.753x | cuButterfly-online-radix4 | stable | + +## XOR-ZETA Results + +| Numeric | Semantics | logN | N | Batch | Layout | Implementation | Design point | Median ms | Mtransform/s | Gpoint/s | vs basis | Basis | Stability | +|:--|:--|--:|--:|--:|:--|:--|:--|--:|--:|--:|--:|:--|:--| +| uint32 | forward | 8 | 256 | 16,384 | out-of-place, es=1, bs=256 | cuButterfly-radix4 | temporal-tile / radix4 | 0.050227 | 326.199 | 83.507 | 1.000x | cuButterfly-radix4 | stable | +| uint32 | forward | 8 | 256 | 16,384 | out-of-place, es=1, bs=256 | cuButterfly-radix2 | temporal-tile / radix2 | 0.052531 | 311.892 | 79.844 | 0.956x | cuButterfly-radix4 | stable | +| uint32 | forward | 20 | 1,048,576 | 4 | out-of-place, es=1, bs=1048576 | cuButterfly-online-radix4 | online-reorder / radix4 | 0.372480 | 0.011 | 11.260 | 1.000x | cuButterfly-online-radix4 | stable | +| uint32 | forward | 20 | 1,048,576 | 4 | out-of-place, es=1, bs=1048576 | cuButterfly-hierarchical-radix4 | hierarchical / radix4 | 0.493875 | 0.008 | 8.493 | 0.754x | cuButterfly-online-radix4 | stable | + +## External Coverage Gaps + +- **fwht / Dao-AILab FHT**: not-runnable; PyTorch is not installed in the active Python environment. Existing evidence: `results/external_dao_fht_v100_summary.csv`. +- **ntt / GPU-NTT**: not-runnable; the external comparator harness binary is not present. Existing evidence: `results/compact_stage_logN20.csv`. diff --git a/results/comprehensive_v100_quick_summary.csv b/results/comprehensive_v100_quick_summary.csv new file mode 100644 index 0000000..7b55fa0 --- /dev/null +++ b/results/comprehensive_v100_quick_summary.csv @@ -0,0 +1,28 @@ +case_id,group,implementation,reference,trials,median_kernel_ms,min_kernel_ms,max_kernel_ms,relative_range,central_relative_range,stability_class,correct,operator,precision,direction,normalization,placement,logN,N,performance_batch,element_stride,batch_stride,word_bits,modulus_bits,inverse,output_order,backend,compute_unit,fft_core,local_exchange,cross_twiddle,million_transforms_s,billion_points_s,comparison_basis,basis_implementation,basis_kernel_ms,throughput_vs_basis,performance_class +fft14_cub,fft-fp32-fwd-log14,cuButterfly-cuFFTDx-direct,0,3,0.133683000,0.132608000,0.134195000,0.011871,0.011871,stable,1,fft,fp32,forward,none,in-place,14,16384,256,1,16384,,,,,temporal-tile,auto,cufftdx-direct,shared,table,1.914978,31.374999,declared-reference,cuFFT,0.135731190,1.015321,parity +fft14_cufft,fft-fp32-fwd-log14,cuFFT,1,3,0.135731190,0.133990392,0.135731190,0.012825,0.012825,stable,1,fft,fp32,forward,none,in-place,14,16384,256,1,16384,,,,,,,,,,1.886081,30.901549,declared-reference,cuFFT,0.135731190,1.000000,parity +fft14_vkfft,fft-fp32-fwd-log14,VkFFT,0,3,0.173721597,0.173670396,0.173823997,0.000884,0.000884,stable,1,fft,fp32,forward,none,in-place,14,16384,256,1,16384,,,,,,,,,,1.473622,24.143826,declared-reference,cuFFT,0.135731190,0.781314,slower +fft18_cub,fft-fp32-fwd-log18,cuButterfly-cuFFTDx-online,0,3,0.212122000,0.212019000,0.212787000,0.003621,0.003621,stable,1,fft,fp32,forward,none,in-place,18,262144,16,1,262144,,,,,online-reorder,auto,cufftdx-block,shared,recurrence,0.075428,19.773074,declared-reference,cuFFT,0.226254389,1.066624,faster +fft18_vkfft,fft-fp32-fwd-log18,VkFFT,0,3,0.213299200,0.212428808,0.213350385,0.004321,0.004321,stable,1,fft,fp32,forward,none,in-place,18,262144,16,1,262144,,,,,,,,,,0.075012,19.663946,declared-reference,cuFFT,0.226254389,1.060737,faster +fft18_cufft,fft-fp32-fwd-log18,cuFFT,1,3,0.226254389,0.226150393,0.226508811,0.001584,0.001584,stable,1,fft,fp32,forward,none,in-place,18,262144,16,1,262144,,,,,,,,,,0.070717,18.538001,declared-reference,cuFFT,0.226254389,1.000000,parity +fft20_vkfft,fft-fp32-fwd-log20,VkFFT,0,3,0.217856005,0.216115192,0.218060806,0.008931,0.008931,stable,1,fft,fp32,forward,none,in-place,20,1048576,4,1,1048576,,,,,,,,,,0.018361,19.252644,declared-reference,cuFFT,0.224512011,1.030552,faster +fft20_cufft,fft-fp32-fwd-log20,cuFFT,1,3,0.224512011,0.223948792,0.224972799,0.004561,0.004561,stable,1,fft,fp32,forward,none,in-place,20,1048576,4,1,1048576,,,,,,,,,,0.017816,18.681869,declared-reference,cuFFT,0.224512011,1.000000,parity +fft20_cub,fft-fp32-fwd-log20,cuButterfly-cuFFTDx-online,0,3,0.247245000,0.246886000,0.247450000,0.002281,0.002281,stable,1,fft,fp32,forward,none,in-place,20,1048576,4,1,1048576,,,,,online-reorder,auto,cufftdx-block,shared,recurrence,0.016178,16.964161,declared-reference,cuFFT,0.224512011,0.908055,slower +fft8_cufft,fft-fp32-fwd-log8,cuFFT,1,3,0.084224001,0.084172800,0.084224001,0.000608,0.000608,stable,1,fft,fp32,forward,none,in-place,8,256,16384,1,256,,,,,,,,,,194.528873,49.799392,declared-reference,cuFFT,0.084224001,1.000000,parity +fft8_vkfft,fft-fp32-fwd-log8,VkFFT,0,3,0.084275201,0.084121600,0.084377602,0.003038,0.003038,stable,1,fft,fp32,forward,none,in-place,8,256,16384,1,256,,,,,,,,,,194.410690,49.769137,declared-reference,cuFFT,0.084224001,0.999392,parity +fft8_cub,fft-fp32-fwd-log8,cuButterfly-cuFFTDx,0,3,0.084838000,0.084787000,0.085094000,0.003619,0.003619,stable,1,fft,fp32,forward,none,in-place,8,256,16384,1,256,,,,,temporal-tile,auto,cufftdx-block,shared,table,193.121007,49.438978,declared-reference,cuFFT,0.084224001,0.992763,parity +fwht15_warp,fwht-fp32-fwd-log15,cuButterfly-warp-register,0,3,0.069478000,0.069376000,0.069530000,0.002217,0.002217,stable,1,fwht,fp32,forward,none,out-of-place,15,32768,128,1,32768,,,,,temporal-tile,radix2,scalar,warp-register,table,1.842310,60.368807,group-fastest,cuButterfly-warp-register,0.069478000,1.000000,parity +fwht15_online,fwht-fp32-fwd-log15,cuButterfly-online-radix4,0,3,0.369920000,0.369869000,0.370022000,0.000414,0.000414,stable,1,fwht,fp32,forward,none,out-of-place,15,32768,128,1,32768,,,,,online-reorder,radix4,scalar,shared,table,0.346021,11.338408,group-fastest,cuButterfly-warp-register,0.069478000,0.187819,slower +fwht20_online,fwht-fp32-fwd-log20,cuButterfly-online-radix4,0,3,0.372890000,0.372838000,0.374118000,0.003433,0.003433,stable,1,fwht,fp32,forward,none,out-of-place,20,1048576,4,1,1048576,,,,,online-reorder,radix4,scalar,shared,table,0.010727,11.248100,group-fastest,cuButterfly-online-radix4,0.372890000,1.000000,parity +fwht20_hier,fwht-fp32-fwd-log20,cuButterfly-hierarchical-radix4,0,3,0.495002000,0.495002000,0.495206000,0.000412,0.000412,stable,1,fwht,fp32,forward,none,out-of-place,20,1048576,4,1,1048576,,,,,hierarchical,radix4,scalar,shared,table,0.008081,8.473307,group-fastest,cuButterfly-online-radix4,0.372890000,0.753310,slower +fwht8_warp,fwht-fp32-fwd-log8,cuButterfly-warp-register,0,3,0.043264000,0.043110000,0.043315000,0.004738,0.004738,stable,1,fwht,fp32,forward,none,out-of-place,8,256,16384,1,256,,,,,temporal-tile,radix2,scalar,warp-register,table,378.698225,96.946746,group-fastest,cuButterfly-warp-register,0.043264000,1.000000,parity +fwht8_shared,fwht-fp32-fwd-log8,cuButterfly-shared-radix4,0,3,0.051456000,0.051405000,0.051558000,0.002973,0.002973,stable,1,fwht,fp32,forward,none,out-of-place,8,256,16384,1,256,,,,,temporal-tile,radix4,scalar,shared,table,318.407960,81.512438,group-fastest,cuButterfly-warp-register,0.043264000,0.840796,slower +ntt12_30_hybrid,ntt-u30-natural-log12,cuNTT-Hybrid2D-radix4,0,3,0.157901000,0.157747000,0.157901000,0.000975,0.000975,stable,1,ntt,uint32,forward,,,12,4096,1024,1,4096,32,30,0,natural,hybrid2d,radix4,,,fused,6.485076,26.562872,declared-reference,cuNTT-Hybrid2D-radix2,0.184627000,1.169258,faster +ntt12_30_r2,ntt-u30-natural-log12,cuNTT-Hybrid2D-radix2,1,3,0.184627000,0.184422000,0.184781000,0.001944,0.001944,stable,1,ntt,uint32,forward,,,12,4096,1024,1,4096,32,30,0,natural,hybrid2d,radix2,,,fused,5.546318,22.717717,declared-reference,cuNTT-Hybrid2D-radix2,0.184627000,1.000000,parity +ntt20_60_compact,ntt-u60-bitrev-log20,cuNTT-compact-stage,0,3,0.349901000,0.349850000,0.350208000,0.001023,0.001023,stable,1,ntt,uint64,forward,,,20,1048576,4,1,1048576,64,60,0,bit-reversed,compact-stage,radix2,,,fused,0.011432,11.987116,group-fastest,cuNTT-compact-stage,0.349901000,1.000000,parity +ntt16_60_r4,ntt-u60-natural-log16,cuNTT-Hybrid2D-radix4,0,3,0.306074000,0.305510000,0.306227000,0.002343,0.002343,stable,1,ntt,uint64,forward,,,16,65536,64,1,65536,64,60,0,natural,hybrid2d,radix4,,,fused,0.209100,13.703562,group-fastest,cuNTT-Hybrid2D-radix4,0.306074000,1.000000,parity +ntt16_60_r2,ntt-u60-natural-log16,cuNTT-Hybrid2D-radix2,0,3,0.332288000,0.332032000,0.332339000,0.000924,0.000924,stable,1,ntt,uint64,forward,,,16,65536,64,1,65536,64,60,0,natural,hybrid2d,radix2,,,fused,0.192604,12.622496,group-fastest,cuNTT-Hybrid2D-radix4,0.306074000,0.921111,slower +xor20_online,xor-u32-fwd-log20,cuButterfly-online-radix4,0,3,0.372480000,0.372429000,0.372736000,0.000824,0.000824,stable,1,xor-zeta,uint32,forward,none,out-of-place,20,1048576,4,1,1048576,,,,,online-reorder,radix4,scalar,shared,table,0.010739,11.260481,group-fastest,cuButterfly-online-radix4,0.372480000,1.000000,parity +xor20_hier,xor-u32-fwd-log20,cuButterfly-hierarchical-radix4,0,3,0.493875000,0.493773000,0.494029000,0.000518,0.000518,stable,1,xor-zeta,uint32,forward,none,out-of-place,20,1048576,4,1,1048576,,,,,hierarchical,radix4,scalar,shared,table,0.008099,8.492643,group-fastest,cuButterfly-online-radix4,0.372480000,0.754199,slower +xor8_r4,xor-u32-fwd-log8,cuButterfly-radix4,0,3,0.050227000,0.050227000,0.050278000,0.001015,0.001015,stable,1,xor-zeta,uint32,forward,none,out-of-place,8,256,16384,1,256,,,,,temporal-tile,radix4,scalar,shared,table,326.199056,83.506958,group-fastest,cuButterfly-radix4,0.050227000,1.000000,parity +xor8_r2,xor-u32-fwd-log8,cuButterfly-radix2,0,3,0.052531000,0.052378000,0.052634000,0.004873,0.004873,stable,1,xor-zeta,uint32,forward,none,out-of-place,8,256,16384,1,256,,,,,temporal-tile,radix2,scalar,shared,table,311.892026,79.844359,group-fastest,cuButterfly-radix4,0.050227000,0.956140,slower diff --git a/results/fft_architecture_explore_v100_confirm.csv b/results/fft_architecture_explore_v100_confirm.csv new file mode 100644 index 0000000..2ca63b4 --- /dev/null +++ b/results/fft_architecture_explore_v100_confirm.csv @@ -0,0 +1,61 @@ +search_stage,trial,device,compute_capability,operator,precision,direction,normalization,placement,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,stage_handoff,tile_threads,prefix_threads,suffix_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,logN,N,batch,element_stride,batch_stride,warmup,repeat,h2d_ms,kernel_ms,d2h_ms,transforms_s,Gbutterfly_s,points_s,max_error,correct +confirm,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,16,65536,64,1,65536,10,30,5.492256,0.180907,5.108288,353773.581701,185.479244,23184905450.358517,0.000000,-1 +confirm,2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,16,65536,64,1,65536,10,30,5.506464,0.180702,5.099232,354174.537057,185.689460,23211182460.537769,0.000000,-1 +confirm,3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,16,65536,64,1,65536,10,30,5.514144,0.180634,5.109664,354308.410372,185.759648,23219955982.157898,0.000000,-1 +confirm,4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,16,65536,64,1,65536,10,30,5.459552,0.181043,5.104320,353506.801498,185.339374,23167421742.970203,0.000000,-1 +confirm,5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,16,65536,64,1,65536,10,30,5.459904,0.180668,5.106304,354241.461066,185.724547,23215568392.435555,0.000000,-1 +confirm,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,512,6,1,0,0,16,65536,64,1,65536,10,30,5.529600,0.212821,5.104032,300721.730367,157.664795,19708099321.312866,0.000000,-1 +confirm,2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,512,6,1,0,0,16,65536,64,1,65536,10,30,5.542304,0.212685,5.112672,300914.766557,157.766001,19720750141.081127,0.000000,-1 +confirm,3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,512,6,1,0,0,16,65536,64,1,65536,10,30,5.571776,0.213026,5.124736,300432.640006,157.513228,19689153495.433144,0.000000,-1 +confirm,4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,512,6,1,0,0,16,65536,64,1,65536,10,30,5.524704,0.212412,5.110592,301301.625638,157.968827,19746103337.819992,0.000000,-1 +confirm,5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,512,6,1,0,0,16,65536,64,1,65536,10,30,5.525856,0.212139,5.113344,301689.459508,158.172163,19771520418.326424,0.000000,-1 +confirm,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,512,6,1,0,0,16,65536,64,1,65536,10,30,5.525536,0.215552,5.114048,296912.110996,155.667457,19458432106.201740,0.000000,-1 +confirm,2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,512,6,1,0,0,16,65536,64,1,65536,10,30,5.558048,0.215689,5.110464,296724.174437,155.568924,19446115495.921825,0.000000,-1 +confirm,3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,512,6,1,0,0,16,65536,64,1,65536,10,30,5.541408,0.215347,5.111616,297194.483198,155.815501,19476937650.866688,0.000000,-1 +confirm,4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,512,6,1,0,0,16,65536,64,1,65536,10,30,5.556512,0.215381,5.119360,297147.377020,155.790804,19473850500.360283,0.000000,-1 +confirm,5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,512,6,1,0,0,16,65536,64,1,65536,10,30,5.585344,0.216917,5.117696,295043.269404,154.687646,19335955703.649277,0.000000,-1 +confirm,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,6,1,0,0,16,65536,64,1,65536,10,30,5.552512,0.226441,5.108704,282634.910238,148.182092,18522761477.328857,0.000000,-1 +confirm,2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,6,1,0,0,16,65536,64,1,65536,10,30,5.561248,0.226544,5.114944,282505.835714,148.114420,18514302449.344639,0.000000,-1 +confirm,3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,6,1,0,0,16,65536,64,1,65536,10,30,5.548672,0.226236,5.115424,282890.767567,148.316235,18539529343.284401,0.000000,-1 +confirm,4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,6,1,0,0,16,65536,64,1,65536,10,30,5.528896,0.226338,5.119968,282762.781024,148.249133,18531141617.215019,0.000000,-1 +confirm,5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,6,1,0,0,16,65536,64,1,65536,10,30,5.561632,0.227328,5.118912,281531.528494,147.603602,18450450251.371616,0.000000,-1 +confirm,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,18,262144,16,1,262144,10,30,5.469248,0.227260,5.113184,70404.027711,166.103941,18455993440.403088,0.000000,-1 +confirm,2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,18,262144,16,1,262144,10,30,5.471424,0.226748,5.116960,70562.997711,166.478998,18497666471.990566,0.000000,-1 +confirm,3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,18,262144,16,1,262144,10,30,5.474912,0.226918,5.115808,70509.928005,166.353791,18483754566.888508,0.000000,-1 +confirm,4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,18,262144,16,1,262144,10,30,5.489472,0.226475,5.122432,70648.076535,166.679724,18519969375.225830,0.000000,-1 +confirm,5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,18,262144,16,1,262144,10,30,5.466624,0.226577,5.114944,70616.152008,166.604405,18511600552.060135,0.000000,-1 +confirm,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,256,9,1,0,0,18,262144,16,1,262144,10,30,5.468672,0.212275,5.117248,75373.851817,177.829227,19758803010.642761,0.000000,-1 +confirm,2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,256,9,1,0,0,18,262144,16,1,262144,10,30,5.468576,0.211797,5.113216,75543.918526,178.230465,19803384978.022694,0.000000,-1 +confirm,3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,256,9,1,0,0,18,262144,16,1,262144,10,30,5.488992,0.212514,5.135264,75289.110563,177.629297,19736588599.403347,0.000000,-1 +confirm,4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,256,9,1,0,0,18,262144,16,1,262144,10,30,5.470848,0.212275,5.117440,75373.851817,177.829227,19758803010.642761,0.000000,-1 +confirm,5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,256,9,1,0,0,18,262144,16,1,262144,10,30,5.488224,0.212924,5.120608,75144.276289,177.287590,19698621163.634583,0.000000,-1 +confirm,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,512,9,1,0,0,18,262144,16,1,262144,10,30,5.483136,0.216405,5.114368,73935.331656,174.435332,19381703581.524006,0.000000,-1 +confirm,2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,512,9,1,0,0,18,262144,16,1,262144,10,30,5.497536,0.216098,5.131552,74040.437178,174.683307,19409256363.606373,0.000000,-1 +confirm,3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,512,9,1,0,0,18,262144,16,1,262144,10,30,5.469248,0.215518,5.114208,74239.785651,175.153629,19461514369.762238,0.000000,-1 +confirm,4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,512,9,1,0,0,18,262144,16,1,262144,10,30,5.495488,0.215927,5.113920,74098.956658,174.821372,19424596894.166008,0.000000,-1 +confirm,5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,512,9,1,0,0,18,262144,16,1,262144,10,30,5.481248,0.215757,5.123232,74157.568715,174.959655,19439961693.355030,0.000000,-1 +confirm,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,128,9,1,0,0,18,262144,16,1,262144,10,30,5.510624,0.229581,5.115552,69692.237644,164.424618,18269401944.897572,0.000000,-1 +confirm,2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,128,9,1,0,0,18,262144,16,1,262144,10,30,5.492864,0.229649,5.113056,69671.521919,164.375743,18263971441.995480,0.000000,-1 +confirm,3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,128,9,1,0,0,18,262144,16,1,262144,10,30,5.462848,0.229990,5.110016,69568.118737,164.131784,18236864918.298126,0.000000,-1 +confirm,4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,128,9,1,0,0,18,262144,16,1,262144,10,30,5.472352,0.230161,5.124160,69516.538912,164.010092,18223343576.474377,0.000000,-1 +confirm,5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,128,9,1,0,0,18,262144,16,1,262144,10,30,5.467424,0.229922,5.112864,69588.777518,164.180524,18242280493.655754,0.000000,-1 +confirm,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,20,1048576,4,1,1048576,10,30,5.489344,0.223232,5.120064,17918.577896,187.889907,18788990735.947491,0.000000,-1 +confirm,2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,20,1048576,4,1,1048576,10,30,5.516640,0.223334,5.125824,17910.362071,187.803758,18780375819.097744,0.000000,-1 +confirm,3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,20,1048576,4,1,1048576,10,30,5.504832,0.222754,5.109216,17957.017888,188.292980,18829297989.437931,0.000000,-1 +confirm,4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,20,1048576,4,1,1048576,10,30,5.481952,0.223266,5.107872,17915.838052,187.861178,18786117801.008961,0.000000,-1 +confirm,5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,20,1048576,4,1,1048576,10,30,5.521856,0.222959,5.117056,17940.523258,188.120021,18812002115.863762,0.000000,-1 +confirm,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,10,1,0,0,20,1048576,4,1,1048576,10,30,5.495744,0.246238,5.105056,16244.455723,170.335464,17033546404.361994,0.000000,-1 +confirm,2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,10,1,0,0,20,1048576,4,1,1048576,10,30,5.501568,0.245180,5.120032,16314.562537,171.070587,17107058727.077679,0.000000,-1 +confirm,3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,10,1,0,0,20,1048576,4,1,1048576,10,30,5.479968,0.245146,5.116960,16316.833484,171.094400,17109439987.158331,0.000000,-1 +confirm,4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,10,1,0,0,20,1048576,4,1,1048576,10,30,5.496256,0.244907,5.116128,16332.752798,171.261326,17126132598.025921,0.000000,-1 +confirm,5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,10,1,0,0,20,1048576,4,1,1048576,10,30,5.482848,0.247706,5.103136,16148.201175,169.326162,16932616195.484373,0.000000,-1 +confirm,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,256,10,1,0,0,20,1048576,4,1,1048576,10,30,5.506368,0.258492,5.124224,15474.383190,162.260668,16226066828.207113,0.000000,-1 +confirm,2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,256,10,1,0,0,20,1048576,4,1,1048576,10,30,5.489728,0.257638,5.119232,15525.636241,162.798095,16279809547.505758,0.000000,-1 +confirm,3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,256,10,1,0,0,20,1048576,4,1,1048576,10,30,5.489280,0.258048,5.115648,15500.992187,162.539684,16253968382.999020,0.000000,-1 +confirm,4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,256,10,1,0,0,20,1048576,4,1,1048576,10,30,5.478656,0.257229,5.123776,15550.358781,163.057330,16305733009.344046,0.000000,-1 +confirm,5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,256,10,1,0,0,20,1048576,4,1,1048576,10,30,5.464384,0.257468,5.110528,15535.928340,162.906016,16290601594.540594,0.000000,-1 +confirm,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,512,10,1,0,0,20,1048576,4,1,1048576,10,30,5.468160,0.267435,5.118560,14956.924621,156.834722,15683472190.963331,0.000000,-1 +confirm,2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,512,10,1,0,0,20,1048576,4,1,1048576,10,30,5.457312,0.267674,5.101728,14943.574082,156.694731,15669473136.609091,0.000000,-1 +confirm,3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,512,10,1,0,0,20,1048576,4,1,1048576,10,30,5.475488,0.267742,5.120512,14939.763306,156.654772,15665477248.513401,0.000000,-1 +confirm,4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,512,10,1,0,0,20,1048576,4,1,1048576,10,30,5.468320,0.267264,5.116736,14966.476287,156.934878,15693487839.596624,0.000000,-1 +confirm,5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,512,10,1,0,0,20,1048576,4,1,1048576,10,30,5.454816,0.266581,5.125408,15004.801909,157.336752,15733675166.065454,0.000000,-1 diff --git a/results/fft_architecture_explore_v100_search.csv b/results/fft_architecture_explore_v100_search.csv new file mode 100644 index 0000000..a30d7cc --- /dev/null +++ b/results/fft_architecture_explore_v100_search.csv @@ -0,0 +1,115 @@ +search_stage,trial,device,compute_capability,operator,precision,direction,normalization,placement,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,stage_handoff,tile_threads,prefix_threads,suffix_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,logN,N,batch,element_stride,batch_stride,warmup,repeat,h2d_ms,kernel_ms,d2h_ms,transforms_s,Gbutterfly_s,points_s,max_error,correct +coarse,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,512,512,6,1,0,0,16,65536,64,1,65536,10,30,5.602112,0.254191,5.113984,251779.221883,132.004825,16500603085.333464,0.000000,-1 +coarse,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,6,1,0,0,16,65536,64,1,65536,10,30,5.567648,0.225485,5.107456,283832.875023,148.810170,18601271297.501213,0.000000,-1 +coarse,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,512,512,7,1,0,0,16,65536,64,1,65536,10,30,5.572416,0.289963,5.119456,220718.059952,115.719830,14464978777.021261,0.000000,-1 +coarse,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,7,1,0,0,16,65536,64,1,65536,10,30,5.542016,0.281293,5.113760,227520.935052,119.286496,14910811999.564342,0.000000,-1 +coarse,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,512,512,8,1,0,0,16,65536,64,1,65536,10,30,5.572896,0.304538,5.118464,210154.657195,110.181565,13772695613.916876,0.000000,-1 +coarse,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,8,1,0,0,16,65536,64,1,65536,10,30,5.528768,0.300476,5.105664,212995.581560,111.671027,13958878433.130880,0.000000,-1 +coarse,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,512,512,9,1,0,0,16,65536,64,1,65536,10,30,5.559872,0.283546,5.115936,225713.267028,118.338757,14792344667.921282,0.000000,-1 +coarse,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,9,1,0,0,16,65536,64,1,65536,10,30,5.521824,0.267708,5.106880,239066.681911,125.339793,15667474065.696135,0.000000,-1 +coarse,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,512,512,10,1,0,0,16,65536,64,1,65536,10,30,5.543264,0.258799,5.116832,247296.233894,129.654448,16206805984.502497,0.000000,-1 +coarse,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,10,1,0,0,16,65536,64,1,65536,10,30,5.524768,0.237022,5.103584,270017.284758,141.566822,17695852773.928867,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,128,6,1,0,0,16,65536,64,1,65536,10,30,5.537600,0.314982,5.113696,203185.946597,106.527954,13315994196.201439,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,256,6,1,0,0,16,65536,64,1,65536,10,30,5.553984,0.230775,5.131712,277325.846662,145.398613,18174826686.856571,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,512,6,1,0,0,16,65536,64,1,65536,10,30,5.525280,0.212787,5.105248,300769.976723,157.690090,19711261194.534111,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,1024,6,1,0,0,16,65536,64,1,65536,10,30,5.560608,0.252587,5.113440,253378.382288,132.843245,16605405661.622658,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,128,6,1,0,0,16,65536,64,1,65536,10,30,5.523552,0.318498,5.103200,200943.092109,105.352052,13169006484.436453,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,256,6,1,0,0,16,65536,64,1,65536,10,30,5.574176,0.234121,5.111040,273363.464602,143.321184,17915148016.187569,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,512,6,1,0,0,16,65536,64,1,65536,10,30,5.566080,0.215927,5.099712,296395.826632,155.396775,19424596894.166008,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,1024,6,1,0,0,16,65536,64,1,65536,10,30,5.570464,0.255351,5.113152,250634.954266,131.404899,16425612362.790525,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,128,6,1,0,0,16,65536,64,1,65536,10,30,5.536928,0.326588,5.105056,195965.717099,102.742474,12842809235.829905,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,256,6,1,0,0,16,65536,64,1,65536,10,30,5.526560,0.246272,5.101280,259875.246588,136.249473,17031184160.416918,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,6,1,0,0,16,65536,64,1,65536,10,30,5.544672,0.226304,5.112864,282805.417921,148.271487,18533935868.899498,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,1024,6,1,0,0,16,65536,64,1,65536,10,30,5.566912,0.265830,5.114464,240755.009872,126.224963,15778120326.999699,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,1024,128,6,1,0,0,16,65536,64,1,65536,10,30,5.567552,0.374374,5.107840,170951.864683,89.628011,11203501403.872019,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,1024,256,6,1,0,0,16,65536,64,1,65536,10,30,5.582784,0.289860,5.113792,220796.034422,115.760711,14470088911.855188,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,1024,512,6,1,0,0,16,65536,64,1,65536,10,30,5.561696,0.271872,5.128864,235404.884467,123.419956,15427494508.401030,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,1024,1024,6,1,0,0,16,65536,64,1,65536,10,30,5.529280,0.309828,5.114208,206566.036226,108.300094,13537511750.097345,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,128,10,1,0,0,16,65536,64,1,65536,10,30,5.527680,0.360004,5.114848,177775.666180,93.205648,11650706058.742495,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,256,10,1,0,0,16,65536,64,1,65536,10,30,5.522624,0.362530,5.111552,176537.044988,92.556254,11569531780.348593,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,512,10,1,0,0,16,65536,64,1,65536,10,30,5.521568,0.365807,5.111392,174955.676037,91.727161,11465895184.769918,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,1024,10,1,0,0,16,65536,64,1,65536,10,30,5.526944,0.386116,5.110144,165753.169846,86.902398,10862799739.032516,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,128,10,1,0,0,16,65536,64,1,65536,10,30,5.523776,0.254157,5.111552,251813.055847,132.022563,16502820427.996103,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,256,10,1,0,0,16,65536,64,1,65536,10,30,5.545056,0.255932,5.120160,250066.682783,131.106961,16388370122.856512,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,512,10,1,0,0,16,65536,64,1,65536,10,30,5.523776,0.259857,5.114208,246289.249802,129.126498,16140812275.049671,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,1024,10,1,0,0,16,65536,64,1,65536,10,30,5.526400,0.280986,5.109856,227769.660171,119.416900,14927112448.995701,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,128,10,1,0,0,16,65536,64,1,65536,10,30,5.525792,0.231697,5.118144,276222.744888,144.820270,18102533808.966755,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,256,10,1,0,0,16,65536,64,1,65536,10,30,5.522336,0.233950,5.113568,273562.879241,143.425735,17928216853.936436,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,10,1,0,0,16,65536,64,1,65536,10,30,5.595776,0.235895,5.111456,271306.626198,142.242808,17780351054.538418,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,1024,10,1,0,0,16,65536,64,1,65536,10,30,5.539296,0.257024,5.102944,249003.993602,130.549806,16318725724.717642,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,1024,128,10,1,0,0,16,65536,64,1,65536,10,30,5.566208,0.276719,5.120384,231281.599311,121.258167,15157270892.461691,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,1024,256,10,1,0,0,16,65536,64,1,65536,10,30,5.577184,0.278528,5.096608,229779.407735,120.470586,15058823265.315756,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,1024,512,10,1,0,0,16,65536,64,1,65536,10,30,5.540288,0.281737,5.110496,227162.596238,119.098623,14887327907.058426,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,1024,1024,10,1,0,0,16,65536,64,1,65536,10,30,5.588448,0.302421,5.113088,211625.262661,110.952586,13869073213.766006,0.000000,-1 +coarse,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,512,512,8,1,0,0,18,262144,16,1,262144,10,30,5.455328,0.300885,5.106144,53176.406265,125.458883,13939875843.878529,0.000000,-1 +coarse,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,8,1,0,0,18,262144,16,1,262144,10,30,5.489600,0.291942,5.103360,54805.328155,129.301991,14366887943.759684,0.000000,-1 +coarse,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,512,512,9,1,0,0,18,262144,16,1,262144,10,30,5.483712,0.280849,5.105568,56970.101545,134.409333,14934370299.335583,0.000000,-1 +coarse,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,9,1,0,0,18,262144,16,1,262144,10,30,5.500352,0.252211,5.111456,63438.892358,149.671125,16630124998.207214,0.000000,-1 +coarse,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,512,512,10,1,0,0,18,262144,16,1,262144,10,30,5.500256,0.296175,5.106656,54022.125619,127.454185,14161576098.178484,0.000000,-1 +coarse,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,10,1,0,0,18,262144,16,1,262144,10,30,5.507200,0.259038,5.122240,61767.034658,145.726718,16191857533.424114,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,128,9,1,0,0,18,262144,16,1,262144,10,30,5.536416,0.265182,5.146368,60335.949981,142.350365,15816707271.772495,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,256,9,1,0,0,18,262144,16,1,262144,10,30,5.508992,0.248491,5.128512,64388.737633,151.912091,16879121238.044353,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,512,9,1,0,0,18,262144,16,1,262144,10,30,5.512032,0.250607,5.117568,63845.003665,150.629262,16736584640.636616,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,1024,9,1,0,0,18,262144,16,1,262144,10,30,5.519584,0.300851,5.114624,53182.437730,125.473113,13941456956.328505,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,128,9,1,0,0,18,262144,16,1,262144,10,30,5.525920,0.229717,5.150080,69650.818506,164.326897,18258544166.522346,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,256,9,1,0,0,18,262144,16,1,262144,10,30,5.494432,0.211593,5.109888,75617.037897,178.402975,19822552782.372967,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,512,9,1,0,0,18,262144,16,1,262144,10,30,5.514432,0.216542,5.113856,73888.717205,174.325355,19369483882.995438,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,1024,9,1,0,0,18,262144,16,1,262144,10,30,5.522752,0.265250,5.112160,60320.425890,142.313740,15812637724.625765,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,128,9,1,0,0,18,262144,16,1,262144,10,30,5.499328,0.269449,5.138848,59380.538829,140.096268,15566251970.876854,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,256,9,1,0,0,18,262144,16,1,262144,10,30,5.517408,0.250573,5.105760,63853.698244,150.649775,16738863872.492159,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,9,1,0,0,18,262144,16,1,262144,10,30,5.520224,0.252348,5.111168,63404.570833,149.590150,16621127816.359833,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,1024,9,1,0,0,18,262144,16,1,262144,10,30,5.486560,0.301124,5.106688,53134.213766,125.359338,13928815333.344748,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,1024,128,9,1,0,0,18,262144,16,1,262144,10,30,5.490176,0.339627,5.122592,47110.552318,111.147738,12349748626.737499,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,1024,256,9,1,0,0,18,262144,16,1,262144,10,30,5.495072,0.322287,5.107008,49645.202237,117.127727,13014191895.282433,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,1024,512,9,1,0,0,18,262144,16,1,262144,10,30,5.516288,0.325222,5.112192,49197.102849,116.070528,12896725329.333572,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,1024,1024,9,1,0,0,18,262144,16,1,262144,10,30,5.525728,0.373589,5.118496,42827.774834,101.043398,11227044206.125000,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,128,10,1,0,0,18,262144,16,1,262144,10,30,5.522240,0.357888,5.119680,44706.722252,105.476391,11719598997.972893,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,256,10,1,0,0,18,262144,16,1,262144,10,30,5.531776,0.359219,5.125952,44541.049842,105.085521,11676168969.751595,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,512,10,1,0,0,18,262144,16,1,262144,10,30,5.521056,0.378505,5.120224,42271.619278,99.731262,11081251364.046391,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,1024,10,1,0,0,18,262144,16,1,262144,10,30,5.533696,0.414652,5.118528,38586.596925,91.037204,10115244864.256655,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,128,10,1,0,0,18,262144,16,1,262144,10,30,5.505088,0.254874,5.113312,62776.214465,148.107672,16456407964.759228,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,256,10,1,0,0,18,262144,16,1,262144,10,30,5.518592,0.256649,5.113824,62342.065024,147.083385,16342598293.684311,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,512,10,1,0,0,18,262144,16,1,262144,10,30,5.510432,0.275934,5.120576,57984.909498,136.803565,15200396115.451628,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,1024,10,1,0,0,18,262144,16,1,262144,10,30,5.478432,0.311945,5.133984,51291.167907,121.011047,13445671919.686043,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,128,10,1,0,0,18,262144,16,1,262144,10,30,5.467168,0.239889,5.115584,66697.494696,157.359132,17484348049.505417,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,256,10,1,0,0,18,262144,16,1,262144,10,30,5.483808,0.241971,5.123936,66123.569095,156.005072,17333896896.861534,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,10,1,0,0,18,262144,16,1,262144,10,30,5.472416,0.257195,5.118848,62209.687786,146.771068,16307896395.075747,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,1024,10,1,0,0,18,262144,16,1,262144,10,30,5.475648,0.296311,5.114560,53997.235119,127.395461,14155051203.128208,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,1024,128,10,1,0,0,18,262144,16,1,262144,10,30,5.467840,0.283443,5.110912,56448.702866,133.179199,14797688764.094198,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,1024,256,10,1,0,0,18,262144,16,1,262144,10,30,5.465184,0.285628,5.120480,56016.965640,132.160603,14684511440.729034,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,1024,512,10,1,0,0,18,262144,16,1,262144,10,30,5.476544,0.304401,5.114336,52562.233130,124.009866,13778874041.605425,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,1024,1024,10,1,0,0,18,262144,16,1,262144,10,30,5.467872,0.339729,5.117760,47096.356436,111.114245,12346027261.515436,0.000000,-1 +coarse,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,512,512,10,1,0,0,20,1048576,4,1,1048576,10,30,5.450304,0.311740,5.099776,12831.216080,134.545052,13454505232.219879,0.000000,-1 +coarse,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,10,1,0,0,20,1048576,4,1,1048576,10,30,5.453120,0.250675,5.108320,15956.903505,167.320260,16732026049.274879,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,128,10,1,0,0,20,1048576,4,1,1048576,10,30,5.462752,0.462404,5.109952,8650.439503,90.706433,9070643252.164516,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,256,10,1,0,0,20,1048576,4,1,1048576,10,30,5.452864,0.379836,5.102624,10530.868316,110.424158,11042415775.583727,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,512,10,1,0,0,20,1048576,4,1,1048576,10,30,5.459232,0.366967,5.111424,10900.148741,114.296344,11429634365.800144,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,128,1024,10,1,0,0,20,1048576,4,1,1048576,10,30,5.459456,0.403388,5.102560,9916.018135,103.976986,10397698631.824028,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,128,10,1,0,0,20,1048576,4,1,1048576,10,30,5.450784,0.362837,5.103648,11024.223558,115.597362,11559736241.711714,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,256,10,1,0,0,20,1048576,4,1,1048576,10,30,5.448928,0.280201,5.098976,14275.489924,149.689361,14968936122.464548,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,512,10,1,0,0,20,1048576,4,1,1048576,10,30,5.449952,0.267127,5.103616,14974.123736,157.015068,15701506770.804672,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,1024,10,1,0,0,20,1048576,4,1,1048576,10,30,5.453344,0.306825,5.099744,13036.767083,136.700411,13670041081.307308,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,128,10,1,0,0,20,1048576,4,1,1048576,10,30,5.454848,0.341060,5.107104,11728.133045,122.978388,12297838835.608583,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,256,10,1,0,0,20,1048576,4,1,1048576,10,30,5.448800,0.257058,5.103744,15560.683694,163.165595,16316559465.011345,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,10,1,0,0,20,1048576,4,1,1048576,10,30,5.449536,0.248183,5.102400,16117.108591,169.000133,16900013257.672340,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,1024,10,1,0,0,20,1048576,4,1,1048576,10,30,5.448960,0.283238,5.101856,14122.378341,148.083870,14808386990.791153,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,1024,128,10,1,0,0,20,1048576,4,1,1048576,10,30,5.450432,0.389359,5.101440,10273.296982,107.723327,10772332656.191124,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,1024,256,10,1,0,0,20,1048576,4,1,1048576,10,30,5.453440,0.306586,5.108672,13046.926766,136.806943,13680694280.439213,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,1024,512,10,1,0,0,20,1048576,4,1,1048576,10,30,5.455776,0.293410,5.100832,13632.793446,142.950200,14295020020.934849,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,1024,1024,10,1,0,0,20,1048576,4,1,1048576,10,30,5.456128,0.330820,5.112608,12091.157811,126.784979,12678497892.374081,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,128,128,10,1,0,0,20,1048576,4,1,1048576,10,30,5.448544,0.559616,5.101280,7147.758089,74.949676,7494967586.127255,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,128,256,10,1,0,0,20,1048576,4,1,1048576,10,30,5.456544,0.477969,5.104672,8368.742175,87.752622,8775262195.118450,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,128,512,10,1,0,0,20,1048576,4,1,1048576,10,30,5.455488,0.464657,5.102592,8608.499751,90.266662,9026666235.357494,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,128,1024,10,1,0,0,20,1048576,4,1,1048576,10,30,5.462336,0.500087,5.109088,7998.601204,83.871413,8387141256.504143,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,256,128,10,1,0,0,20,1048576,4,1,1048576,10,30,5.477024,0.475238,5.126016,8416.828574,88.256844,8825684438.921148,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,256,256,10,1,0,0,20,1048576,4,1,1048576,10,30,5.493152,0.391987,5.110656,10204.414720,107.001044,10700104368.959929,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,256,512,10,1,0,0,20,1048576,4,1,1048576,10,30,5.468128,0.378607,5.114528,10565.047379,110.782551,11078255120.484510,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,256,1024,10,1,0,0,20,1048576,4,1,1048576,10,30,5.452416,0.429295,5.104032,9317.603335,97.702152,9770215234.263592,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,512,128,10,1,0,0,20,1048576,4,1,1048576,10,30,5.491712,0.410078,5.126976,9754.244971,102.280672,10228067174.420799,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,512,256,10,1,0,0,20,1048576,4,1,1048576,10,30,5.460288,0.328090,5.118560,12191.791702,127.840202,12784020176.051653,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,512,512,10,1,0,0,20,1048576,4,1,1048576,10,30,5.475744,0.313890,5.120032,12743.312472,133.623316,13362331618.972874,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,512,1024,10,1,0,0,20,1048576,4,1,1048576,10,30,5.483712,0.349525,5.109952,11444.091826,120.000000,12000000030.297089,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,1024,128,10,1,0,0,20,1048576,4,1,1048576,10,30,5.494880,0.435746,5.113088,9179.656901,96.255679,9625567914.902826,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,1024,256,10,1,0,0,20,1048576,4,1,1048576,10,30,5.497376,0.352905,5.113664,11334.510266,118.850954,11885095437.172503,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,1024,512,10,1,0,0,20,1048576,4,1,1048576,10,30,5.483936,0.339627,5.129472,11777.638079,123.497486,12349748626.737499,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,1024,1024,10,1,0,0,20,1048576,4,1,1048576,10,30,5.465600,0.376013,5.113632,10637.935670,111.546840,11154684032.849918,0.000000,-1 diff --git a/results/fft_architecture_explore_v100_summary.csv b/results/fft_architecture_explore_v100_summary.csv new file mode 100644 index 0000000..2c37fc9 --- /dev/null +++ b/results/fft_architecture_explore_v100_summary.csv @@ -0,0 +1,13 @@ +logN,batch,backend,local_stages,remaining_stages,cross_twiddle,prefix_threads,suffix_threads,trials,median_kernel_ms,min_kernel_ms,max_kernel_ms +16,64,cufft,0,0,table,0,0,5,0.180702,0.180634,0.181043 +16,64,online-reorder,6,10,recurrence,128,512,5,0.212685,0.212139,0.213026 +16,64,online-reorder,6,10,recurrence,256,512,5,0.215552,0.215347,0.216917 +16,64,online-reorder,6,10,recurrence,512,512,5,0.226441,0.226236,0.227328 +18,16,cufft,0,0,table,0,0,5,0.226748,0.226475,0.227260 +18,16,online-reorder,9,9,recurrence,256,256,5,0.212275,0.211797,0.212924 +18,16,online-reorder,9,9,recurrence,256,512,5,0.215927,0.215518,0.216405 +18,16,online-reorder,9,9,recurrence,256,128,5,0.229922,0.229581,0.230161 +20,4,cufft,0,0,table,0,0,5,0.223232,0.222754,0.223334 +20,4,online-reorder,10,10,recurrence,512,512,5,0.245180,0.244907,0.247706 +20,4,online-reorder,10,10,recurrence,512,256,5,0.257638,0.257229,0.258492 +20,4,online-reorder,10,10,recurrence,256,512,5,0.267435,0.266581,0.267742 diff --git a/results/fft_architecture_logN18_confirm_v100_confirm.csv b/results/fft_architecture_logN18_confirm_v100_confirm.csv new file mode 100644 index 0000000..df964a3 --- /dev/null +++ b/results/fft_architecture_logN18_confirm_v100_confirm.csv @@ -0,0 +1,15 @@ +search_stage,trial,device,compute_capability,operator,precision,direction,normalization,placement,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,stage_handoff,tile_threads,prefix_threads,suffix_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,logN,N,batch,element_stride,batch_stride,warmup,repeat,h2d_ms,kernel_ms,d2h_ms,transforms_s,Gbutterfly_s,points_s,max_error,correct +confirm,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,18,262144,16,1,262144,20,100,5.502592,0.227062,5.113344,70465.408883,166.248757,18472084146.127373,0.000000,-1 +confirm,2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,18,262144,16,1,262144,20,100,5.504608,0.226939,5.110688,70503.566670,166.338783,18482086981.259270,0.000000,-1 +confirm,3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,18,262144,16,1,262144,20,100,5.532544,0.226877,5.116224,70522.658750,166.383827,18487091855.298687,0.000000,-1 +confirm,4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,18,262144,16,1,262144,20,100,5.539424,0.226314,5.119520,70698.156376,166.797878,18533097504.917534,0.000000,-1 +confirm,5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,18,262144,16,1,262144,20,100,5.539808,0.226130,5.100992,70755.785215,166.933841,18548204559.392941,0.000000,-1 +confirm,6,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,18,262144,16,1,262144,20,100,5.504736,0.226161,5.111136,70746.172331,166.911161,18545684599.576317,0.000000,-1 +confirm,7,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,0,0,18,262144,16,1,262144,20,100,5.516928,0.227144,5.115776,70439.993295,166.188794,18465421602.439621,0.000000,-1 +confirm,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,256,9,1,0,0,18,262144,16,1,262144,20,100,5.496480,0.212019,5.110080,75464.867050,178.043959,19782662108.072979,0.000000,-1 +confirm,2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,256,9,1,0,0,18,262144,16,1,262144,20,100,5.507456,0.211784,5.111552,75548.787333,178.241952,19804661306.712753,0.000000,-1 +confirm,3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,256,9,1,0,0,18,262144,16,1,262144,20,100,5.551392,0.212152,5.110080,75417.507053,177.932223,19770246968.888908,0.000000,-1 +confirm,4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,256,9,1,0,0,18,262144,16,1,262144,20,100,5.505024,0.212214,5.106432,75395.673116,177.880710,19764523333.209705,0.000000,-1 +confirm,5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,256,9,1,0,0,18,262144,16,1,262144,20,100,5.504160,0.211988,5.115264,75475.794526,178.069740,19785526680.301220,0.000000,-1 +confirm,6,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,256,9,1,0,0,18,262144,16,1,262144,20,100,5.531456,0.212009,5.123744,75468.510959,178.052556,19783617336.814999,0.000000,-1 +confirm,7,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,256,9,1,0,0,18,262144,16,1,262144,20,100,5.531680,0.212408,5.135616,75326.616521,177.717785,19746420561.411953,0.000000,-1 diff --git a/results/fft_architecture_logN18_confirm_v100_search.csv b/results/fft_architecture_logN18_confirm_v100_search.csv new file mode 100644 index 0000000..15530d4 --- /dev/null +++ b/results/fft_architecture_logN18_confirm_v100_search.csv @@ -0,0 +1,4 @@ +search_stage,trial,device,compute_capability,operator,precision,direction,normalization,placement,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,stage_handoff,tile_threads,prefix_threads,suffix_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,logN,N,batch,element_stride,batch_stride,warmup,repeat,h2d_ms,kernel_ms,d2h_ms,transforms_s,Gbutterfly_s,points_s,max_error,correct +coarse,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,512,512,9,1,0,0,18,262144,16,1,262144,20,100,5.494624,0.282143,5.112544,56708.886602,133.793049,14865894369.495157,0.000000,-1 +coarse,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,512,512,9,1,0,0,18,262144,16,1,262144,20,100,5.491936,0.250788,5.116480,63798.942941,150.520591,16724510098.263063,0.000000,-1 +fine,1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,256,256,9,1,0,0,18,262144,16,1,262144,20,100,5.503104,0.211968,5.111584,75483.090112,178.086953,19787439174.447792,0.000000,-1 diff --git a/results/fft_architecture_logN18_confirm_v100_summary.csv b/results/fft_architecture_logN18_confirm_v100_summary.csv new file mode 100644 index 0000000..9c8db02 --- /dev/null +++ b/results/fft_architecture_logN18_confirm_v100_summary.csv @@ -0,0 +1,3 @@ +logN,batch,backend,local_stages,remaining_stages,cross_twiddle,prefix_threads,suffix_threads,trials,median_kernel_ms,min_kernel_ms,max_kernel_ms +18,16,cufft,0,0,table,0,0,7,0.226877,0.226130,0.227144 +18,16,online-reorder,9,9,recurrence,256,256,7,0.212019,0.211784,0.212408 diff --git a/results/fft_cubutterfly_selected_v100_raw.csv b/results/fft_cubutterfly_selected_v100_raw.csv new file mode 100644 index 0000000..5c66711 --- /dev/null +++ b/results/fft_cubutterfly_selected_v100_raw.csv @@ -0,0 +1,16 @@ +trial,device,compute_capability,operator,precision,direction,normalization,placement,backend,compute_unit,complex_multiply,local_exchange,fft_core,stage_space,stage_handoff,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,logN,N,batch,element_stride,batch_stride,warmup,repeat,h2d_ms,kernel_ms,d2h_ms,transforms_s,Gbutterfly_s,points_s,max_error,correct +1,"Tesla V100-SXM2-16GB",7.0,fft,fp32,forward,none,in-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,3,8,524288,1,8,20,100,5.523008,0.094218,5.129280,5564612150.023103,66.775346,44516897200.184822,0.000001,1 +1,"Tesla V100-SXM2-16GB",7.0,fft,fp32,forward,none,in-place,temporal-tile,radix4,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,8,256,16384,1,256,20,100,5.542368,0.110633,5.111488,148093294.121822,151.647533,37911883295.186546,0.000010,1 +1,"Tesla V100-SXM2-16GB",7.0,fft,fp32,forward,none,in-place,online-reorder,radix4,four-mul,shared,scalar,0,named-barrier,256,10,64,0,0,12,4096,1024,1,4096,20,100,5.514784,0.297298,5.101120,3444356.366890,84.648502,14108083678.781851,0.000047,1 +1,"Tesla V100-SXM2-16GB",7.0,fft,fp32,forward,none,in-place,online-reorder,radix4,four-mul,shared,scalar,0,named-barrier,256,10,8,0,0,16,65536,64,1,65536,20,100,5.567680,0.486932,5.102080,131435.058866,68.909824,8613728017.836378,0.000186,1 +1,"Tesla V100-SXM2-16GB",7.0,fft,fp32,forward,none,in-place,online-reorder,radix4,four-mul,shared,scalar,0,named-barrier,256,10,1,0,0,20,1048576,4,1,1048576,20,100,5.481440,0.644424,5.096192,6207.096706,65.086126,6508612636.078077,0.000793,1 +2,"Tesla V100-SXM2-16GB",7.0,fft,fp32,forward,none,in-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,3,8,524288,1,8,20,100,5.535360,0.091208,5.115296,5748288138.527312,68.979458,45986305108.218498,0.000001,1 +2,"Tesla V100-SXM2-16GB",7.0,fft,fp32,forward,none,in-place,temporal-tile,radix4,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,8,256,16384,1,256,20,100,5.526560,0.096072,5.104800,170539325.537827,174.632269,43658067337.683762,0.000010,1 +2,"Tesla V100-SXM2-16GB",7.0,fft,fp32,forward,none,in-place,online-reorder,radix4,four-mul,shared,scalar,0,named-barrier,256,10,64,0,0,12,4096,1024,1,4096,20,100,5.501792,0.268278,5.099712,3816939.516378,93.805106,15634184259.084631,0.000047,1 +2,"Tesla V100-SXM2-16GB",7.0,fft,fp32,forward,none,in-place,online-reorder,radix4,four-mul,shared,scalar,0,named-barrier,256,10,8,0,0,16,65536,64,1,65536,20,100,5.596608,0.418406,5.104640,152961.332434,80.195791,10024473882.398159,0.000186,1 +2,"Tesla V100-SXM2-16GB",7.0,fft,fp32,forward,none,in-place,online-reorder,radix4,four-mul,shared,scalar,0,named-barrier,256,10,1,0,0,20,1048576,4,1,1048576,20,100,5.469728,0.639795,5.108896,6252.000795,65.556980,6555697985.860606,0.000793,1 +3,"Tesla V100-SXM2-16GB",7.0,fft,fp32,forward,none,in-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,3,8,524288,1,8,20,100,5.496608,0.091310,5.130560,5741841183.375992,68.902094,45934729467.007935,0.000001,1 +3,"Tesla V100-SXM2-16GB",7.0,fft,fp32,forward,none,in-place,temporal-tile,radix4,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,8,256,16384,1,256,20,100,5.492352,0.096082,5.102592,170521142.114493,174.613650,43653412381.310089,0.000010,1 +3,"Tesla V100-SXM2-16GB",7.0,fft,fp32,forward,none,in-place,online-reorder,radix4,four-mul,shared,scalar,0,named-barrier,256,10,64,0,0,12,4096,1024,1,4096,20,100,5.549504,0.268247,5.108320,3817376.725401,93.815850,15635975067.243780,0.000047,1 +3,"Tesla V100-SXM2-16GB",7.0,fft,fp32,forward,none,in-place,online-reorder,radix4,four-mul,shared,scalar,0,named-barrier,256,10,8,0,0,16,65536,64,1,65536,20,100,5.575424,0.418355,5.102752,152980.041705,80.205600,10025700013.173695,0.000186,1 +3,"Tesla V100-SXM2-16GB",7.0,fft,fp32,forward,none,in-place,online-reorder,radix4,four-mul,shared,scalar,0,named-barrier,256,10,1,0,0,20,1048576,4,1,1048576,20,100,5.456672,0.638392,5.094528,6265.739447,65.701040,6570104006.655185,0.000793,1 diff --git a/results/fft_cufftdx_long_v100_raw.csv b/results/fft_cufftdx_long_v100_raw.csv new file mode 100644 index 0000000..25ade70 --- /dev/null +++ b/results/fft_cufftdx_long_v100_raw.csv @@ -0,0 +1,226 @@ +trial,device,compute_capability,operator,precision,direction,normalization,placement,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,stage_handoff,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,logN,N,batch,element_stride,batch_stride,warmup,repeat,h2d_ms,kernel_ms,d2h_ms,transforms_s,Gbutterfly_s,points_s,max_error,correct +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,5,1,0,0,12,4096,1024,1,4096,20,100,5.494304,0.585667,5.117728,1748435.218354,42.969544,7161590654.376099,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,5,1,0,0,12,4096,1024,1,4096,20,100,5.494528,0.536863,5.110624,1907377.698077,46.875714,7812619051.324839,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,5,1,0,0,12,4096,1024,1,4096,20,100,5.533952,0.509604,5.112960,2009403.939818,49.383111,8230518537.496488,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,5,1,0,0,12,4096,1024,1,4096,20,100,5.489344,0.509737,5.109024,2008879.265320,49.370217,8228369470.750296,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,5,1,0,0,12,4096,1024,1,4096,20,100,5.497120,0.509645,5.120448,2009242.490399,49.379143,8229857240.674348,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.496192,0.448727,5.108384,2282010.900471,56.082700,9347116648.327951,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.504512,0.448758,5.109088,2281854.803995,56.078864,9346477277.163858,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.528384,0.448778,5.114976,2281750.549507,56.076302,9346050250.780506,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.468512,0.448727,5.102880,2282010.900471,56.082700,9347116648.327951,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.464512,0.448748,5.112672,2281906.783265,56.080141,9346690184.254616,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,8,1,0,0,12,4096,1024,1,4096,20,100,5.467616,0.891525,5.110336,1148593.586186,28.227836,4704639329.017272,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,8,1,0,0,12,4096,1024,1,4096,20,100,5.510432,0.891064,5.103584,1149187.567970,28.242434,4707072278.405719,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,8,1,0,0,12,4096,1024,1,4096,20,100,5.472480,0.891054,5.103680,1149200.713045,28.242757,4707126120.632343,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,8,1,0,0,12,4096,1024,1,4096,20,100,5.516416,0.891075,5.098656,1149174.346327,28.242109,4707018122.554826,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,8,1,0,0,12,4096,1024,1,4096,20,100,5.478048,0.891054,5.099424,1149200.713045,28.242757,4707126120.632343,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,12,4096,1024,1,4096,20,100,5.468096,2.321900,5.101536,441018.197710,10.838463,1806410537.818959,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,12,4096,1024,1,4096,20,100,5.497536,2.317343,5.115040,441885.429502,10.859776,1809962719.238161,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,12,4096,1024,1,4096,20,100,5.510016,2.319473,5.108352,441479.680113,10.849805,1808300769.744545,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,12,4096,1024,1,4096,20,100,5.494816,2.319657,5.111680,441444.559023,10.848941,1808156913.759577,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,12,4096,1024,1,4096,20,100,5.499904,2.327265,5.114496,440001.411294,10.813475,1802245780.658190,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.460576,0.088945,5.103968,11512779.665716,282.938073,47156345510.774338,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.482240,0.088904,5.115264,11518082.368157,283.068392,47178065379.971977,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.465152,0.088893,5.104064,11519409.772597,283.101015,47183502428.558167,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.466848,0.088852,5.106176,11524720.518536,283.231531,47205255243.922935,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.447328,0.088740,5.107360,11539348.897692,283.591039,47265173084.944832,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,12,4096,1024,1,4096,20,100,5.453152,0.214016,5.099648,4784688.874560,117.588514,19598085630.196854,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,12,4096,1024,1,4096,20,100,5.447360,0.214057,5.100736,4783773.246308,117.566011,19594335216.876434,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,12,4096,1024,1,4096,20,100,5.449952,0.214180,5.102464,4781028.795621,117.498564,19583093946.863663,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,12,4096,1024,1,4096,20,100,5.462368,0.214190,5.100864,4780800.288965,117.492948,19582157983.601147,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,12,4096,1024,1,4096,20,100,5.447616,0.214282,5.100224,4778744.046934,117.442414,19573735616.243347,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,12,4096,1024,1,4096,20,100,5.449856,0.214149,5.100352,4781714.779396,117.515422,19585903736.408054,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,12,4096,1024,1,4096,20,100,5.448896,0.213914,5.099168,4786979.646126,117.644812,19607468630.531384,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,12,4096,1024,1,4096,20,100,5.449056,0.214098,5.100832,4782858.301315,117.543526,19590587602.186768,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,12,4096,1024,1,4096,20,100,5.449440,0.213914,5.102656,4786979.646126,117.644812,19607468630.531384,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,12,4096,1024,1,4096,20,100,5.449440,0.214139,5.098752,4781943.040724,117.521032,19586838694.804634,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.449856,0.212101,5.098208,4827885.942153,118.650125,19775020819.057648,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.449024,0.211825,5.102496,4834187.358687,118.804989,19800831421.180725,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.447520,0.211896,5.100000,4832551.839991,118.764794,19794132336.604145,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.380864,0.212603,5.105376,4816491.586425,118.370097,19728349537.997093,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.449760,0.211917,5.105184,4832084.946338,118.753320,19792219940.198696,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.454752,0.214129,5.104000,4782171.989425,117.526659,19587776468.685371,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.449984,0.214149,5.108480,4781714.779396,117.515422,19585903736.408054,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.450624,0.214129,5.107776,4782171.989425,117.526659,19587776468.685371,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.477344,0.213873,5.102432,4787896.168748,117.667336,19611222707.192421,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.477376,0.214088,5.104928,4783087.004751,117.549146,19591524371.458534,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,12,4096,1024,1,4096,20,100,5.498432,0.286280,5.111488,3576921.721866,87.906428,14651071372.762222,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,12,4096,1024,1,4096,20,100,5.453408,0.285583,5.099488,3585642.873094,88.120759,14686793208.194696,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,12,4096,1024,1,4096,20,100,5.459840,0.285809,5.103488,3582816.652133,88.051302,14675217007.135344,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,12,4096,1024,1,4096,20,100,5.469824,0.286648,5.099488,3572321.860333,87.793382,14632230339.923985,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,12,4096,1024,1,4096,20,100,5.451584,0.286966,5.101408,3568369.998337,87.696261,14616043513.189621,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,12,4096,1024,1,4096,20,100,5.456288,0.279214,5.104192,3667436.773912,90.130926,15021821025.943150,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,12,4096,1024,1,4096,20,100,5.451968,0.280054,5.100448,3656440.760686,89.860688,14976781355.769606,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,12,4096,1024,1,4096,20,100,5.465792,0.279132,5.119456,3668513.183633,90.157380,15026230000.159939,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,12,4096,1024,1,4096,20,100,5.486080,0.278938,5.102464,3671071.847675,90.220262,15036710288.078550,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,12,4096,1024,1,4096,20,100,5.475712,0.279603,5.103648,3662333.125203,90.005499,15000916480.830057,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,5,1,0,0,14,16384,256,1,16384,20,100,5.568672,0.521933,5.112928,490484.616881,56.252700,8036099962.972298,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,5,1,0,0,14,16384,256,1,16384,20,100,5.519232,0.521963,5.106592,490455.771743,56.249392,8035627364.244806,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,5,1,0,0,14,16384,256,1,16384,20,100,5.532128,0.521892,5.100800,490523.101016,56.257113,8036730487.043924,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,5,1,0,0,14,16384,256,1,16384,20,100,5.517984,0.521851,5.103008,490561.591191,56.261528,8037361110.066983,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,5,1,0,0,14,16384,256,1,16384,20,100,5.517952,0.521861,5.101952,490551.954073,56.260423,8037203215.539890,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,14,16384,256,1,16384,20,100,5.521920,0.440904,5.099936,580625.703786,66.590801,9512971530.828148,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,14,16384,256,1,16384,20,100,5.545184,0.441446,5.101472,579911.822487,66.508927,9501275299.627531,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,14,16384,256,1,16384,20,100,5.548800,0.440914,5.111200,580612.203250,66.589252,9512750338.050545,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,14,16384,256,1,16384,20,100,5.524928,0.440883,5.108096,580652.628240,66.593889,9513412661.090286,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,14,16384,256,1,16384,20,100,5.517376,0.440955,5.102720,580558.246622,66.583064,9511866312.660503,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,8,1,0,0,14,16384,256,1,16384,20,100,5.516576,0.498596,5.105184,513441.915589,58.885626,8412232345.014555,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,8,1,0,0,14,16384,256,1,16384,20,100,5.514624,0.498524,5.100192,513515.734953,58.894093,8413441801.475219,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,8,1,0,0,14,16384,256,1,16384,20,100,5.518816,0.498596,5.101280,513441.915589,58.885626,8412232345.014555,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,8,1,0,0,14,16384,256,1,16384,20,100,5.519168,0.498575,5.102720,513463.000286,58.888045,8412577796.682286,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,8,1,0,0,14,16384,256,1,16384,20,100,5.519072,0.498545,5.102944,513494.615230,58.891670,8413095775.923350,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,14,16384,256,1,16384,20,100,5.541216,0.995267,5.104640,257217.524558,29.499763,4214251922.358644,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,14,16384,256,1,16384,20,100,5.524928,0.995287,5.099520,257212.241000,29.499157,4214165356.550922,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,14,16384,256,1,16384,20,100,5.525472,0.995410,5.098688,257180.482613,29.495515,4213645027.134335,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,14,16384,256,1,16384,20,100,5.522976,0.995246,5.093440,257222.823738,29.500371,4214338744.116859,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,14,16384,256,1,16384,20,100,5.525760,0.995441,5.105440,257172.536542,29.494604,4213514838.708719,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.467456,0.122716,5.100992,2086114.843075,239.252339,34178905588.942875,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.449888,0.123003,5.106144,2081252.092731,238.694640,34099234287.309101,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.447072,0.122952,5.102496,2082118.782145,238.794039,34113434126.666142,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.451424,0.122163,5.101344,2095557.437343,240.335291,34333613053.428642,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.460352,0.122757,5.108320,2085418.719458,239.172502,34167500299.602905,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,14,16384,256,1,16384,20,100,5.514688,0.213688,5.102592,1198006.551012,137.396975,19628139331.778934,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,14,16384,256,1,16384,20,100,5.514432,0.213555,5.104032,1198753.285973,137.482617,19640373837.384041,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,14,16384,256,1,16384,20,100,5.514752,0.213658,5.103584,1198178.753311,137.416725,19630960694.252655,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,14,16384,256,1,16384,20,100,5.521696,0.214077,5.098304,1195829.015752,137.147238,19592462594.083050,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,14,16384,256,1,16384,20,100,5.522656,0.213647,5.102432,1198236.165079,137.423309,19631901328.661247,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,14,16384,256,1,16384,20,100,5.527456,0.203776,5.118784,1256281.395135,144.080401,20582914377.895832,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,14,16384,256,1,16384,20,100,5.513952,0.203459,5.104288,1258241.466286,144.305197,20615028183.626434,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,14,16384,256,1,16384,20,100,5.519072,0.203510,5.103008,1257924.909219,144.268892,20609841712.643101,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,14,16384,256,1,16384,20,100,5.533984,0.203622,5.102016,1257229.062440,144.189087,20598440959.009335,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,14,16384,256,1,16384,20,100,5.530464,0.203469,5.099104,1258178.160556,144.297937,20613990982.547661,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,14,16384,256,1,16384,20,100,5.524768,0.229857,5.093504,1113734.642857,127.731999,18247428388.563843,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,14,16384,256,1,16384,20,100,5.569728,0.229304,5.118560,1116420.340788,128.040016,18291430863.464520,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,14,16384,256,1,16384,20,100,5.546816,0.229509,5.116960,1115424.035052,127.925752,18275107390.289516,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,14,16384,256,1,16384,20,100,5.517696,0.229663,5.107680,1114678.098498,127.840202,18262885965.788074,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,14,16384,256,1,16384,20,100,5.516384,0.229868,5.105120,1113684.970739,127.726302,18246614560.592575,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,14,16384,256,1,16384,20,100,5.542176,0.222546,5.117472,1150324.382161,131.928403,18846914677.330616,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,14,16384,256,1,16384,20,100,5.549344,0.222577,5.112512,1150165.659528,131.910199,18844314165.700500,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,14,16384,256,1,16384,20,100,5.527392,0.222444,5.100864,1150853.928327,131.989135,18855590761.711399,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,14,16384,256,1,16384,20,100,5.518304,0.222239,5.100320,1151914.484650,132.110768,18872966916.513054,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,14,16384,256,1,16384,20,100,5.522912,0.222157,5.102848,1152339.285611,132.159488,18879926855.455173,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,14,16384,256,1,16384,20,100,5.521568,0.257331,5.110912,994826.929139,114.094711,16299244407.018179,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,14,16384,256,1,16384,20,100,5.548768,0.256676,5.110560,997366.953486,114.386021,16340860165.920399,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,14,16384,256,1,16384,20,100,5.531424,0.256901,5.102464,996492.365639,114.285716,16326530918.624235,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,14,16384,256,1,16384,20,100,5.523808,0.257219,5.100448,995262.628751,114.144680,16306382909.452658,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,14,16384,256,1,16384,20,100,5.519680,0.257147,5.099648,995540.038457,114.176496,16310927990.073730,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,14,16384,256,1,16384,20,100,5.522560,0.258816,5.102784,989119.668961,113.440157,16205736656.262751,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,14,16384,256,1,16384,20,100,5.536928,0.259318,5.103904,987205.829041,113.220662,16174380303.005312,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,14,16384,256,1,16384,20,100,5.538304,0.258898,5.107072,988806.782230,113.404272,16200610320.059048,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,14,16384,256,1,16384,20,100,5.535616,0.259441,5.108800,986738.273549,113.167039,16166719873.821520,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,14,16384,256,1,16384,20,100,5.518400,0.258888,5.108320,988845.825329,113.408750,16201250002.196199,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,14,16384,256,1,16384,20,100,5.520608,0.238879,5.106624,1071673.494156,122.908090,17558298528.256466,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,14,16384,256,1,16384,20,100,5.518016,0.239350,5.103392,1069564.439538,122.666206,17523743777.391441,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,14,16384,256,1,16384,20,100,5.522560,0.239104,5.106016,1070663.799410,122.792290,17541755689.528069,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,14,16384,256,1,16384,20,100,5.524320,0.239288,5.102048,1069839.117763,122.697709,17528244105.434631,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,14,16384,256,1,16384,20,100,5.523488,0.239442,5.112928,1069152.753096,122.618991,17516998706.717094,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,14,16384,256,1,16384,20,100,5.520288,0.237855,5.103680,1076287.175903,123.437224,17633889089.995773,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,14,16384,256,1,16384,20,100,5.530752,0.237466,5.102112,1078050.928317,123.639505,17662786409.543243,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,14,16384,256,1,16384,20,100,5.525728,0.237363,5.102912,1078515.942226,123.692836,17670405197.422718,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,14,16384,256,1,16384,20,100,5.569824,0.237445,5.115264,1078143.817824,123.650158,17664308311.231487,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,14,16384,256,1,16384,20,100,5.521568,0.237527,5.103296,1077772.017739,123.607517,17658216738.633026,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,16,65536,64,1,65536,20,100,5.516480,0.483389,5.101312,132398.424696,69.414905,8676863160.906094,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,16,65536,64,1,65536,20,100,5.520736,0.483451,5.103712,132381.595274,69.406082,8675760227.847752,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,16,65536,64,1,65536,20,100,5.538208,0.483441,5.109344,132384.402601,69.407554,8675944208.831991,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,16,65536,64,1,65536,20,100,5.516992,0.483400,5.101536,132395.616775,69.413433,8676679140.945841,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,16,65536,64,1,65536,20,100,5.540064,0.483328,5.112160,132415.250234,69.423727,8677965839.338598,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,8,1,0,0,16,65536,64,1,65536,20,100,5.539104,0.445338,5.108832,143711.200056,75.346058,9418257206.884003,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,8,1,0,0,16,65536,64,1,65536,20,100,5.543744,0.445348,5.096960,143707.901412,75.344328,9418041026.915909,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,8,1,0,0,16,65536,64,1,65536,20,100,5.516512,0.445307,5.100224,143721.106517,75.351251,9418906436.701864,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,8,1,0,0,16,65536,64,1,65536,20,100,5.516832,0.445204,5.100960,143754.173204,75.368588,9421073495.078348,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,8,1,0,0,16,65536,64,1,65536,20,100,5.515360,0.445317,5.101984,143717.807418,75.349522,9418690226.929169,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,16,65536,64,1,65536,20,100,5.547648,0.519107,5.100672,123288.750480,64.638812,8079851551.482501,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,16,65536,64,1,65536,20,100,5.525280,0.519086,5.110400,123293.620409,64.641366,8080170707.149156,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,16,65536,64,1,65536,20,100,5.552288,0.519137,5.104640,123281.460463,64.634990,8079373792.884651,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,16,65536,64,1,65536,20,100,5.527040,0.519076,5.104032,123296.041360,64.642635,8080329366.586410,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,16,65536,64,1,65536,20,100,5.553152,0.519055,5.098048,123300.911865,64.645188,8080648560.002499,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,16,65536,64,1,65536,20,100,5.459520,0.179354,5.103968,356837.007245,187.085361,23385670106.838894,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,16,65536,64,1,65536,20,100,5.469120,0.179302,5.099328,356938.873565,187.138768,23392346017.986698,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,16,65536,64,1,65536,20,100,5.473472,0.179077,5.101504,357387.896133,187.374185,23421773160.942856,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,16,65536,64,1,65536,20,100,5.487744,0.178954,5.099136,357633.318390,187.502857,23437857153.974518,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,16,65536,64,1,65536,20,100,5.490848,0.179292,5.100192,356959.283476,187.149469,23393683601.901680,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,16,65536,64,1,65536,20,100,5.559008,0.235878,5.104640,271326.250664,142.253097,17781637163.517731,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,16,65536,64,1,65536,20,100,5.558656,0.236227,5.104992,270926.352888,142.043436,17755429462.897881,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,16,65536,64,1,65536,20,100,5.554112,0.235776,5.100800,271444.074258,142.314871,17789358850.576073,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,16,65536,64,1,65536,20,100,5.533408,0.236001,5.107776,271184.966477,142.179024,17772377963.035976,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,16,65536,64,1,65536,20,100,5.554912,0.236134,5.100160,271032.095935,142.098876,17762359439.170437,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,16,65536,64,1,65536,20,100,5.566176,0.214364,5.122560,298557.355425,156.530039,19566254845.122696,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,16,65536,64,1,65536,20,100,5.550432,0.225894,5.104800,283318.233643,148.540350,18567543760.015556,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,16,65536,64,1,65536,20,100,5.541024,0.226304,5.103456,282805.436543,148.271497,18533937089.280807,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,16,65536,64,1,65536,20,100,5.520384,0.225987,5.105408,283202.688488,148.479771,18559971392.727314,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,16,65536,64,1,65536,20,100,5.521600,0.226263,5.103936,282856.617802,148.298330,18537291304.273060,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,16,65536,64,1,65536,20,100,5.550592,0.301998,5.109088,211921.877945,111.108098,13888512193.009752,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,16,65536,64,1,65536,20,100,5.524896,0.302039,5.103552,211893.147023,111.093034,13886629283.266640,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,16,65536,64,1,65536,20,100,5.523744,0.302602,5.105664,211498.770786,110.886268,13860783442.255915,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,16,65536,64,1,65536,20,100,5.528768,0.302111,5.105088,211842.855302,111.066667,13883333365.097145,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,16,65536,64,1,65536,20,100,5.528064,0.302664,5.107104,211455.828387,110.863753,13857969169.193127,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,16,65536,64,1,65536,20,100,5.550880,0.297298,5.114144,215272.272931,112.864669,14108083678.781851,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,16,65536,64,1,65536,20,100,5.524960,0.297523,5.107232,215109.275142,112.779212,14097401455.695166,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,16,65536,64,1,65536,20,100,5.531296,0.297605,5.097728,215050.058527,112.748165,14093520635.632530,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,16,65536,64,1,65536,20,100,5.525504,0.297636,5.106528,215027.858010,112.736526,14092065702.532951,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,16,65536,64,1,65536,20,100,5.525344,0.297308,5.107872,215264.871332,112.860789,14107598607.631952,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,16,65536,64,1,65536,20,100,5.561408,0.257229,5.108736,248805.740499,130.445864,16305733009.344046,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,16,65536,64,1,65536,20,100,5.518880,0.257096,5.104032,248934.546003,130.513395,16314174406.821611,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,16,65536,64,1,65536,20,100,5.520704,0.257044,5.101728,248984.130981,130.539392,16317424007.995378,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,16,65536,64,1,65536,20,100,5.522016,0.257085,5.105664,248944.472962,130.518600,16314824980.017982,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,16,65536,64,1,65536,20,100,5.546272,0.257352,5.114752,248686.917058,130.383566,16297945796.299601,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,16,65536,64,1,65536,20,100,5.551424,0.234629,5.105376,272770.928279,143.010524,17876315555.666939,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,16,65536,64,1,65536,20,100,5.559744,0.234721,5.108864,272663.824339,142.954371,17869296391.875050,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,16,65536,64,1,65536,20,100,5.564800,0.234578,5.102976,272830.447576,143.041730,17880216212.353779,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,16,65536,64,1,65536,20,100,5.570912,0.234496,5.101664,272925.767185,143.091705,17886463078.210255,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,16,65536,64,1,65536,20,100,5.581472,0.233820,5.110048,273714.641614,143.505302,17938162752.835453,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,8,1,0,0,18,262144,16,1,262144,20,100,5.486720,0.554680,5.100512,28845.442377,68.054937,7561659646.565783,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,8,1,0,0,18,262144,16,1,262144,20,100,5.498272,0.489011,5.099104,32719.087122,77.194011,8577112374.386119,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,8,1,0,0,18,262144,16,1,262144,20,100,5.469792,0.489093,5.108768,32713.606441,77.181081,8575675646.933244,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,8,1,0,0,18,262144,16,1,262144,20,100,5.447040,0.488940,5.099552,32723.883475,77.205327,8578369709.788708,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,8,1,0,0,18,262144,16,1,262144,20,100,5.447584,0.488960,5.100544,32722.513230,77.202095,8578010508.178968,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,18,262144,16,1,262144,20,100,5.447392,0.468306,5.106592,34165.699063,80.606997,8956333015.267403,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,18,262144,16,1,262144,20,100,5.465088,0.468193,5.105120,34173.919730,80.626392,8958488013.675911,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,18,262144,16,1,262144,20,100,5.450240,0.467948,5.111616,34191.868874,80.668739,8963193274.219698,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,18,262144,16,1,262144,20,100,5.457120,0.468081,5.099840,34182.144353,80.645796,8960644049.369612,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,18,262144,16,1,262144,20,100,5.449760,0.468070,5.102432,34182.890858,80.647558,8960839741.003807,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,18,262144,16,1,262144,20,100,5.461728,0.211425,5.128384,75676.850376,178.544090,19838232264.869511,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,18,262144,16,1,262144,20,100,5.448192,0.211712,5.100896,75574.364192,178.302295,19811366126.791626,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,18,262144,16,1,262144,20,100,5.449728,0.212091,5.103584,75439.358940,177.983778,19775975309.987411,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,18,262144,16,1,262144,20,100,5.452000,0.211384,5.102784,75691.520814,178.578702,19842078032.377396,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,18,262144,16,1,262144,20,100,5.456864,0.211661,5.101472,75592.645503,178.345426,19816158462.727524,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,18,262144,16,1,262144,20,100,5.461344,0.278385,5.111616,57474.432127,135.599198,15066577535.467735,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,18,262144,16,1,262144,20,100,5.458816,0.278641,5.101824,57421.633460,135.474630,15052736681.644232,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,18,262144,16,1,262144,20,100,5.459360,0.278600,5.108800,57430.073252,135.494542,15054949122.619902,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,18,262144,16,1,262144,20,100,5.448992,0.278702,5.100864,57408.972282,135.444759,15049417629.896627,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,18,262144,16,1,262144,20,100,5.470208,0.278682,5.111648,57413.190008,135.454710,15050523281.334419,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,18,262144,16,1,262144,20,100,5.449216,0.270418,5.102688,59167.674559,139.594058,15510450879.609247,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,18,262144,16,1,262144,20,100,5.450272,0.270121,5.099744,59232.718974,139.747517,15527501882.809732,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,18,262144,16,1,262144,20,100,5.446400,0.270592,5.104704,59129.611222,139.504255,15500472804.282938,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,18,262144,16,1,262144,20,100,5.452224,0.270356,5.103776,59181.123451,139.625788,15513976425.844978,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,8,1,0,0,18,262144,16,1,262144,20,100,5.457216,0.270705,5.113728,59105.011152,139.446216,15494024043.504702,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,18,262144,16,1,262144,20,100,5.453632,0.270500,5.134304,59149.760898,139.551794,15505754920.893015,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,18,262144,16,1,262144,20,100,5.458176,0.270776,5.104352,59089.359531,139.409290,15489921064.855656,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,18,262144,16,1,262144,20,100,5.459680,0.270899,5.111040,59062.557667,139.346056,15482895117.116428,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,18,262144,16,1,262144,20,100,5.448864,0.269988,5.100416,59261.932284,139.816440,15535159976.736361,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,18,262144,16,1,262144,20,100,5.447360,0.270500,5.102784,59149.760898,139.551794,15505754920.893015,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,18,262144,16,1,262144,20,100,5.458496,0.240169,5.111680,66619.766656,157.175749,17463972110.172653,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,18,262144,16,1,262144,20,100,5.449216,0.240589,5.104224,66503.511629,156.901469,17433496552.453754,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,18,262144,16,1,262144,20,100,5.458720,0.240364,5.110976,66565.840674,157.048522,17449835737.542793,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,18,262144,16,1,262144,20,100,5.448096,0.240230,5.101760,66602.724917,157.135542,17459504720.728912,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,18,262144,16,1,262144,20,100,5.449248,0.240660,5.102240,66483.705254,156.854740,17428304430.053131,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,20,1048576,4,1,1048576,20,100,5.452448,0.639887,5.104480,6251.100458,65.547539,6554753914.075209,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,20,1048576,4,1,1048576,20,100,5.445376,0.639744,5.100960,6252.501159,65.562227,6556222655.574151,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,20,1048576,4,1,1048576,20,100,5.446112,0.639396,5.104608,6255.905643,65.597925,6559792515.724300,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,20,1048576,4,1,1048576,20,100,5.455904,0.638116,5.109760,6268.454494,65.729509,6572950939.398029,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,10,1,0,0,20,1048576,4,1,1048576,20,100,5.443872,0.638300,5.099776,6266.644006,65.710525,6571052505.641476,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,20,1048576,4,1,1048576,20,100,5.453248,0.209848,5.101152,19061.385959,199.873118,19987311843.251457,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,20,1048576,4,1,1048576,20,100,5.457696,0.209224,5.109152,19118.295494,200.469858,20046985816.273373,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,20,1048576,4,1,1048576,20,100,5.448704,0.209480,5.106976,19094.931314,200.224867,20022486697.424793,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,20,1048576,4,1,1048576,20,100,5.450816,0.209521,5.099552,19091.198072,200.185721,20018572109.442127,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,20,1048576,4,1,1048576,20,100,5.452512,0.209562,5.102048,19087.466289,200.146591,20014659051.839161,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,20,1048576,4,1,1048576,20,100,5.447424,0.300298,5.099840,13320.091220,139.671280,13967127970.742544,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,20,1048576,4,1,1048576,20,100,5.446528,0.300698,5.100192,13302.401044,139.485785,13948578476.855047,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,20,1048576,4,1,1048576,20,100,5.444864,0.300145,5.098272,13326.907872,139.742757,13974275748.472446,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,20,1048576,4,1,1048576,20,100,5.457760,0.300452,5.111584,13313.281537,139.599875,13959987501.385262,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,20,1048576,4,1,1048576,20,100,5.464384,0.300616,5.105152,13306.026338,139.523799,13952379873.489292,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,20,1048576,4,1,1048576,20,100,5.453216,0.236032,5.107008,16946.854009,177.700644,17770064388.949383,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,20,1048576,4,1,1048576,20,100,5.445824,0.235817,5.100960,16962.308713,177.862698,17786269820.699474,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,20,1048576,4,1,1048576,20,100,5.446208,0.235735,5.099840,16968.203738,177.924512,17792451202.987629,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,20,1048576,4,1,1048576,20,100,5.462592,0.236237,5.120800,16932.163284,177.546600,17754660048.183178,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,10,1,0,0,20,1048576,4,1,1048576,20,100,5.465216,0.235971,5.112448,16951.267376,177.746921,17774692139.632713,0.000000,-1 diff --git a/results/fft_cufftdx_long_v100_summary.csv b/results/fft_cufftdx_long_v100_summary.csv new file mode 100644 index 0000000..712d4c1 --- /dev/null +++ b/results/fft_cufftdx_long_v100_summary.csv @@ -0,0 +1,46 @@ +rank,operator,precision,direction,normalization,placement,logN,N,batch,element_stride,batch_stride,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,stage_handoff,trials,median_kernel_ms,min_kernel_ms,max_kernel_ms,median_Gbutterfly_s,slowdown_vs_best +1,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.088893,0.088740,0.088945,283.101015,1.000000 +2,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,32,6,1,0,0,named-barrier,5,0.211917,0.211825,0.212603,118.753320,2.383956 +3,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,32,5,1,0,0,named-barrier,5,0.214098,0.213914,0.214149,117.543526,2.408491 +4,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,32,6,1,0,0,named-barrier,5,0.214129,0.213873,0.214149,117.526659,2.408840 +5,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,32,5,1,0,0,named-barrier,5,0.214180,0.214016,0.214282,117.498564,2.409414 +6,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,32,8,1,0,0,named-barrier,5,0.279214,0.278938,0.280054,90.130926,3.141012 +7,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,32,8,1,0,0,named-barrier,5,0.286280,0.285583,0.286966,87.906428,3.220501 +8,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,radix4,four-mul,table,shared,scalar,0,256,6,1,0,0,named-barrier,5,0.448748,0.448727,0.448778,56.080141,5.048182 +9,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,radix4,four-mul,table,shared,scalar,0,256,5,1,0,0,named-barrier,5,0.509737,0.509604,0.585667,49.370217,5.734276 +10,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,radix4,four-mul,table,shared,scalar,0,256,8,1,0,0,named-barrier,5,0.891064,0.891054,0.891525,28.242434,10.024006 +11,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,radix4,four-mul,table,shared,scalar,0,256,10,1,0,0,named-barrier,5,2.319657,2.317343,2.327265,10.848941,26.094934 +1,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.122757,0.122163,0.123003,239.172502,1.000000 +2,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,32,5,1,0,0,named-barrier,5,0.203510,0.203459,0.203776,144.268892,1.657828 +3,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,32,5,1,0,0,named-barrier,5,0.213658,0.213555,0.214077,137.416725,1.740495 +4,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,32,6,1,0,0,named-barrier,5,0.222444,0.222157,0.222577,131.989135,1.812068 +5,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,32,6,1,0,0,named-barrier,5,0.229663,0.229304,0.229868,127.840202,1.870875 +6,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,32,10,1,0,0,named-barrier,5,0.237466,0.237363,0.237855,123.639505,1.934440 +7,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,32,10,1,0,0,named-barrier,5,0.239288,0.238879,0.239442,122.697709,1.949282 +8,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,32,8,1,0,0,named-barrier,5,0.257147,0.256676,0.257331,114.176496,2.094764 +9,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,32,8,1,0,0,named-barrier,5,0.258898,0.258816,0.259441,113.404272,2.109028 +10,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,radix4,four-mul,table,shared,scalar,0,256,6,1,0,0,named-barrier,5,0.440914,0.440883,0.441446,66.589252,3.591763 +11,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,radix4,four-mul,table,shared,scalar,0,256,8,1,0,0,named-barrier,5,0.498575,0.498524,0.498596,58.888045,4.061479 +12,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,radix4,four-mul,table,shared,scalar,0,256,5,1,0,0,named-barrier,5,0.521892,0.521851,0.521963,56.257113,4.251424 +13,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,radix4,four-mul,table,shared,scalar,0,256,10,1,0,0,named-barrier,5,0.995287,0.995246,0.995441,29.499157,8.107782 +1,fft,fp32,forward,none,out-of-place,16,65536,64,1,65536,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.179292,0.178954,0.179354,187.149469,1.000000 +2,fft,fp32,forward,none,out-of-place,16,65536,64,1,65536,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,32,6,1,0,0,named-barrier,5,0.225987,0.214364,0.226304,148.479771,1.260441 +3,fft,fp32,forward,none,out-of-place,16,65536,64,1,65536,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,32,10,1,0,0,named-barrier,5,0.234578,0.233820,0.234721,143.041730,1.308357 +4,fft,fp32,forward,none,out-of-place,16,65536,64,1,65536,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,32,6,1,0,0,named-barrier,5,0.236001,0.235776,0.236227,142.179024,1.316294 +5,fft,fp32,forward,none,out-of-place,16,65536,64,1,65536,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,32,10,1,0,0,named-barrier,5,0.257096,0.257044,0.257352,130.513395,1.433951 +6,fft,fp32,forward,none,out-of-place,16,65536,64,1,65536,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,32,8,1,0,0,named-barrier,5,0.297523,0.297298,0.297636,112.779212,1.659433 +7,fft,fp32,forward,none,out-of-place,16,65536,64,1,65536,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,32,8,1,0,0,named-barrier,5,0.302111,0.301998,0.302664,111.066667,1.685022 +8,fft,fp32,forward,none,out-of-place,16,65536,64,1,65536,online-reorder,radix4,four-mul,table,shared,scalar,0,256,8,1,0,0,named-barrier,5,0.445317,0.445204,0.445348,75.349522,2.483753 +9,fft,fp32,forward,none,out-of-place,16,65536,64,1,65536,online-reorder,radix4,four-mul,table,shared,scalar,0,256,6,1,0,0,named-barrier,5,0.483400,0.483328,0.483451,69.413433,2.696160 +10,fft,fp32,forward,none,out-of-place,16,65536,64,1,65536,online-reorder,radix4,four-mul,table,shared,scalar,0,256,10,1,0,0,named-barrier,5,0.519086,0.519055,0.519137,64.641366,2.895199 +1,fft,fp32,forward,none,out-of-place,18,262144,16,1,262144,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.211661,0.211384,0.212091,178.345426,1.000000 +2,fft,fp32,forward,none,out-of-place,18,262144,16,1,262144,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,32,10,1,0,0,named-barrier,5,0.240364,0.240169,0.240660,157.048522,1.135608 +3,fft,fp32,forward,none,out-of-place,18,262144,16,1,262144,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,32,8,1,0,0,named-barrier,5,0.270418,0.270121,0.270705,139.594058,1.277600 +4,fft,fp32,forward,none,out-of-place,18,262144,16,1,262144,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,32,10,1,0,0,named-barrier,5,0.270500,0.269988,0.270899,139.551794,1.277987 +5,fft,fp32,forward,none,out-of-place,18,262144,16,1,262144,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,32,8,1,0,0,named-barrier,5,0.278641,0.278385,0.278702,135.474630,1.316449 +6,fft,fp32,forward,none,out-of-place,18,262144,16,1,262144,online-reorder,radix4,four-mul,table,shared,scalar,0,256,10,1,0,0,named-barrier,5,0.468081,0.467948,0.468306,80.645796,2.211466 +7,fft,fp32,forward,none,out-of-place,18,262144,16,1,262144,online-reorder,radix4,four-mul,table,shared,scalar,0,256,8,1,0,0,named-barrier,5,0.489011,0.488940,0.554680,77.194011,2.310350 +1,fft,fp32,forward,none,out-of-place,20,1048576,4,1,1048576,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.209521,0.209224,0.209848,200.185721,1.000000 +2,fft,fp32,forward,none,out-of-place,20,1048576,4,1,1048576,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,32,10,1,0,0,named-barrier,5,0.235971,0.235735,0.236237,177.746921,1.126240 +3,fft,fp32,forward,none,out-of-place,20,1048576,4,1,1048576,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,32,10,1,0,0,named-barrier,5,0.300452,0.300145,0.300698,139.599875,1.433995 +4,fft,fp32,forward,none,out-of-place,20,1048576,4,1,1048576,online-reorder,radix4,four-mul,table,shared,scalar,0,256,10,1,0,0,named-barrier,5,0.639396,0.638116,0.639887,65.597925,3.051704 diff --git a/results/fft_design_space_logN18_coverage.csv b/results/fft_design_space_logN18_coverage.csv new file mode 100644 index 0000000..c05c206 --- /dev/null +++ b/results/fft_design_space_logN18_coverage.csv @@ -0,0 +1,4897 @@ +family,logN,prefix_log_n,suffix_log_n,prefix_core,suffix_core,prefix_spatial_scope,suffix_spatial_scope,prefix_stage_fusion,suffix_stage_fusion,prefix_temporal_reuse,suffix_temporal_reuse,prefix_threads,suffix_threads,prefix_ept,suffix_ept,cross_twiddle,boundary,reorder,prefix_units_per_cta,prefix_tile_shared_bytes,suffix_units_per_cta,suffix_tile_shared_bytes,status,reason +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,0,4096,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,4096,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,0,8192,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,8192,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,0,8192,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,8192,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,131072,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage;suffix-shared +cufftdx-online,18,1,17,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,131072,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,table,global-scratch,direct-strided-or-transpose,128,4096,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,128,4096,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,table,global-scratch,direct-strided-or-transpose,128,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,128,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,table,global-scratch,direct-strided-or-transpose,128,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,128,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,table,global-scratch,direct-strided-or-transpose,128,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,128,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,table,global-scratch,direct-strided-or-transpose,128,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,128,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,table,global-scratch,direct-strided-or-transpose,128,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,128,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,table,global-scratch,direct-strided-or-transpose,128,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,128,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,table,global-scratch,direct-strided-or-transpose,128,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,128,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,table,global-scratch,direct-strided-or-transpose,128,4096,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,128,4096,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,table,global-scratch,direct-strided-or-transpose,128,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,128,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,table,global-scratch,direct-strided-or-transpose,128,4096,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,128,4096,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,table,global-scratch,direct-strided-or-transpose,128,4096,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,128,4096,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,table,global-scratch,direct-strided-or-transpose,256,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,256,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,table,global-scratch,direct-strided-or-transpose,256,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,256,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,table,global-scratch,direct-strided-or-transpose,256,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,256,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,table,global-scratch,direct-strided-or-transpose,256,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,256,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,table,global-scratch,direct-strided-or-transpose,256,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,256,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,table,global-scratch,direct-strided-or-transpose,256,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,256,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,table,global-scratch,direct-strided-or-transpose,256,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,256,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,table,global-scratch,direct-strided-or-transpose,256,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,256,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,table,global-scratch,direct-strided-or-transpose,256,8192,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,256,8192,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,table,global-scratch,direct-strided-or-transpose,256,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,256,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,table,global-scratch,direct-strided-or-transpose,256,8192,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,256,8192,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,table,global-scratch,direct-strided-or-transpose,256,8192,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,256,8192,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,table,global-scratch,direct-strided-or-transpose,512,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,512,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,table,global-scratch,direct-strided-or-transpose,512,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,512,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,table,global-scratch,direct-strided-or-transpose,512,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,512,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,table,global-scratch,direct-strided-or-transpose,512,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,512,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,table,global-scratch,direct-strided-or-transpose,512,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,512,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,table,global-scratch,direct-strided-or-transpose,512,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,512,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,table,global-scratch,direct-strided-or-transpose,512,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,512,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,table,global-scratch,direct-strided-or-transpose,512,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,512,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,table,global-scratch,direct-strided-or-transpose,512,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,512,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,table,global-scratch,direct-strided-or-transpose,512,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,512,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,table,global-scratch,direct-strided-or-transpose,512,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,512,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,table,global-scratch,direct-strided-or-transpose,512,16384,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,512,16384,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,table,global-scratch,direct-strided-or-transpose,1024,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,1024,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,table,global-scratch,direct-strided-or-transpose,1024,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,1024,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,table,global-scratch,direct-strided-or-transpose,1024,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,1024,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,0,4096,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,4096,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,0,8192,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,8192,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,table,global-scratch,direct-strided-or-transpose,1024,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,1024,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,table,global-scratch,direct-strided-or-transpose,1024,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,1024,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,table,global-scratch,direct-strided-or-transpose,1024,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,1024,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,0,8192,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,8192,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,table,global-scratch,direct-strided-or-transpose,1024,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,1024,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,table,global-scratch,direct-strided-or-transpose,1024,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,1024,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,table,global-scratch,direct-strided-or-transpose,1024,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,1024,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,table,global-scratch,direct-strided-or-transpose,1024,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,1024,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,table,global-scratch,direct-strided-or-transpose,1024,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,1024,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,table,global-scratch,direct-strided-or-transpose,1024,32768,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,1024,32768,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,131072,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage;suffix-shared +cufftdx-online,18,2,16,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,131072,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,table,global-scratch,direct-strided-or-transpose,64,4096,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,64,4096,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,table,global-scratch,direct-strided-or-transpose,64,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,64,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,table,global-scratch,direct-strided-or-transpose,64,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,64,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,table,global-scratch,direct-strided-or-transpose,128,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,table,global-scratch,direct-strided-or-transpose,128,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,table,global-scratch,direct-strided-or-transpose,128,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,table,global-scratch,direct-strided-or-transpose,64,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,64,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,table,global-scratch,direct-strided-or-transpose,64,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,64,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,table,global-scratch,direct-strided-or-transpose,64,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,64,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,table,global-scratch,direct-strided-or-transpose,128,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,table,global-scratch,direct-strided-or-transpose,128,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,table,global-scratch,direct-strided-or-transpose,128,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,table,global-scratch,direct-strided-or-transpose,64,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,64,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,table,global-scratch,direct-strided-or-transpose,64,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,64,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,table,global-scratch,direct-strided-or-transpose,64,4096,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,64,4096,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,table,global-scratch,direct-strided-or-transpose,128,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,table,global-scratch,direct-strided-or-transpose,128,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,table,global-scratch,direct-strided-or-transpose,128,8192,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,table,global-scratch,direct-strided-or-transpose,64,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,64,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,table,global-scratch,direct-strided-or-transpose,64,4096,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,64,4096,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,table,global-scratch,direct-strided-or-transpose,64,4096,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,64,4096,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,table,global-scratch,direct-strided-or-transpose,128,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,table,global-scratch,direct-strided-or-transpose,128,8192,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,table,global-scratch,direct-strided-or-transpose,128,8192,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,table,global-scratch,direct-strided-or-transpose,128,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,table,global-scratch,direct-strided-or-transpose,128,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,table,global-scratch,direct-strided-or-transpose,128,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,table,global-scratch,direct-strided-or-transpose,256,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,table,global-scratch,direct-strided-or-transpose,256,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,table,global-scratch,direct-strided-or-transpose,256,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,table,global-scratch,direct-strided-or-transpose,128,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,table,global-scratch,direct-strided-or-transpose,128,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,table,global-scratch,direct-strided-or-transpose,128,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,table,global-scratch,direct-strided-or-transpose,256,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,table,global-scratch,direct-strided-or-transpose,256,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,table,global-scratch,direct-strided-or-transpose,256,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,table,global-scratch,direct-strided-or-transpose,128,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,table,global-scratch,direct-strided-or-transpose,128,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,table,global-scratch,direct-strided-or-transpose,128,8192,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,table,global-scratch,direct-strided-or-transpose,256,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,table,global-scratch,direct-strided-or-transpose,256,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,table,global-scratch,direct-strided-or-transpose,256,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,table,global-scratch,direct-strided-or-transpose,128,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,table,global-scratch,direct-strided-or-transpose,128,8192,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,table,global-scratch,direct-strided-or-transpose,128,8192,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,128,8192,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,table,global-scratch,direct-strided-or-transpose,256,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,table,global-scratch,direct-strided-or-transpose,256,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,table,global-scratch,direct-strided-or-transpose,256,16384,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,table,global-scratch,direct-strided-or-transpose,256,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,table,global-scratch,direct-strided-or-transpose,256,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,table,global-scratch,direct-strided-or-transpose,256,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,table,global-scratch,direct-strided-or-transpose,512,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,table,global-scratch,direct-strided-or-transpose,512,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,table,global-scratch,direct-strided-or-transpose,512,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,table,global-scratch,direct-strided-or-transpose,256,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,table,global-scratch,direct-strided-or-transpose,256,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,table,global-scratch,direct-strided-or-transpose,256,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,table,global-scratch,direct-strided-or-transpose,512,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,table,global-scratch,direct-strided-or-transpose,512,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,table,global-scratch,direct-strided-or-transpose,512,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,table,global-scratch,direct-strided-or-transpose,256,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,table,global-scratch,direct-strided-or-transpose,256,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,table,global-scratch,direct-strided-or-transpose,256,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,table,global-scratch,direct-strided-or-transpose,512,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,table,global-scratch,direct-strided-or-transpose,512,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,table,global-scratch,direct-strided-or-transpose,512,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,table,global-scratch,direct-strided-or-transpose,256,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,table,global-scratch,direct-strided-or-transpose,256,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,table,global-scratch,direct-strided-or-transpose,256,16384,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,256,16384,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,table,global-scratch,direct-strided-or-transpose,512,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,table,global-scratch,direct-strided-or-transpose,512,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,table,global-scratch,direct-strided-or-transpose,512,32768,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,table,global-scratch,direct-strided-or-transpose,512,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,table,global-scratch,direct-strided-or-transpose,512,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,table,global-scratch,direct-strided-or-transpose,512,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,table,global-scratch,direct-strided-or-transpose,1024,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,1024,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,table,global-scratch,direct-strided-or-transpose,1024,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,1024,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,table,global-scratch,direct-strided-or-transpose,1024,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,1024,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,0,4096,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,4096,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,0,8192,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,8192,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,table,global-scratch,direct-strided-or-transpose,512,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,table,global-scratch,direct-strided-or-transpose,512,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,table,global-scratch,direct-strided-or-transpose,512,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,table,global-scratch,direct-strided-or-transpose,1024,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,1024,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,table,global-scratch,direct-strided-or-transpose,1024,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,1024,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,table,global-scratch,direct-strided-or-transpose,1024,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,1024,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,0,8192,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,8192,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,table,global-scratch,direct-strided-or-transpose,512,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,table,global-scratch,direct-strided-or-transpose,512,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,table,global-scratch,direct-strided-or-transpose,512,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,table,global-scratch,direct-strided-or-transpose,1024,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,1024,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,table,global-scratch,direct-strided-or-transpose,1024,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,1024,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,table,global-scratch,direct-strided-or-transpose,1024,65536,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,1024,65536,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,table,global-scratch,direct-strided-or-transpose,512,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,table,global-scratch,direct-strided-or-transpose,512,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,table,global-scratch,direct-strided-or-transpose,512,32768,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,512,32768,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,table,global-scratch,direct-strided-or-transpose,1024,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,1024,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,table,global-scratch,direct-strided-or-transpose,1024,65536,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,1024,65536,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,table,global-scratch,direct-strided-or-transpose,1024,65536,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,1024,65536,0,131072,hardware-infeasible,suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,131072,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage;suffix-shared +cufftdx-online,18,3,15,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,131072,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage;suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,table,global-scratch,direct-strided-or-transpose,32,4096,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,32,4096,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,table,global-scratch,direct-strided-or-transpose,32,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,32,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,table,global-scratch,direct-strided-or-transpose,32,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,32,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,table,global-scratch,direct-strided-or-transpose,64,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,table,global-scratch,direct-strided-or-transpose,64,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,table,global-scratch,direct-strided-or-transpose,64,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,table,global-scratch,direct-strided-or-transpose,128,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,table,global-scratch,direct-strided-or-transpose,128,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,table,global-scratch,direct-strided-or-transpose,128,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,table,global-scratch,direct-strided-or-transpose,32,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,32,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,table,global-scratch,direct-strided-or-transpose,32,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,32,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,table,global-scratch,direct-strided-or-transpose,32,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,32,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,table,global-scratch,direct-strided-or-transpose,64,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,table,global-scratch,direct-strided-or-transpose,64,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,table,global-scratch,direct-strided-or-transpose,64,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,table,global-scratch,direct-strided-or-transpose,128,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,table,global-scratch,direct-strided-or-transpose,128,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,table,global-scratch,direct-strided-or-transpose,128,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,table,global-scratch,direct-strided-or-transpose,32,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,32,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,table,global-scratch,direct-strided-or-transpose,32,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,32,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,table,global-scratch,direct-strided-or-transpose,32,4096,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,32,4096,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,table,global-scratch,direct-strided-or-transpose,64,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,table,global-scratch,direct-strided-or-transpose,64,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,table,global-scratch,direct-strided-or-transpose,64,8192,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,table,global-scratch,direct-strided-or-transpose,128,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,table,global-scratch,direct-strided-or-transpose,128,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,table,global-scratch,direct-strided-or-transpose,128,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,table,global-scratch,direct-strided-or-transpose,32,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,32,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,table,global-scratch,direct-strided-or-transpose,32,4096,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,32,4096,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,table,global-scratch,direct-strided-or-transpose,32,4096,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,32,4096,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,table,global-scratch,direct-strided-or-transpose,64,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,table,global-scratch,direct-strided-or-transpose,64,8192,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,table,global-scratch,direct-strided-or-transpose,64,8192,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,64,8192,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,table,global-scratch,direct-strided-or-transpose,128,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,table,global-scratch,direct-strided-or-transpose,128,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,table,global-scratch,direct-strided-or-transpose,128,16384,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,128,16384,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,table,global-scratch,direct-strided-or-transpose,64,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,table,global-scratch,direct-strided-or-transpose,64,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,table,global-scratch,direct-strided-or-transpose,64,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,table,global-scratch,direct-strided-or-transpose,128,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,table,global-scratch,direct-strided-or-transpose,128,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,table,global-scratch,direct-strided-or-transpose,128,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,table,global-scratch,direct-strided-or-transpose,256,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,table,global-scratch,direct-strided-or-transpose,256,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,table,global-scratch,direct-strided-or-transpose,256,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,table,global-scratch,direct-strided-or-transpose,64,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,table,global-scratch,direct-strided-or-transpose,64,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,table,global-scratch,direct-strided-or-transpose,64,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,table,global-scratch,direct-strided-or-transpose,128,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,table,global-scratch,direct-strided-or-transpose,128,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,table,global-scratch,direct-strided-or-transpose,128,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,table,global-scratch,direct-strided-or-transpose,256,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,table,global-scratch,direct-strided-or-transpose,256,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,table,global-scratch,direct-strided-or-transpose,256,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,table,global-scratch,direct-strided-or-transpose,64,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,table,global-scratch,direct-strided-or-transpose,64,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,table,global-scratch,direct-strided-or-transpose,64,8192,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,table,global-scratch,direct-strided-or-transpose,128,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,table,global-scratch,direct-strided-or-transpose,128,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,table,global-scratch,direct-strided-or-transpose,128,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,table,global-scratch,direct-strided-or-transpose,256,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,table,global-scratch,direct-strided-or-transpose,256,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,table,global-scratch,direct-strided-or-transpose,256,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,table,global-scratch,direct-strided-or-transpose,64,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,table,global-scratch,direct-strided-or-transpose,64,8192,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,64,8192,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,table,global-scratch,direct-strided-or-transpose,64,8192,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,64,8192,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,table,global-scratch,direct-strided-or-transpose,128,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,table,global-scratch,direct-strided-or-transpose,128,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,table,global-scratch,direct-strided-or-transpose,128,16384,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,128,16384,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,table,global-scratch,direct-strided-or-transpose,256,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,table,global-scratch,direct-strided-or-transpose,256,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,table,global-scratch,direct-strided-or-transpose,256,32768,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,256,32768,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,table,global-scratch,direct-strided-or-transpose,128,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,table,global-scratch,direct-strided-or-transpose,128,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,table,global-scratch,direct-strided-or-transpose,128,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,table,global-scratch,direct-strided-or-transpose,256,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,table,global-scratch,direct-strided-or-transpose,256,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,table,global-scratch,direct-strided-or-transpose,256,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,table,global-scratch,direct-strided-or-transpose,512,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,table,global-scratch,direct-strided-or-transpose,512,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,table,global-scratch,direct-strided-or-transpose,512,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,table,global-scratch,direct-strided-or-transpose,128,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,table,global-scratch,direct-strided-or-transpose,128,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,table,global-scratch,direct-strided-or-transpose,128,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,table,global-scratch,direct-strided-or-transpose,256,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,table,global-scratch,direct-strided-or-transpose,256,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,table,global-scratch,direct-strided-or-transpose,256,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,table,global-scratch,direct-strided-or-transpose,512,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,table,global-scratch,direct-strided-or-transpose,512,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,table,global-scratch,direct-strided-or-transpose,512,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,table,global-scratch,direct-strided-or-transpose,128,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,table,global-scratch,direct-strided-or-transpose,128,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,table,global-scratch,direct-strided-or-transpose,128,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,table,global-scratch,direct-strided-or-transpose,256,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,table,global-scratch,direct-strided-or-transpose,256,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,table,global-scratch,direct-strided-or-transpose,256,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,table,global-scratch,direct-strided-or-transpose,512,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,table,global-scratch,direct-strided-or-transpose,512,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,table,global-scratch,direct-strided-or-transpose,512,65536,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,table,global-scratch,direct-strided-or-transpose,128,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,table,global-scratch,direct-strided-or-transpose,128,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,128,16384,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,table,global-scratch,direct-strided-or-transpose,128,16384,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,128,16384,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,table,global-scratch,direct-strided-or-transpose,256,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,table,global-scratch,direct-strided-or-transpose,256,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,table,global-scratch,direct-strided-or-transpose,256,32768,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,256,32768,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,table,global-scratch,direct-strided-or-transpose,512,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,table,global-scratch,direct-strided-or-transpose,512,65536,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,table,global-scratch,direct-strided-or-transpose,512,65536,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,512,65536,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,table,global-scratch,direct-strided-or-transpose,256,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,table,global-scratch,direct-strided-or-transpose,256,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,table,global-scratch,direct-strided-or-transpose,256,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,table,global-scratch,direct-strided-or-transpose,512,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,table,global-scratch,direct-strided-or-transpose,512,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,table,global-scratch,direct-strided-or-transpose,512,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,table,global-scratch,direct-strided-or-transpose,1024,131072,0,4096,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,1024,131072,0,4096,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,table,global-scratch,direct-strided-or-transpose,1024,131072,0,8192,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,1024,131072,0,8192,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,table,global-scratch,direct-strided-or-transpose,1024,131072,0,16384,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,1024,131072,0,16384,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,table,global-scratch,direct-strided-or-transpose,256,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,table,global-scratch,direct-strided-or-transpose,256,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,table,global-scratch,direct-strided-or-transpose,256,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,table,global-scratch,direct-strided-or-transpose,512,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,table,global-scratch,direct-strided-or-transpose,512,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,table,global-scratch,direct-strided-or-transpose,512,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,table,global-scratch,direct-strided-or-transpose,1024,131072,0,8192,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,1024,131072,0,8192,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,table,global-scratch,direct-strided-or-transpose,1024,131072,0,16384,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,1024,131072,0,16384,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,table,global-scratch,direct-strided-or-transpose,1024,131072,0,32768,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,1024,131072,0,32768,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,table,global-scratch,direct-strided-or-transpose,256,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,table,global-scratch,direct-strided-or-transpose,256,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,table,global-scratch,direct-strided-or-transpose,256,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,table,global-scratch,direct-strided-or-transpose,512,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,table,global-scratch,direct-strided-or-transpose,512,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,table,global-scratch,direct-strided-or-transpose,512,65536,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,table,global-scratch,direct-strided-or-transpose,1024,131072,0,16384,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,1024,131072,0,16384,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,table,global-scratch,direct-strided-or-transpose,1024,131072,0,32768,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,1024,131072,0,32768,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,table,global-scratch,direct-strided-or-transpose,1024,131072,0,65536,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,1024,131072,0,65536,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,table,global-scratch,direct-strided-or-transpose,256,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,table,global-scratch,direct-strided-or-transpose,256,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,256,32768,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,table,global-scratch,direct-strided-or-transpose,256,32768,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,256,32768,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,table,global-scratch,direct-strided-or-transpose,512,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,table,global-scratch,direct-strided-or-transpose,512,65536,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,512,65536,0,65536,hardware-infeasible,suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,table,global-scratch,direct-strided-or-transpose,512,65536,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,512,65536,1,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,table,global-scratch,direct-strided-or-transpose,1024,131072,0,32768,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,1024,131072,0,32768,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,table,global-scratch,direct-strided-or-transpose,1024,131072,0,65536,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,1024,131072,0,65536,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,table,global-scratch,direct-strided-or-transpose,1024,131072,1,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,4,14,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,1024,131072,1,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,table,global-scratch,direct-strided-or-transpose,16,4096,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,16,4096,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,table,global-scratch,direct-strided-or-transpose,16,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,16,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,table,global-scratch,direct-strided-or-transpose,16,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,16,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,table,global-scratch,direct-strided-or-transpose,32,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,32,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,table,global-scratch,direct-strided-or-transpose,32,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,32,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,table,global-scratch,direct-strided-or-transpose,32,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,32,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,table,global-scratch,direct-strided-or-transpose,64,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,table,global-scratch,direct-strided-or-transpose,64,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,table,global-scratch,direct-strided-or-transpose,64,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,table,global-scratch,direct-strided-or-transpose,16,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,16,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,table,global-scratch,direct-strided-or-transpose,16,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,16,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,table,global-scratch,direct-strided-or-transpose,16,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,16,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,table,global-scratch,direct-strided-or-transpose,32,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,32,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,table,global-scratch,direct-strided-or-transpose,32,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,32,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,table,global-scratch,direct-strided-or-transpose,32,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,32,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,table,global-scratch,direct-strided-or-transpose,64,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,table,global-scratch,direct-strided-or-transpose,64,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,table,global-scratch,direct-strided-or-transpose,64,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,table,global-scratch,direct-strided-or-transpose,16,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,16,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,table,global-scratch,direct-strided-or-transpose,16,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,16,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,table,global-scratch,direct-strided-or-transpose,16,4096,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,16,4096,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,table,global-scratch,direct-strided-or-transpose,32,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,32,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,table,global-scratch,direct-strided-or-transpose,32,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,32,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,table,global-scratch,direct-strided-or-transpose,32,8192,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,32,8192,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,table,global-scratch,direct-strided-or-transpose,64,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,table,global-scratch,direct-strided-or-transpose,64,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,table,global-scratch,direct-strided-or-transpose,64,16384,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,64,16384,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,table,global-scratch,direct-strided-or-transpose,16,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,16,4096,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,table,global-scratch,direct-strided-or-transpose,16,4096,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,16,4096,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,table,global-scratch,direct-strided-or-transpose,16,4096,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,16,4096,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,table,global-scratch,direct-strided-or-transpose,32,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,32,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,table,global-scratch,direct-strided-or-transpose,32,8192,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,32,8192,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,table,global-scratch,direct-strided-or-transpose,32,8192,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,32,8192,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,table,global-scratch,direct-strided-or-transpose,64,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,table,global-scratch,direct-strided-or-transpose,64,16384,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,64,16384,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,table,global-scratch,direct-strided-or-transpose,64,16384,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,64,16384,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,table,global-scratch,direct-strided-or-transpose,32,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,32,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,table,global-scratch,direct-strided-or-transpose,32,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,32,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,table,global-scratch,direct-strided-or-transpose,32,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,32,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,table,global-scratch,direct-strided-or-transpose,64,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,table,global-scratch,direct-strided-or-transpose,64,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,table,global-scratch,direct-strided-or-transpose,64,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,table,global-scratch,direct-strided-or-transpose,128,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,table,global-scratch,direct-strided-or-transpose,128,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,table,global-scratch,direct-strided-or-transpose,128,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,table,global-scratch,direct-strided-or-transpose,32,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,32,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,table,global-scratch,direct-strided-or-transpose,32,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,32,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,table,global-scratch,direct-strided-or-transpose,32,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,32,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,table,global-scratch,direct-strided-or-transpose,64,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,table,global-scratch,direct-strided-or-transpose,64,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,table,global-scratch,direct-strided-or-transpose,64,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,table,global-scratch,direct-strided-or-transpose,128,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,table,global-scratch,direct-strided-or-transpose,128,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,table,global-scratch,direct-strided-or-transpose,128,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,table,global-scratch,direct-strided-or-transpose,32,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,32,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,table,global-scratch,direct-strided-or-transpose,32,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,32,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,table,global-scratch,direct-strided-or-transpose,32,8192,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,32,8192,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,table,global-scratch,direct-strided-or-transpose,64,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,table,global-scratch,direct-strided-or-transpose,64,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,table,global-scratch,direct-strided-or-transpose,64,16384,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,64,16384,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,table,global-scratch,direct-strided-or-transpose,128,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,table,global-scratch,direct-strided-or-transpose,128,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,table,global-scratch,direct-strided-or-transpose,128,32768,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,128,32768,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,table,global-scratch,direct-strided-or-transpose,32,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,32,8192,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,table,global-scratch,direct-strided-or-transpose,32,8192,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,32,8192,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,table,global-scratch,direct-strided-or-transpose,32,8192,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,32,8192,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,table,global-scratch,direct-strided-or-transpose,64,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,table,global-scratch,direct-strided-or-transpose,64,16384,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,64,16384,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,table,global-scratch,direct-strided-or-transpose,64,16384,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,64,16384,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,table,global-scratch,direct-strided-or-transpose,128,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,table,global-scratch,direct-strided-or-transpose,128,32768,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,128,32768,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,table,global-scratch,direct-strided-or-transpose,128,32768,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,128,32768,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,table,global-scratch,direct-strided-or-transpose,64,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,table,global-scratch,direct-strided-or-transpose,64,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,table,global-scratch,direct-strided-or-transpose,64,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,table,global-scratch,direct-strided-or-transpose,128,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,table,global-scratch,direct-strided-or-transpose,128,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,table,global-scratch,direct-strided-or-transpose,128,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,table,global-scratch,direct-strided-or-transpose,256,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,256,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,table,global-scratch,direct-strided-or-transpose,256,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,256,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,table,global-scratch,direct-strided-or-transpose,256,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,256,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,table,global-scratch,direct-strided-or-transpose,64,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,table,global-scratch,direct-strided-or-transpose,64,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,table,global-scratch,direct-strided-or-transpose,64,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,table,global-scratch,direct-strided-or-transpose,128,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,table,global-scratch,direct-strided-or-transpose,128,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,table,global-scratch,direct-strided-or-transpose,128,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,table,global-scratch,direct-strided-or-transpose,256,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,256,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,table,global-scratch,direct-strided-or-transpose,256,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,256,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,table,global-scratch,direct-strided-or-transpose,256,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,256,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,table,global-scratch,direct-strided-or-transpose,64,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,table,global-scratch,direct-strided-or-transpose,64,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,table,global-scratch,direct-strided-or-transpose,64,16384,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,64,16384,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,table,global-scratch,direct-strided-or-transpose,128,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,table,global-scratch,direct-strided-or-transpose,128,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,table,global-scratch,direct-strided-or-transpose,128,32768,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,128,32768,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,table,global-scratch,direct-strided-or-transpose,256,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,256,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,table,global-scratch,direct-strided-or-transpose,256,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,256,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,table,global-scratch,direct-strided-or-transpose,256,65536,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,256,65536,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,table,global-scratch,direct-strided-or-transpose,64,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,64,16384,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,table,global-scratch,direct-strided-or-transpose,64,16384,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,64,16384,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,table,global-scratch,direct-strided-or-transpose,64,16384,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,64,16384,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,table,global-scratch,direct-strided-or-transpose,128,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,table,global-scratch,direct-strided-or-transpose,128,32768,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,128,32768,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,table,global-scratch,direct-strided-or-transpose,128,32768,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,128,32768,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,table,global-scratch,direct-strided-or-transpose,256,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,256,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,table,global-scratch,direct-strided-or-transpose,256,65536,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,256,65536,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,table,global-scratch,direct-strided-or-transpose,256,65536,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,256,65536,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,table,global-scratch,direct-strided-or-transpose,128,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,table,global-scratch,direct-strided-or-transpose,128,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,table,global-scratch,direct-strided-or-transpose,128,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,table,global-scratch,direct-strided-or-transpose,256,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,256,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,table,global-scratch,direct-strided-or-transpose,256,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,256,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,table,global-scratch,direct-strided-or-transpose,256,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,256,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,table,global-scratch,direct-strided-or-transpose,512,131072,0,4096,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,512,131072,0,4096,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,table,global-scratch,direct-strided-or-transpose,512,131072,0,8192,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,512,131072,0,8192,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,table,global-scratch,direct-strided-or-transpose,512,131072,0,16384,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,512,131072,0,16384,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,table,global-scratch,direct-strided-or-transpose,128,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,table,global-scratch,direct-strided-or-transpose,128,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,table,global-scratch,direct-strided-or-transpose,128,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,table,global-scratch,direct-strided-or-transpose,256,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,256,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,table,global-scratch,direct-strided-or-transpose,256,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,256,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,table,global-scratch,direct-strided-or-transpose,256,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,256,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,table,global-scratch,direct-strided-or-transpose,512,131072,0,8192,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,512,131072,0,8192,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,table,global-scratch,direct-strided-or-transpose,512,131072,0,16384,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,512,131072,0,16384,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,table,global-scratch,direct-strided-or-transpose,512,131072,0,32768,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,512,131072,0,32768,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,table,global-scratch,direct-strided-or-transpose,128,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,table,global-scratch,direct-strided-or-transpose,128,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,table,global-scratch,direct-strided-or-transpose,128,32768,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,128,32768,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,table,global-scratch,direct-strided-or-transpose,256,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,256,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,table,global-scratch,direct-strided-or-transpose,256,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,256,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,table,global-scratch,direct-strided-or-transpose,256,65536,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,256,65536,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,table,global-scratch,direct-strided-or-transpose,512,131072,0,16384,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,512,131072,0,16384,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,table,global-scratch,direct-strided-or-transpose,512,131072,0,32768,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,512,131072,0,32768,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,table,global-scratch,direct-strided-or-transpose,512,131072,1,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,512,131072,1,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,table,global-scratch,direct-strided-or-transpose,128,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,128,32768,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,table,global-scratch,direct-strided-or-transpose,128,32768,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,128,32768,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,table,global-scratch,direct-strided-or-transpose,128,32768,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,128,32768,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,table,global-scratch,direct-strided-or-transpose,256,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,256,65536,0,32768,hardware-infeasible,suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,table,global-scratch,direct-strided-or-transpose,256,65536,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,256,65536,1,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,table,global-scratch,direct-strided-or-transpose,256,65536,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,256,65536,2,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,table,global-scratch,direct-strided-or-transpose,512,131072,0,32768,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,512,131072,0,32768,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,table,global-scratch,direct-strided-or-transpose,512,131072,1,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,512,131072,1,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,table,global-scratch,direct-strided-or-transpose,512,131072,2,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,5,13,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,512,131072,2,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,table,global-scratch,direct-strided-or-transpose,8,4096,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,8,4096,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,table,global-scratch,direct-strided-or-transpose,8,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,8,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,table,global-scratch,direct-strided-or-transpose,8,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,8,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,table,global-scratch,direct-strided-or-transpose,16,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,16,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,table,global-scratch,direct-strided-or-transpose,16,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,16,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,table,global-scratch,direct-strided-or-transpose,16,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,16,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,table,global-scratch,direct-strided-or-transpose,32,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,32,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,table,global-scratch,direct-strided-or-transpose,32,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,32,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,table,global-scratch,direct-strided-or-transpose,32,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,32,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,table,global-scratch,direct-strided-or-transpose,8,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,8,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,table,global-scratch,direct-strided-or-transpose,8,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,8,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,table,global-scratch,direct-strided-or-transpose,8,4096,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,8,4096,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,table,global-scratch,direct-strided-or-transpose,16,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,16,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,table,global-scratch,direct-strided-or-transpose,16,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,16,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,table,global-scratch,direct-strided-or-transpose,16,8192,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,16,8192,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,table,global-scratch,direct-strided-or-transpose,32,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,32,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,table,global-scratch,direct-strided-or-transpose,32,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,32,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,table,global-scratch,direct-strided-or-transpose,32,16384,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,32,16384,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,table,global-scratch,direct-strided-or-transpose,8,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,8,4096,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,table,global-scratch,direct-strided-or-transpose,8,4096,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,8,4096,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,table,global-scratch,direct-strided-or-transpose,8,4096,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,8,4096,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,table,global-scratch,direct-strided-or-transpose,16,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,16,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,table,global-scratch,direct-strided-or-transpose,16,8192,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,16,8192,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,table,global-scratch,direct-strided-or-transpose,16,8192,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,16,8192,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,table,global-scratch,direct-strided-or-transpose,32,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,32,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,table,global-scratch,direct-strided-or-transpose,32,16384,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,32,16384,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,table,global-scratch,direct-strided-or-transpose,32,16384,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,32,16384,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,table,global-scratch,direct-strided-or-transpose,8,4096,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,8,4096,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,table,global-scratch,direct-strided-or-transpose,8,4096,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,8,4096,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,table,global-scratch,direct-strided-or-transpose,8,4096,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,8,4096,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,table,global-scratch,direct-strided-or-transpose,16,8192,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,16,8192,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,table,global-scratch,direct-strided-or-transpose,16,8192,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,16,8192,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,table,global-scratch,direct-strided-or-transpose,16,8192,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,16,8192,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,table,global-scratch,direct-strided-or-transpose,32,16384,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,32,16384,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,table,global-scratch,direct-strided-or-transpose,32,16384,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,32,16384,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,table,global-scratch,direct-strided-or-transpose,32,16384,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,32,16384,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,table,global-scratch,direct-strided-or-transpose,16,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,16,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,table,global-scratch,direct-strided-or-transpose,16,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,16,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,table,global-scratch,direct-strided-or-transpose,16,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,16,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,table,global-scratch,direct-strided-or-transpose,32,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,32,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,table,global-scratch,direct-strided-or-transpose,32,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,32,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,table,global-scratch,direct-strided-or-transpose,32,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,32,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,table,global-scratch,direct-strided-or-transpose,64,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,64,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,table,global-scratch,direct-strided-or-transpose,64,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,64,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,table,global-scratch,direct-strided-or-transpose,64,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,64,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,table,global-scratch,direct-strided-or-transpose,16,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,16,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,table,global-scratch,direct-strided-or-transpose,16,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,16,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,table,global-scratch,direct-strided-or-transpose,16,8192,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,16,8192,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,table,global-scratch,direct-strided-or-transpose,32,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,32,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,table,global-scratch,direct-strided-or-transpose,32,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,32,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,table,global-scratch,direct-strided-or-transpose,32,16384,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,32,16384,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,table,global-scratch,direct-strided-or-transpose,64,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,64,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,table,global-scratch,direct-strided-or-transpose,64,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,64,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,table,global-scratch,direct-strided-or-transpose,64,32768,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,64,32768,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,table,global-scratch,direct-strided-or-transpose,16,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,16,8192,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,table,global-scratch,direct-strided-or-transpose,16,8192,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,16,8192,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,table,global-scratch,direct-strided-or-transpose,16,8192,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,16,8192,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,table,global-scratch,direct-strided-or-transpose,32,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,32,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,table,global-scratch,direct-strided-or-transpose,32,16384,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,32,16384,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,table,global-scratch,direct-strided-or-transpose,32,16384,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,32,16384,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,table,global-scratch,direct-strided-or-transpose,64,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,64,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,table,global-scratch,direct-strided-or-transpose,64,32768,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,64,32768,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,table,global-scratch,direct-strided-or-transpose,64,32768,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,64,32768,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,table,global-scratch,direct-strided-or-transpose,16,8192,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,16,8192,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,table,global-scratch,direct-strided-or-transpose,16,8192,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,16,8192,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,table,global-scratch,direct-strided-or-transpose,16,8192,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,16,8192,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,table,global-scratch,direct-strided-or-transpose,32,16384,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,32,16384,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,table,global-scratch,direct-strided-or-transpose,32,16384,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,32,16384,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,table,global-scratch,direct-strided-or-transpose,32,16384,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,32,16384,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,table,global-scratch,direct-strided-or-transpose,64,32768,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,64,32768,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,table,global-scratch,direct-strided-or-transpose,64,32768,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,64,32768,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,table,global-scratch,direct-strided-or-transpose,64,32768,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,64,32768,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,table,global-scratch,direct-strided-or-transpose,32,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,32,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,table,global-scratch,direct-strided-or-transpose,32,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,32,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,table,global-scratch,direct-strided-or-transpose,32,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,32,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,table,global-scratch,direct-strided-or-transpose,64,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,64,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,table,global-scratch,direct-strided-or-transpose,64,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,64,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,table,global-scratch,direct-strided-or-transpose,64,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,64,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,table,global-scratch,direct-strided-or-transpose,128,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,128,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,table,global-scratch,direct-strided-or-transpose,128,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,128,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,table,global-scratch,direct-strided-or-transpose,128,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,128,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,table,global-scratch,direct-strided-or-transpose,32,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,32,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,table,global-scratch,direct-strided-or-transpose,32,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,32,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,table,global-scratch,direct-strided-or-transpose,32,16384,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,32,16384,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,table,global-scratch,direct-strided-or-transpose,64,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,64,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,table,global-scratch,direct-strided-or-transpose,64,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,64,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,table,global-scratch,direct-strided-or-transpose,64,32768,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,64,32768,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,table,global-scratch,direct-strided-or-transpose,128,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,128,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,table,global-scratch,direct-strided-or-transpose,128,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,128,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,table,global-scratch,direct-strided-or-transpose,128,65536,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,128,65536,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,table,global-scratch,direct-strided-or-transpose,32,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,32,16384,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,table,global-scratch,direct-strided-or-transpose,32,16384,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,32,16384,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,table,global-scratch,direct-strided-or-transpose,32,16384,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,32,16384,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,table,global-scratch,direct-strided-or-transpose,64,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,64,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,table,global-scratch,direct-strided-or-transpose,64,32768,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,64,32768,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,table,global-scratch,direct-strided-or-transpose,64,32768,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,64,32768,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,table,global-scratch,direct-strided-or-transpose,128,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,128,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,table,global-scratch,direct-strided-or-transpose,128,65536,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,128,65536,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,table,global-scratch,direct-strided-or-transpose,128,65536,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,128,65536,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,table,global-scratch,direct-strided-or-transpose,32,16384,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,32,16384,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,table,global-scratch,direct-strided-or-transpose,32,16384,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,32,16384,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,table,global-scratch,direct-strided-or-transpose,32,16384,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,32,16384,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,table,global-scratch,direct-strided-or-transpose,64,32768,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,64,32768,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,table,global-scratch,direct-strided-or-transpose,64,32768,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,64,32768,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,table,global-scratch,direct-strided-or-transpose,64,32768,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,64,32768,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,table,global-scratch,direct-strided-or-transpose,128,65536,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,128,65536,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,table,global-scratch,direct-strided-or-transpose,128,65536,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,128,65536,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,table,global-scratch,direct-strided-or-transpose,128,65536,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,128,65536,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,table,global-scratch,direct-strided-or-transpose,64,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,64,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,table,global-scratch,direct-strided-or-transpose,64,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,64,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,table,global-scratch,direct-strided-or-transpose,64,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,64,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,table,global-scratch,direct-strided-or-transpose,128,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,128,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,table,global-scratch,direct-strided-or-transpose,128,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,128,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,table,global-scratch,direct-strided-or-transpose,128,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,128,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,table,global-scratch,direct-strided-or-transpose,256,131072,0,4096,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,256,131072,0,4096,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,table,global-scratch,direct-strided-or-transpose,256,131072,0,8192,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,256,131072,0,8192,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,table,global-scratch,direct-strided-or-transpose,256,131072,0,16384,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,256,131072,0,16384,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,table,global-scratch,direct-strided-or-transpose,64,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,64,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,table,global-scratch,direct-strided-or-transpose,64,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,64,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,table,global-scratch,direct-strided-or-transpose,64,32768,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,64,32768,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,table,global-scratch,direct-strided-or-transpose,128,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,128,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,table,global-scratch,direct-strided-or-transpose,128,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,128,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,table,global-scratch,direct-strided-or-transpose,128,65536,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,128,65536,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,table,global-scratch,direct-strided-or-transpose,256,131072,0,8192,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,256,131072,0,8192,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,table,global-scratch,direct-strided-or-transpose,256,131072,0,16384,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,256,131072,0,16384,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,table,global-scratch,direct-strided-or-transpose,256,131072,1,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,256,131072,1,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,table,global-scratch,direct-strided-or-transpose,64,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,64,32768,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,table,global-scratch,direct-strided-or-transpose,64,32768,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,64,32768,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,table,global-scratch,direct-strided-or-transpose,64,32768,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,64,32768,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,table,global-scratch,direct-strided-or-transpose,128,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,128,65536,0,16384,hardware-infeasible,suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,table,global-scratch,direct-strided-or-transpose,128,65536,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,128,65536,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,table,global-scratch,direct-strided-or-transpose,128,65536,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,128,65536,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,table,global-scratch,direct-strided-or-transpose,256,131072,0,16384,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,256,131072,0,16384,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,table,global-scratch,direct-strided-or-transpose,256,131072,1,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,256,131072,1,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,table,global-scratch,direct-strided-or-transpose,256,131072,2,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,256,131072,2,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,table,global-scratch,direct-strided-or-transpose,64,32768,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,64,32768,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,table,global-scratch,direct-strided-or-transpose,64,32768,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,64,32768,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,table,global-scratch,direct-strided-or-transpose,64,32768,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,64,32768,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,table,global-scratch,direct-strided-or-transpose,128,65536,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,128,65536,1,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,table,global-scratch,direct-strided-or-transpose,128,65536,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,128,65536,2,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,table,global-scratch,direct-strided-or-transpose,128,65536,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,128,65536,4,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,table,global-scratch,direct-strided-or-transpose,256,131072,1,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,256,131072,1,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,table,global-scratch,direct-strided-or-transpose,256,131072,2,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,256,131072,2,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,table,global-scratch,direct-strided-or-transpose,256,131072,4,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,6,12,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,256,131072,4,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,table,global-scratch,direct-strided-or-transpose,4,4096,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,4,4096,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,table,global-scratch,direct-strided-or-transpose,4,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,4,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,table,global-scratch,direct-strided-or-transpose,4,4096,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,4,4096,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,table,global-scratch,direct-strided-or-transpose,8,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,8,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,table,global-scratch,direct-strided-or-transpose,8,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,8,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,table,global-scratch,direct-strided-or-transpose,8,8192,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,8,8192,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,table,global-scratch,direct-strided-or-transpose,16,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,16,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,table,global-scratch,direct-strided-or-transpose,16,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,16,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,table,global-scratch,direct-strided-or-transpose,16,16384,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,16,16384,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,table,global-scratch,direct-strided-or-transpose,4,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,4,4096,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,table,global-scratch,direct-strided-or-transpose,4,4096,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,4,4096,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,table,global-scratch,direct-strided-or-transpose,4,4096,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,4,4096,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,table,global-scratch,direct-strided-or-transpose,8,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,8,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,table,global-scratch,direct-strided-or-transpose,8,8192,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,8,8192,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,table,global-scratch,direct-strided-or-transpose,8,8192,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,8,8192,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,table,global-scratch,direct-strided-or-transpose,16,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,16,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,table,global-scratch,direct-strided-or-transpose,16,16384,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,16,16384,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,table,global-scratch,direct-strided-or-transpose,16,16384,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,16,16384,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,table,global-scratch,direct-strided-or-transpose,4,4096,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,4,4096,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,table,global-scratch,direct-strided-or-transpose,4,4096,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,4,4096,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,table,global-scratch,direct-strided-or-transpose,4,4096,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,4,4096,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,table,global-scratch,direct-strided-or-transpose,8,8192,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,8,8192,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,table,global-scratch,direct-strided-or-transpose,8,8192,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,8,8192,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,table,global-scratch,direct-strided-or-transpose,8,8192,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,8,8192,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,table,global-scratch,direct-strided-or-transpose,16,16384,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,16,16384,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,table,global-scratch,direct-strided-or-transpose,16,16384,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,16,16384,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,table,global-scratch,direct-strided-or-transpose,16,16384,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,16,16384,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,table,global-scratch,direct-strided-or-transpose,4,4096,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,4,4096,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,table,global-scratch,direct-strided-or-transpose,4,4096,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,4,4096,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,table,global-scratch,direct-strided-or-transpose,4,4096,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,4,4096,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,table,global-scratch,direct-strided-or-transpose,8,8192,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,8,8192,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,table,global-scratch,direct-strided-or-transpose,8,8192,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,8,8192,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,table,global-scratch,direct-strided-or-transpose,8,8192,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,8,8192,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,table,global-scratch,direct-strided-or-transpose,16,16384,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,16,16384,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,table,global-scratch,direct-strided-or-transpose,16,16384,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,16,16384,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,table,global-scratch,direct-strided-or-transpose,16,16384,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,16,16384,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,table,global-scratch,direct-strided-or-transpose,8,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,8,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,table,global-scratch,direct-strided-or-transpose,8,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,8,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,table,global-scratch,direct-strided-or-transpose,8,8192,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,8,8192,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,table,global-scratch,direct-strided-or-transpose,16,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,16,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,table,global-scratch,direct-strided-or-transpose,16,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,16,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,table,global-scratch,direct-strided-or-transpose,16,16384,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,16,16384,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,table,global-scratch,direct-strided-or-transpose,32,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,32,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,table,global-scratch,direct-strided-or-transpose,32,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,32,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,table,global-scratch,direct-strided-or-transpose,32,32768,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,32,32768,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,table,global-scratch,direct-strided-or-transpose,8,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,8,8192,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,table,global-scratch,direct-strided-or-transpose,8,8192,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,8,8192,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,table,global-scratch,direct-strided-or-transpose,8,8192,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,8,8192,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,table,global-scratch,direct-strided-or-transpose,16,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,16,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,table,global-scratch,direct-strided-or-transpose,16,16384,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,16,16384,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,table,global-scratch,direct-strided-or-transpose,16,16384,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,16,16384,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,table,global-scratch,direct-strided-or-transpose,32,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,32,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,table,global-scratch,direct-strided-or-transpose,32,32768,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,32,32768,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,table,global-scratch,direct-strided-or-transpose,32,32768,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,32,32768,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,table,global-scratch,direct-strided-or-transpose,8,8192,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,8,8192,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,table,global-scratch,direct-strided-or-transpose,8,8192,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,8,8192,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,table,global-scratch,direct-strided-or-transpose,8,8192,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,8,8192,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,table,global-scratch,direct-strided-or-transpose,16,16384,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,16,16384,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,table,global-scratch,direct-strided-or-transpose,16,16384,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,16,16384,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,table,global-scratch,direct-strided-or-transpose,16,16384,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,16,16384,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,table,global-scratch,direct-strided-or-transpose,32,32768,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,32,32768,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,table,global-scratch,direct-strided-or-transpose,32,32768,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,32,32768,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,table,global-scratch,direct-strided-or-transpose,32,32768,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,32,32768,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,table,global-scratch,direct-strided-or-transpose,8,8192,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,8,8192,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,table,global-scratch,direct-strided-or-transpose,8,8192,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,8,8192,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,table,global-scratch,direct-strided-or-transpose,8,8192,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,8,8192,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,table,global-scratch,direct-strided-or-transpose,16,16384,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,16,16384,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,table,global-scratch,direct-strided-or-transpose,16,16384,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,16,16384,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,table,global-scratch,direct-strided-or-transpose,16,16384,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,16,16384,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,table,global-scratch,direct-strided-or-transpose,32,32768,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,32,32768,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,table,global-scratch,direct-strided-or-transpose,32,32768,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,32,32768,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,table,global-scratch,direct-strided-or-transpose,32,32768,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,32,32768,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,table,global-scratch,direct-strided-or-transpose,16,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,16,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,table,global-scratch,direct-strided-or-transpose,16,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,16,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,table,global-scratch,direct-strided-or-transpose,16,16384,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,16,16384,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,table,global-scratch,direct-strided-or-transpose,32,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,32,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,table,global-scratch,direct-strided-or-transpose,32,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,32,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,table,global-scratch,direct-strided-or-transpose,32,32768,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,32,32768,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,table,global-scratch,direct-strided-or-transpose,64,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,64,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,table,global-scratch,direct-strided-or-transpose,64,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,64,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,table,global-scratch,direct-strided-or-transpose,64,65536,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,64,65536,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,table,global-scratch,direct-strided-or-transpose,16,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,16,16384,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,table,global-scratch,direct-strided-or-transpose,16,16384,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,16,16384,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,table,global-scratch,direct-strided-or-transpose,16,16384,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,16,16384,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,table,global-scratch,direct-strided-or-transpose,32,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,32,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,table,global-scratch,direct-strided-or-transpose,32,32768,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,32,32768,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,table,global-scratch,direct-strided-or-transpose,32,32768,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,32,32768,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,table,global-scratch,direct-strided-or-transpose,64,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,64,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,table,global-scratch,direct-strided-or-transpose,64,65536,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,64,65536,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,table,global-scratch,direct-strided-or-transpose,64,65536,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,64,65536,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,table,global-scratch,direct-strided-or-transpose,16,16384,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,16,16384,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,table,global-scratch,direct-strided-or-transpose,16,16384,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,16,16384,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,table,global-scratch,direct-strided-or-transpose,16,16384,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,16,16384,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,table,global-scratch,direct-strided-or-transpose,32,32768,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,32,32768,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,table,global-scratch,direct-strided-or-transpose,32,32768,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,32,32768,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,table,global-scratch,direct-strided-or-transpose,32,32768,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,32,32768,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,table,global-scratch,direct-strided-or-transpose,64,65536,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,64,65536,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,table,global-scratch,direct-strided-or-transpose,64,65536,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,64,65536,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,table,global-scratch,direct-strided-or-transpose,64,65536,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,64,65536,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,table,global-scratch,direct-strided-or-transpose,16,16384,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,16,16384,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,table,global-scratch,direct-strided-or-transpose,16,16384,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,16,16384,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,table,global-scratch,direct-strided-or-transpose,16,16384,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,16,16384,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,table,global-scratch,direct-strided-or-transpose,32,32768,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,32,32768,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,table,global-scratch,direct-strided-or-transpose,32,32768,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,32,32768,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,table,global-scratch,direct-strided-or-transpose,32,32768,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,32,32768,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,table,global-scratch,direct-strided-or-transpose,64,65536,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,64,65536,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,table,global-scratch,direct-strided-or-transpose,64,65536,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,64,65536,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,table,global-scratch,direct-strided-or-transpose,64,65536,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,64,65536,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,table,global-scratch,direct-strided-or-transpose,32,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,32,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,table,global-scratch,direct-strided-or-transpose,32,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,32,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,table,global-scratch,direct-strided-or-transpose,32,32768,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,32,32768,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,table,global-scratch,direct-strided-or-transpose,64,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,64,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,table,global-scratch,direct-strided-or-transpose,64,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,64,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,table,global-scratch,direct-strided-or-transpose,64,65536,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,64,65536,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,table,global-scratch,direct-strided-or-transpose,128,131072,0,4096,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,128,131072,0,4096,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,table,global-scratch,direct-strided-or-transpose,128,131072,0,8192,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,128,131072,0,8192,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,table,global-scratch,direct-strided-or-transpose,128,131072,1,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,128,131072,1,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,table,global-scratch,direct-strided-or-transpose,32,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,32,32768,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,table,global-scratch,direct-strided-or-transpose,32,32768,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,32,32768,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,table,global-scratch,direct-strided-or-transpose,32,32768,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,32,32768,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,table,global-scratch,direct-strided-or-transpose,64,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,64,65536,0,8192,hardware-infeasible,suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,table,global-scratch,direct-strided-or-transpose,64,65536,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,64,65536,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,table,global-scratch,direct-strided-or-transpose,64,65536,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,64,65536,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,table,global-scratch,direct-strided-or-transpose,128,131072,0,8192,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,128,131072,0,8192,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,table,global-scratch,direct-strided-or-transpose,128,131072,1,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,128,131072,1,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,table,global-scratch,direct-strided-or-transpose,128,131072,2,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,128,131072,2,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,table,global-scratch,direct-strided-or-transpose,32,32768,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,32,32768,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,table,global-scratch,direct-strided-or-transpose,32,32768,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,32,32768,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,table,global-scratch,direct-strided-or-transpose,32,32768,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,32,32768,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,table,global-scratch,direct-strided-or-transpose,64,65536,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,64,65536,1,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,table,global-scratch,direct-strided-or-transpose,64,65536,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,64,65536,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,table,global-scratch,direct-strided-or-transpose,64,65536,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,64,65536,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,table,global-scratch,direct-strided-or-transpose,128,131072,1,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,128,131072,1,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,table,global-scratch,direct-strided-or-transpose,128,131072,2,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,128,131072,2,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,table,global-scratch,direct-strided-or-transpose,128,131072,4,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,128,131072,4,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,table,global-scratch,direct-strided-or-transpose,32,32768,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,32,32768,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,table,global-scratch,direct-strided-or-transpose,32,32768,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,32,32768,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,table,global-scratch,direct-strided-or-transpose,32,32768,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,32,32768,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,table,global-scratch,direct-strided-or-transpose,64,65536,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,64,65536,2,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,table,global-scratch,direct-strided-or-transpose,64,65536,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,64,65536,4,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,table,global-scratch,direct-strided-or-transpose,64,65536,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,64,65536,8,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,table,global-scratch,direct-strided-or-transpose,128,131072,2,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,128,131072,2,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,table,global-scratch,direct-strided-or-transpose,128,131072,4,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,128,131072,4,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,table,global-scratch,direct-strided-or-transpose,128,131072,8,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,7,11,cufftdx-block,cufftdx-direct,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,128,131072,8,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,table,global-scratch,online-tiled,2,4096,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,recurrence,global-scratch,online-tiled,2,4096,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,table,global-scratch,online-tiled,2,4096,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,recurrence,global-scratch,online-tiled,2,4096,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,table,global-scratch,online-tiled,2,4096,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,recurrence,global-scratch,online-tiled,2,4096,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,table,global-scratch,online-tiled,4,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,recurrence,global-scratch,online-tiled,4,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,table,global-scratch,online-tiled,4,8192,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,recurrence,global-scratch,online-tiled,4,8192,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,table,global-scratch,online-tiled,4,8192,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,recurrence,global-scratch,online-tiled,4,8192,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,table,global-scratch,online-tiled,8,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,recurrence,global-scratch,online-tiled,8,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,table,global-scratch,online-tiled,8,16384,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,recurrence,global-scratch,online-tiled,8,16384,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,table,global-scratch,online-tiled,8,16384,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,recurrence,global-scratch,online-tiled,8,16384,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,table,global-scratch,online-tiled,2,4096,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,recurrence,global-scratch,online-tiled,2,4096,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,table,global-scratch,online-tiled,2,4096,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,recurrence,global-scratch,online-tiled,2,4096,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,table,global-scratch,online-tiled,2,4096,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,recurrence,global-scratch,online-tiled,2,4096,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,table,global-scratch,online-tiled,4,8192,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,recurrence,global-scratch,online-tiled,4,8192,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,table,global-scratch,online-tiled,4,8192,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,recurrence,global-scratch,online-tiled,4,8192,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,table,global-scratch,online-tiled,4,8192,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,recurrence,global-scratch,online-tiled,4,8192,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,table,global-scratch,online-tiled,8,16384,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,recurrence,global-scratch,online-tiled,8,16384,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,table,global-scratch,online-tiled,8,16384,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,recurrence,global-scratch,online-tiled,8,16384,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,table,global-scratch,online-tiled,8,16384,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,recurrence,global-scratch,online-tiled,8,16384,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,table,global-scratch,online-tiled,2,4096,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,recurrence,global-scratch,online-tiled,2,4096,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,table,global-scratch,online-tiled,2,4096,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,recurrence,global-scratch,online-tiled,2,4096,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,table,global-scratch,online-tiled,2,4096,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,recurrence,global-scratch,online-tiled,2,4096,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,table,global-scratch,online-tiled,4,8192,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,recurrence,global-scratch,online-tiled,4,8192,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,table,global-scratch,online-tiled,4,8192,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,recurrence,global-scratch,online-tiled,4,8192,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,table,global-scratch,online-tiled,4,8192,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,recurrence,global-scratch,online-tiled,4,8192,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,table,global-scratch,online-tiled,8,16384,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,recurrence,global-scratch,online-tiled,8,16384,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,table,global-scratch,online-tiled,8,16384,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,recurrence,global-scratch,online-tiled,8,16384,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,table,global-scratch,online-tiled,8,16384,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,recurrence,global-scratch,online-tiled,8,16384,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,table,global-scratch,online-tiled,2,4096,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,recurrence,global-scratch,online-tiled,2,4096,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,table,global-scratch,online-tiled,2,4096,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,recurrence,global-scratch,online-tiled,2,4096,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,table,global-scratch,online-tiled,2,4096,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,recurrence,global-scratch,online-tiled,2,4096,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,table,global-scratch,online-tiled,4,8192,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,recurrence,global-scratch,online-tiled,4,8192,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,table,global-scratch,online-tiled,4,8192,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,recurrence,global-scratch,online-tiled,4,8192,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,table,global-scratch,online-tiled,4,8192,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,recurrence,global-scratch,online-tiled,4,8192,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,table,global-scratch,online-tiled,8,16384,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,recurrence,global-scratch,online-tiled,8,16384,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,table,global-scratch,online-tiled,8,16384,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,recurrence,global-scratch,online-tiled,8,16384,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,table,global-scratch,online-tiled,8,16384,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,recurrence,global-scratch,online-tiled,8,16384,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,table,global-scratch,online-tiled,4,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,recurrence,global-scratch,online-tiled,4,8192,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,table,global-scratch,online-tiled,4,8192,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,recurrence,global-scratch,online-tiled,4,8192,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,table,global-scratch,online-tiled,4,8192,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,recurrence,global-scratch,online-tiled,4,8192,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,table,global-scratch,online-tiled,8,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,recurrence,global-scratch,online-tiled,8,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,table,global-scratch,online-tiled,8,16384,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,recurrence,global-scratch,online-tiled,8,16384,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,table,global-scratch,online-tiled,8,16384,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,recurrence,global-scratch,online-tiled,8,16384,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,table,global-scratch,online-tiled,16,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,recurrence,global-scratch,online-tiled,16,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,table,global-scratch,online-tiled,16,32768,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,recurrence,global-scratch,online-tiled,16,32768,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,table,global-scratch,online-tiled,16,32768,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,recurrence,global-scratch,online-tiled,16,32768,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,table,global-scratch,online-tiled,4,8192,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,recurrence,global-scratch,online-tiled,4,8192,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,table,global-scratch,online-tiled,4,8192,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,recurrence,global-scratch,online-tiled,4,8192,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,table,global-scratch,online-tiled,4,8192,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,recurrence,global-scratch,online-tiled,4,8192,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,table,global-scratch,online-tiled,8,16384,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,recurrence,global-scratch,online-tiled,8,16384,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,table,global-scratch,online-tiled,8,16384,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,recurrence,global-scratch,online-tiled,8,16384,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,table,global-scratch,online-tiled,8,16384,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,recurrence,global-scratch,online-tiled,8,16384,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,table,global-scratch,online-tiled,16,32768,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,recurrence,global-scratch,online-tiled,16,32768,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,table,global-scratch,online-tiled,16,32768,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,recurrence,global-scratch,online-tiled,16,32768,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,table,global-scratch,online-tiled,16,32768,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,recurrence,global-scratch,online-tiled,16,32768,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,table,global-scratch,online-tiled,4,8192,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,recurrence,global-scratch,online-tiled,4,8192,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,table,global-scratch,online-tiled,4,8192,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,recurrence,global-scratch,online-tiled,4,8192,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,table,global-scratch,online-tiled,4,8192,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,recurrence,global-scratch,online-tiled,4,8192,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,table,global-scratch,online-tiled,8,16384,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,recurrence,global-scratch,online-tiled,8,16384,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,table,global-scratch,online-tiled,8,16384,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,recurrence,global-scratch,online-tiled,8,16384,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,table,global-scratch,online-tiled,8,16384,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,recurrence,global-scratch,online-tiled,8,16384,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,table,global-scratch,online-tiled,16,32768,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,recurrence,global-scratch,online-tiled,16,32768,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,table,global-scratch,online-tiled,16,32768,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,recurrence,global-scratch,online-tiled,16,32768,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,table,global-scratch,online-tiled,16,32768,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,recurrence,global-scratch,online-tiled,16,32768,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,table,global-scratch,online-tiled,4,8192,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,recurrence,global-scratch,online-tiled,4,8192,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,table,global-scratch,online-tiled,4,8192,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,recurrence,global-scratch,online-tiled,4,8192,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,table,global-scratch,online-tiled,4,8192,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,recurrence,global-scratch,online-tiled,4,8192,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,table,global-scratch,online-tiled,8,16384,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,recurrence,global-scratch,online-tiled,8,16384,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,table,global-scratch,online-tiled,8,16384,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,recurrence,global-scratch,online-tiled,8,16384,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,table,global-scratch,online-tiled,8,16384,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,recurrence,global-scratch,online-tiled,8,16384,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,table,global-scratch,online-tiled,16,32768,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,recurrence,global-scratch,online-tiled,16,32768,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,table,global-scratch,online-tiled,16,32768,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,recurrence,global-scratch,online-tiled,16,32768,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,table,global-scratch,online-tiled,16,32768,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,recurrence,global-scratch,online-tiled,16,32768,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,table,global-scratch,online-tiled,8,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,recurrence,global-scratch,online-tiled,8,16384,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,table,global-scratch,online-tiled,8,16384,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,recurrence,global-scratch,online-tiled,8,16384,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,table,global-scratch,online-tiled,8,16384,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,recurrence,global-scratch,online-tiled,8,16384,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,table,global-scratch,online-tiled,16,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,recurrence,global-scratch,online-tiled,16,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,table,global-scratch,online-tiled,16,32768,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,recurrence,global-scratch,online-tiled,16,32768,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,table,global-scratch,online-tiled,16,32768,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,recurrence,global-scratch,online-tiled,16,32768,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,table,global-scratch,online-tiled,32,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,recurrence,global-scratch,online-tiled,32,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,table,global-scratch,online-tiled,32,65536,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,recurrence,global-scratch,online-tiled,32,65536,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,table,global-scratch,online-tiled,32,65536,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,recurrence,global-scratch,online-tiled,32,65536,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,table,global-scratch,online-tiled,8,16384,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,recurrence,global-scratch,online-tiled,8,16384,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,table,global-scratch,online-tiled,8,16384,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,recurrence,global-scratch,online-tiled,8,16384,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,table,global-scratch,online-tiled,8,16384,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,recurrence,global-scratch,online-tiled,8,16384,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,table,global-scratch,online-tiled,16,32768,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,recurrence,global-scratch,online-tiled,16,32768,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,table,global-scratch,online-tiled,16,32768,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,recurrence,global-scratch,online-tiled,16,32768,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,table,global-scratch,online-tiled,16,32768,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,recurrence,global-scratch,online-tiled,16,32768,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,table,global-scratch,online-tiled,32,65536,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,recurrence,global-scratch,online-tiled,32,65536,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,table,global-scratch,online-tiled,32,65536,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,recurrence,global-scratch,online-tiled,32,65536,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,table,global-scratch,online-tiled,32,65536,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,recurrence,global-scratch,online-tiled,32,65536,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,table,global-scratch,online-tiled,8,16384,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,recurrence,global-scratch,online-tiled,8,16384,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,table,global-scratch,online-tiled,8,16384,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,recurrence,global-scratch,online-tiled,8,16384,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,table,global-scratch,online-tiled,8,16384,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,recurrence,global-scratch,online-tiled,8,16384,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,table,global-scratch,online-tiled,16,32768,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,recurrence,global-scratch,online-tiled,16,32768,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,table,global-scratch,online-tiled,16,32768,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,recurrence,global-scratch,online-tiled,16,32768,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,table,global-scratch,online-tiled,16,32768,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,recurrence,global-scratch,online-tiled,16,32768,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,table,global-scratch,online-tiled,32,65536,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,recurrence,global-scratch,online-tiled,32,65536,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,table,global-scratch,online-tiled,32,65536,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,recurrence,global-scratch,online-tiled,32,65536,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,table,global-scratch,online-tiled,32,65536,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,recurrence,global-scratch,online-tiled,32,65536,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,table,global-scratch,online-tiled,8,16384,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,recurrence,global-scratch,online-tiled,8,16384,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,table,global-scratch,online-tiled,8,16384,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,recurrence,global-scratch,online-tiled,8,16384,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,table,global-scratch,online-tiled,8,16384,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,recurrence,global-scratch,online-tiled,8,16384,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,table,global-scratch,online-tiled,16,32768,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,recurrence,global-scratch,online-tiled,16,32768,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,table,global-scratch,online-tiled,16,32768,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,recurrence,global-scratch,online-tiled,16,32768,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,table,global-scratch,online-tiled,16,32768,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,recurrence,global-scratch,online-tiled,16,32768,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,table,global-scratch,online-tiled,32,65536,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,recurrence,global-scratch,online-tiled,32,65536,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,table,global-scratch,online-tiled,32,65536,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,recurrence,global-scratch,online-tiled,32,65536,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,table,global-scratch,online-tiled,32,65536,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,recurrence,global-scratch,online-tiled,32,65536,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,table,global-scratch,online-tiled,16,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,recurrence,global-scratch,online-tiled,16,32768,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,table,global-scratch,online-tiled,16,32768,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,recurrence,global-scratch,online-tiled,16,32768,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,table,global-scratch,online-tiled,16,32768,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,recurrence,global-scratch,online-tiled,16,32768,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,table,global-scratch,online-tiled,32,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,recurrence,global-scratch,online-tiled,32,65536,0,4096,hardware-infeasible,suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,table,global-scratch,online-tiled,32,65536,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,recurrence,global-scratch,online-tiled,32,65536,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,table,global-scratch,online-tiled,32,65536,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,recurrence,global-scratch,online-tiled,32,65536,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,table,global-scratch,online-tiled,64,131072,0,4096,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,recurrence,global-scratch,online-tiled,64,131072,0,4096,hardware-infeasible,prefix-shared;suffix-coverage +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,table,global-scratch,online-tiled,64,131072,1,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,recurrence,global-scratch,online-tiled,64,131072,1,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,table,global-scratch,online-tiled,64,131072,2,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,recurrence,global-scratch,online-tiled,64,131072,2,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,table,global-scratch,online-tiled,16,32768,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,recurrence,global-scratch,online-tiled,16,32768,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,table,global-scratch,online-tiled,16,32768,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,recurrence,global-scratch,online-tiled,16,32768,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,table,global-scratch,online-tiled,16,32768,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,recurrence,global-scratch,online-tiled,16,32768,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,table,global-scratch,online-tiled,32,65536,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,recurrence,global-scratch,online-tiled,32,65536,1,8192,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,table,global-scratch,online-tiled,32,65536,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,recurrence,global-scratch,online-tiled,32,65536,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,table,global-scratch,online-tiled,32,65536,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,recurrence,global-scratch,online-tiled,32,65536,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,table,global-scratch,online-tiled,64,131072,1,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,recurrence,global-scratch,online-tiled,64,131072,1,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,table,global-scratch,online-tiled,64,131072,2,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,recurrence,global-scratch,online-tiled,64,131072,2,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,table,global-scratch,online-tiled,64,131072,4,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,recurrence,global-scratch,online-tiled,64,131072,4,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,table,global-scratch,online-tiled,16,32768,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,recurrence,global-scratch,online-tiled,16,32768,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,table,global-scratch,online-tiled,16,32768,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,recurrence,global-scratch,online-tiled,16,32768,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,table,global-scratch,online-tiled,16,32768,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,recurrence,global-scratch,online-tiled,16,32768,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,table,global-scratch,online-tiled,32,65536,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,recurrence,global-scratch,online-tiled,32,65536,2,16384,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,table,global-scratch,online-tiled,32,65536,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,recurrence,global-scratch,online-tiled,32,65536,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,table,global-scratch,online-tiled,32,65536,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,recurrence,global-scratch,online-tiled,32,65536,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,table,global-scratch,online-tiled,64,131072,2,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,recurrence,global-scratch,online-tiled,64,131072,2,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,table,global-scratch,online-tiled,64,131072,4,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,recurrence,global-scratch,online-tiled,64,131072,4,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,table,global-scratch,online-tiled,64,131072,8,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,recurrence,global-scratch,online-tiled,64,131072,8,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,table,global-scratch,online-tiled,16,32768,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,recurrence,global-scratch,online-tiled,16,32768,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,table,global-scratch,online-tiled,16,32768,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,recurrence,global-scratch,online-tiled,16,32768,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,table,global-scratch,online-tiled,16,32768,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,recurrence,global-scratch,online-tiled,16,32768,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,table,global-scratch,online-tiled,32,65536,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,recurrence,global-scratch,online-tiled,32,65536,4,32768,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,table,global-scratch,online-tiled,32,65536,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,recurrence,global-scratch,online-tiled,32,65536,8,65536,compiled, +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,table,global-scratch,online-tiled,32,65536,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,recurrence,global-scratch,online-tiled,32,65536,16,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,table,global-scratch,online-tiled,64,131072,4,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,recurrence,global-scratch,online-tiled,64,131072,4,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,table,global-scratch,online-tiled,64,131072,8,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,recurrence,global-scratch,online-tiled,64,131072,8,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,table,global-scratch,online-tiled,64,131072,16,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,8,10,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,recurrence,global-scratch,online-tiled,64,131072,16,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,table,global-scratch,online-tiled,1,4096,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,recurrence,global-scratch,online-tiled,1,4096,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,table,global-scratch,online-tiled,1,4096,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,recurrence,global-scratch,online-tiled,1,4096,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,table,global-scratch,online-tiled,1,4096,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,recurrence,global-scratch,online-tiled,1,4096,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,table,global-scratch,online-tiled,2,8192,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,recurrence,global-scratch,online-tiled,2,8192,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,table,global-scratch,online-tiled,2,8192,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,recurrence,global-scratch,online-tiled,2,8192,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,table,global-scratch,online-tiled,2,8192,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,recurrence,global-scratch,online-tiled,2,8192,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,table,global-scratch,online-tiled,4,16384,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,recurrence,global-scratch,online-tiled,4,16384,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,table,global-scratch,online-tiled,4,16384,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,recurrence,global-scratch,online-tiled,4,16384,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,table,global-scratch,online-tiled,4,16384,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,recurrence,global-scratch,online-tiled,4,16384,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,table,global-scratch,online-tiled,1,4096,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,recurrence,global-scratch,online-tiled,1,4096,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,table,global-scratch,online-tiled,1,4096,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,recurrence,global-scratch,online-tiled,1,4096,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,table,global-scratch,online-tiled,1,4096,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,recurrence,global-scratch,online-tiled,1,4096,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,table,global-scratch,online-tiled,2,8192,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,recurrence,global-scratch,online-tiled,2,8192,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,table,global-scratch,online-tiled,2,8192,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,recurrence,global-scratch,online-tiled,2,8192,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,table,global-scratch,online-tiled,2,8192,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,recurrence,global-scratch,online-tiled,2,8192,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,table,global-scratch,online-tiled,4,16384,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,recurrence,global-scratch,online-tiled,4,16384,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,table,global-scratch,online-tiled,4,16384,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,recurrence,global-scratch,online-tiled,4,16384,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,table,global-scratch,online-tiled,4,16384,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,recurrence,global-scratch,online-tiled,4,16384,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,table,global-scratch,online-tiled,1,4096,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,recurrence,global-scratch,online-tiled,1,4096,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,table,global-scratch,online-tiled,1,4096,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,recurrence,global-scratch,online-tiled,1,4096,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,table,global-scratch,online-tiled,1,4096,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,recurrence,global-scratch,online-tiled,1,4096,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,table,global-scratch,online-tiled,2,8192,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,recurrence,global-scratch,online-tiled,2,8192,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,table,global-scratch,online-tiled,2,8192,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,recurrence,global-scratch,online-tiled,2,8192,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,table,global-scratch,online-tiled,2,8192,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,recurrence,global-scratch,online-tiled,2,8192,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,table,global-scratch,online-tiled,4,16384,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,recurrence,global-scratch,online-tiled,4,16384,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,table,global-scratch,online-tiled,4,16384,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,recurrence,global-scratch,online-tiled,4,16384,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,table,global-scratch,online-tiled,4,16384,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,recurrence,global-scratch,online-tiled,4,16384,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,table,global-scratch,online-tiled,1,4096,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,recurrence,global-scratch,online-tiled,1,4096,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,table,global-scratch,online-tiled,1,4096,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,recurrence,global-scratch,online-tiled,1,4096,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,table,global-scratch,online-tiled,1,4096,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,recurrence,global-scratch,online-tiled,1,4096,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,table,global-scratch,online-tiled,2,8192,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,recurrence,global-scratch,online-tiled,2,8192,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,table,global-scratch,online-tiled,2,8192,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,recurrence,global-scratch,online-tiled,2,8192,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,table,global-scratch,online-tiled,2,8192,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,recurrence,global-scratch,online-tiled,2,8192,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,table,global-scratch,online-tiled,4,16384,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,recurrence,global-scratch,online-tiled,4,16384,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,table,global-scratch,online-tiled,4,16384,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,recurrence,global-scratch,online-tiled,4,16384,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,table,global-scratch,online-tiled,4,16384,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,recurrence,global-scratch,online-tiled,4,16384,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,table,global-scratch,online-tiled,2,8192,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,recurrence,global-scratch,online-tiled,2,8192,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,table,global-scratch,online-tiled,2,8192,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,recurrence,global-scratch,online-tiled,2,8192,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,table,global-scratch,online-tiled,2,8192,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,recurrence,global-scratch,online-tiled,2,8192,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,table,global-scratch,online-tiled,4,16384,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,recurrence,global-scratch,online-tiled,4,16384,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,table,global-scratch,online-tiled,4,16384,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,recurrence,global-scratch,online-tiled,4,16384,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,table,global-scratch,online-tiled,4,16384,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,recurrence,global-scratch,online-tiled,4,16384,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,table,global-scratch,online-tiled,8,32768,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,recurrence,global-scratch,online-tiled,8,32768,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,table,global-scratch,online-tiled,8,32768,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,recurrence,global-scratch,online-tiled,8,32768,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,table,global-scratch,online-tiled,8,32768,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,recurrence,global-scratch,online-tiled,8,32768,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,table,global-scratch,online-tiled,2,8192,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,recurrence,global-scratch,online-tiled,2,8192,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,table,global-scratch,online-tiled,2,8192,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,recurrence,global-scratch,online-tiled,2,8192,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,table,global-scratch,online-tiled,2,8192,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,recurrence,global-scratch,online-tiled,2,8192,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,table,global-scratch,online-tiled,4,16384,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,recurrence,global-scratch,online-tiled,4,16384,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,table,global-scratch,online-tiled,4,16384,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,recurrence,global-scratch,online-tiled,4,16384,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,table,global-scratch,online-tiled,4,16384,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,recurrence,global-scratch,online-tiled,4,16384,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,table,global-scratch,online-tiled,8,32768,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,recurrence,global-scratch,online-tiled,8,32768,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,table,global-scratch,online-tiled,8,32768,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,recurrence,global-scratch,online-tiled,8,32768,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,table,global-scratch,online-tiled,8,32768,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,recurrence,global-scratch,online-tiled,8,32768,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,table,global-scratch,online-tiled,2,8192,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,recurrence,global-scratch,online-tiled,2,8192,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,table,global-scratch,online-tiled,2,8192,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,recurrence,global-scratch,online-tiled,2,8192,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,table,global-scratch,online-tiled,2,8192,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,recurrence,global-scratch,online-tiled,2,8192,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,table,global-scratch,online-tiled,4,16384,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,recurrence,global-scratch,online-tiled,4,16384,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,table,global-scratch,online-tiled,4,16384,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,recurrence,global-scratch,online-tiled,4,16384,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,table,global-scratch,online-tiled,4,16384,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,recurrence,global-scratch,online-tiled,4,16384,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,table,global-scratch,online-tiled,8,32768,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,recurrence,global-scratch,online-tiled,8,32768,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,table,global-scratch,online-tiled,8,32768,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,recurrence,global-scratch,online-tiled,8,32768,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,table,global-scratch,online-tiled,8,32768,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,recurrence,global-scratch,online-tiled,8,32768,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,table,global-scratch,online-tiled,2,8192,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,recurrence,global-scratch,online-tiled,2,8192,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,table,global-scratch,online-tiled,2,8192,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,recurrence,global-scratch,online-tiled,2,8192,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,table,global-scratch,online-tiled,2,8192,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,recurrence,global-scratch,online-tiled,2,8192,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,table,global-scratch,online-tiled,4,16384,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,recurrence,global-scratch,online-tiled,4,16384,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,table,global-scratch,online-tiled,4,16384,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,recurrence,global-scratch,online-tiled,4,16384,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,table,global-scratch,online-tiled,4,16384,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,recurrence,global-scratch,online-tiled,4,16384,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,table,global-scratch,online-tiled,8,32768,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,recurrence,global-scratch,online-tiled,8,32768,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,table,global-scratch,online-tiled,8,32768,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,recurrence,global-scratch,online-tiled,8,32768,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,table,global-scratch,online-tiled,8,32768,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,recurrence,global-scratch,online-tiled,8,32768,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,table,global-scratch,online-tiled,4,16384,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,recurrence,global-scratch,online-tiled,4,16384,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,table,global-scratch,online-tiled,4,16384,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,recurrence,global-scratch,online-tiled,4,16384,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,table,global-scratch,online-tiled,4,16384,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,recurrence,global-scratch,online-tiled,4,16384,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,table,global-scratch,online-tiled,8,32768,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,recurrence,global-scratch,online-tiled,8,32768,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,table,global-scratch,online-tiled,8,32768,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,recurrence,global-scratch,online-tiled,8,32768,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,table,global-scratch,online-tiled,8,32768,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,recurrence,global-scratch,online-tiled,8,32768,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,table,global-scratch,online-tiled,16,65536,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,recurrence,global-scratch,online-tiled,16,65536,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,table,global-scratch,online-tiled,16,65536,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,recurrence,global-scratch,online-tiled,16,65536,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,table,global-scratch,online-tiled,16,65536,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,recurrence,global-scratch,online-tiled,16,65536,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,table,global-scratch,online-tiled,4,16384,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,recurrence,global-scratch,online-tiled,4,16384,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,table,global-scratch,online-tiled,4,16384,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,recurrence,global-scratch,online-tiled,4,16384,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,table,global-scratch,online-tiled,4,16384,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,recurrence,global-scratch,online-tiled,4,16384,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,table,global-scratch,online-tiled,8,32768,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,recurrence,global-scratch,online-tiled,8,32768,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,table,global-scratch,online-tiled,8,32768,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,recurrence,global-scratch,online-tiled,8,32768,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,table,global-scratch,online-tiled,8,32768,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,recurrence,global-scratch,online-tiled,8,32768,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,table,global-scratch,online-tiled,16,65536,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,recurrence,global-scratch,online-tiled,16,65536,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,table,global-scratch,online-tiled,16,65536,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,recurrence,global-scratch,online-tiled,16,65536,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,table,global-scratch,online-tiled,16,65536,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,recurrence,global-scratch,online-tiled,16,65536,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,table,global-scratch,online-tiled,4,16384,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,recurrence,global-scratch,online-tiled,4,16384,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,table,global-scratch,online-tiled,4,16384,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,recurrence,global-scratch,online-tiled,4,16384,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,table,global-scratch,online-tiled,4,16384,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,recurrence,global-scratch,online-tiled,4,16384,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,table,global-scratch,online-tiled,8,32768,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,recurrence,global-scratch,online-tiled,8,32768,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,table,global-scratch,online-tiled,8,32768,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,recurrence,global-scratch,online-tiled,8,32768,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,table,global-scratch,online-tiled,8,32768,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,recurrence,global-scratch,online-tiled,8,32768,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,table,global-scratch,online-tiled,16,65536,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,recurrence,global-scratch,online-tiled,16,65536,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,table,global-scratch,online-tiled,16,65536,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,recurrence,global-scratch,online-tiled,16,65536,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,table,global-scratch,online-tiled,16,65536,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,recurrence,global-scratch,online-tiled,16,65536,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,table,global-scratch,online-tiled,4,16384,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,recurrence,global-scratch,online-tiled,4,16384,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,table,global-scratch,online-tiled,4,16384,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,recurrence,global-scratch,online-tiled,4,16384,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,table,global-scratch,online-tiled,4,16384,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,recurrence,global-scratch,online-tiled,4,16384,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,table,global-scratch,online-tiled,8,32768,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,recurrence,global-scratch,online-tiled,8,32768,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,table,global-scratch,online-tiled,8,32768,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,recurrence,global-scratch,online-tiled,8,32768,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,table,global-scratch,online-tiled,8,32768,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,recurrence,global-scratch,online-tiled,8,32768,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,table,global-scratch,online-tiled,16,65536,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,recurrence,global-scratch,online-tiled,16,65536,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,table,global-scratch,online-tiled,16,65536,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,recurrence,global-scratch,online-tiled,16,65536,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,table,global-scratch,online-tiled,16,65536,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,recurrence,global-scratch,online-tiled,16,65536,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,table,global-scratch,online-tiled,8,32768,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,recurrence,global-scratch,online-tiled,8,32768,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,table,global-scratch,online-tiled,8,32768,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,recurrence,global-scratch,online-tiled,8,32768,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,table,global-scratch,online-tiled,8,32768,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,recurrence,global-scratch,online-tiled,8,32768,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,table,global-scratch,online-tiled,16,65536,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,recurrence,global-scratch,online-tiled,16,65536,1,4096,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,table,global-scratch,online-tiled,16,65536,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,recurrence,global-scratch,online-tiled,16,65536,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,table,global-scratch,online-tiled,16,65536,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,recurrence,global-scratch,online-tiled,16,65536,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,table,global-scratch,online-tiled,32,131072,1,4096,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,recurrence,global-scratch,online-tiled,32,131072,1,4096,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,table,global-scratch,online-tiled,32,131072,2,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,recurrence,global-scratch,online-tiled,32,131072,2,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,table,global-scratch,online-tiled,32,131072,4,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,recurrence,global-scratch,online-tiled,32,131072,4,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,table,global-scratch,online-tiled,8,32768,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,recurrence,global-scratch,online-tiled,8,32768,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,table,global-scratch,online-tiled,8,32768,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,recurrence,global-scratch,online-tiled,8,32768,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,table,global-scratch,online-tiled,8,32768,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,recurrence,global-scratch,online-tiled,8,32768,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,table,global-scratch,online-tiled,16,65536,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,recurrence,global-scratch,online-tiled,16,65536,2,8192,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,table,global-scratch,online-tiled,16,65536,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,recurrence,global-scratch,online-tiled,16,65536,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,table,global-scratch,online-tiled,16,65536,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,recurrence,global-scratch,online-tiled,16,65536,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,table,global-scratch,online-tiled,32,131072,2,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,recurrence,global-scratch,online-tiled,32,131072,2,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,table,global-scratch,online-tiled,32,131072,4,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,recurrence,global-scratch,online-tiled,32,131072,4,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,table,global-scratch,online-tiled,32,131072,8,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,recurrence,global-scratch,online-tiled,32,131072,8,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,table,global-scratch,online-tiled,8,32768,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,recurrence,global-scratch,online-tiled,8,32768,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,table,global-scratch,online-tiled,8,32768,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,recurrence,global-scratch,online-tiled,8,32768,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,table,global-scratch,online-tiled,8,32768,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,recurrence,global-scratch,online-tiled,8,32768,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,table,global-scratch,online-tiled,16,65536,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,recurrence,global-scratch,online-tiled,16,65536,4,16384,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,table,global-scratch,online-tiled,16,65536,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,recurrence,global-scratch,online-tiled,16,65536,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,table,global-scratch,online-tiled,16,65536,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,recurrence,global-scratch,online-tiled,16,65536,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,table,global-scratch,online-tiled,32,131072,4,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,recurrence,global-scratch,online-tiled,32,131072,4,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,table,global-scratch,online-tiled,32,131072,8,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,recurrence,global-scratch,online-tiled,32,131072,8,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,table,global-scratch,online-tiled,32,131072,16,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,recurrence,global-scratch,online-tiled,32,131072,16,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,table,global-scratch,online-tiled,8,32768,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,recurrence,global-scratch,online-tiled,8,32768,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,table,global-scratch,online-tiled,8,32768,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,recurrence,global-scratch,online-tiled,8,32768,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,table,global-scratch,online-tiled,8,32768,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,recurrence,global-scratch,online-tiled,8,32768,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,table,global-scratch,online-tiled,16,65536,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,recurrence,global-scratch,online-tiled,16,65536,8,32768,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,table,global-scratch,online-tiled,16,65536,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,recurrence,global-scratch,online-tiled,16,65536,16,65536,compiled, +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,table,global-scratch,online-tiled,16,65536,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,recurrence,global-scratch,online-tiled,16,65536,32,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,table,global-scratch,online-tiled,32,131072,8,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,recurrence,global-scratch,online-tiled,32,131072,8,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,table,global-scratch,online-tiled,32,131072,16,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,recurrence,global-scratch,online-tiled,32,131072,16,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,table,global-scratch,online-tiled,32,131072,32,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,9,9,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,recurrence,global-scratch,online-tiled,32,131072,32,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,table,global-scratch,online-tiled,0,4096,2,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,recurrence,global-scratch,online-tiled,0,4096,2,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,table,global-scratch,online-tiled,0,4096,4,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,recurrence,global-scratch,online-tiled,0,4096,4,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,table,global-scratch,online-tiled,0,4096,8,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,recurrence,global-scratch,online-tiled,0,4096,8,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,table,global-scratch,online-tiled,1,8192,2,4096,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,recurrence,global-scratch,online-tiled,1,8192,2,4096,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,table,global-scratch,online-tiled,1,8192,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,recurrence,global-scratch,online-tiled,1,8192,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,table,global-scratch,online-tiled,1,8192,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,recurrence,global-scratch,online-tiled,1,8192,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,table,global-scratch,online-tiled,2,16384,2,4096,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,recurrence,global-scratch,online-tiled,2,16384,2,4096,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,table,global-scratch,online-tiled,2,16384,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,recurrence,global-scratch,online-tiled,2,16384,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,table,global-scratch,online-tiled,2,16384,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,recurrence,global-scratch,online-tiled,2,16384,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,table,global-scratch,online-tiled,0,4096,4,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,recurrence,global-scratch,online-tiled,0,4096,4,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,table,global-scratch,online-tiled,0,4096,8,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,recurrence,global-scratch,online-tiled,0,4096,8,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,table,global-scratch,online-tiled,0,4096,16,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,recurrence,global-scratch,online-tiled,0,4096,16,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,table,global-scratch,online-tiled,1,8192,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,recurrence,global-scratch,online-tiled,1,8192,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,table,global-scratch,online-tiled,1,8192,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,recurrence,global-scratch,online-tiled,1,8192,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,table,global-scratch,online-tiled,1,8192,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,recurrence,global-scratch,online-tiled,1,8192,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,table,global-scratch,online-tiled,2,16384,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,recurrence,global-scratch,online-tiled,2,16384,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,table,global-scratch,online-tiled,2,16384,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,recurrence,global-scratch,online-tiled,2,16384,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,table,global-scratch,online-tiled,2,16384,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,recurrence,global-scratch,online-tiled,2,16384,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,table,global-scratch,online-tiled,0,4096,8,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,recurrence,global-scratch,online-tiled,0,4096,8,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,table,global-scratch,online-tiled,0,4096,16,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,recurrence,global-scratch,online-tiled,0,4096,16,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,table,global-scratch,online-tiled,0,4096,32,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,recurrence,global-scratch,online-tiled,0,4096,32,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,table,global-scratch,online-tiled,1,8192,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,recurrence,global-scratch,online-tiled,1,8192,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,table,global-scratch,online-tiled,1,8192,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,recurrence,global-scratch,online-tiled,1,8192,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,table,global-scratch,online-tiled,1,8192,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,recurrence,global-scratch,online-tiled,1,8192,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,table,global-scratch,online-tiled,2,16384,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,recurrence,global-scratch,online-tiled,2,16384,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,table,global-scratch,online-tiled,2,16384,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,recurrence,global-scratch,online-tiled,2,16384,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,table,global-scratch,online-tiled,2,16384,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,recurrence,global-scratch,online-tiled,2,16384,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,table,global-scratch,online-tiled,0,4096,16,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,recurrence,global-scratch,online-tiled,0,4096,16,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,table,global-scratch,online-tiled,0,4096,32,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,recurrence,global-scratch,online-tiled,0,4096,32,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,table,global-scratch,online-tiled,0,4096,64,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,recurrence,global-scratch,online-tiled,0,4096,64,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,table,global-scratch,online-tiled,1,8192,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,recurrence,global-scratch,online-tiled,1,8192,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,table,global-scratch,online-tiled,1,8192,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,recurrence,global-scratch,online-tiled,1,8192,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,table,global-scratch,online-tiled,1,8192,64,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,recurrence,global-scratch,online-tiled,1,8192,64,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,table,global-scratch,online-tiled,2,16384,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,recurrence,global-scratch,online-tiled,2,16384,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,table,global-scratch,online-tiled,2,16384,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,recurrence,global-scratch,online-tiled,2,16384,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,table,global-scratch,online-tiled,2,16384,64,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,recurrence,global-scratch,online-tiled,2,16384,64,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,table,global-scratch,online-tiled,1,8192,2,4096,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,recurrence,global-scratch,online-tiled,1,8192,2,4096,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,table,global-scratch,online-tiled,1,8192,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,recurrence,global-scratch,online-tiled,1,8192,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,table,global-scratch,online-tiled,1,8192,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,recurrence,global-scratch,online-tiled,1,8192,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,table,global-scratch,online-tiled,2,16384,2,4096,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,recurrence,global-scratch,online-tiled,2,16384,2,4096,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,table,global-scratch,online-tiled,2,16384,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,recurrence,global-scratch,online-tiled,2,16384,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,table,global-scratch,online-tiled,2,16384,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,recurrence,global-scratch,online-tiled,2,16384,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,table,global-scratch,online-tiled,4,32768,2,4096,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,recurrence,global-scratch,online-tiled,4,32768,2,4096,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,table,global-scratch,online-tiled,4,32768,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,recurrence,global-scratch,online-tiled,4,32768,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,table,global-scratch,online-tiled,4,32768,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,recurrence,global-scratch,online-tiled,4,32768,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,table,global-scratch,online-tiled,1,8192,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,recurrence,global-scratch,online-tiled,1,8192,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,table,global-scratch,online-tiled,1,8192,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,recurrence,global-scratch,online-tiled,1,8192,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,table,global-scratch,online-tiled,1,8192,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,recurrence,global-scratch,online-tiled,1,8192,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,table,global-scratch,online-tiled,2,16384,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,recurrence,global-scratch,online-tiled,2,16384,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,table,global-scratch,online-tiled,2,16384,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,recurrence,global-scratch,online-tiled,2,16384,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,table,global-scratch,online-tiled,2,16384,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,recurrence,global-scratch,online-tiled,2,16384,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,table,global-scratch,online-tiled,4,32768,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,recurrence,global-scratch,online-tiled,4,32768,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,table,global-scratch,online-tiled,4,32768,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,recurrence,global-scratch,online-tiled,4,32768,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,table,global-scratch,online-tiled,4,32768,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,recurrence,global-scratch,online-tiled,4,32768,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,table,global-scratch,online-tiled,1,8192,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,recurrence,global-scratch,online-tiled,1,8192,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,table,global-scratch,online-tiled,1,8192,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,recurrence,global-scratch,online-tiled,1,8192,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,table,global-scratch,online-tiled,1,8192,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,recurrence,global-scratch,online-tiled,1,8192,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,table,global-scratch,online-tiled,2,16384,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,recurrence,global-scratch,online-tiled,2,16384,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,table,global-scratch,online-tiled,2,16384,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,recurrence,global-scratch,online-tiled,2,16384,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,table,global-scratch,online-tiled,2,16384,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,recurrence,global-scratch,online-tiled,2,16384,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,table,global-scratch,online-tiled,4,32768,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,recurrence,global-scratch,online-tiled,4,32768,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,table,global-scratch,online-tiled,4,32768,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,recurrence,global-scratch,online-tiled,4,32768,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,table,global-scratch,online-tiled,4,32768,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,recurrence,global-scratch,online-tiled,4,32768,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,table,global-scratch,online-tiled,1,8192,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,recurrence,global-scratch,online-tiled,1,8192,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,table,global-scratch,online-tiled,1,8192,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,recurrence,global-scratch,online-tiled,1,8192,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,table,global-scratch,online-tiled,1,8192,64,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,recurrence,global-scratch,online-tiled,1,8192,64,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,table,global-scratch,online-tiled,2,16384,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,recurrence,global-scratch,online-tiled,2,16384,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,table,global-scratch,online-tiled,2,16384,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,recurrence,global-scratch,online-tiled,2,16384,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,table,global-scratch,online-tiled,2,16384,64,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,recurrence,global-scratch,online-tiled,2,16384,64,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,table,global-scratch,online-tiled,4,32768,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,recurrence,global-scratch,online-tiled,4,32768,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,table,global-scratch,online-tiled,4,32768,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,recurrence,global-scratch,online-tiled,4,32768,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,table,global-scratch,online-tiled,4,32768,64,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,recurrence,global-scratch,online-tiled,4,32768,64,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,table,global-scratch,online-tiled,2,16384,2,4096,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,recurrence,global-scratch,online-tiled,2,16384,2,4096,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,table,global-scratch,online-tiled,2,16384,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,recurrence,global-scratch,online-tiled,2,16384,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,table,global-scratch,online-tiled,2,16384,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,recurrence,global-scratch,online-tiled,2,16384,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,table,global-scratch,online-tiled,4,32768,2,4096,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,recurrence,global-scratch,online-tiled,4,32768,2,4096,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,table,global-scratch,online-tiled,4,32768,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,recurrence,global-scratch,online-tiled,4,32768,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,table,global-scratch,online-tiled,4,32768,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,recurrence,global-scratch,online-tiled,4,32768,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,table,global-scratch,online-tiled,8,65536,2,4096,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,recurrence,global-scratch,online-tiled,8,65536,2,4096,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,table,global-scratch,online-tiled,8,65536,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,recurrence,global-scratch,online-tiled,8,65536,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,table,global-scratch,online-tiled,8,65536,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,recurrence,global-scratch,online-tiled,8,65536,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,table,global-scratch,online-tiled,2,16384,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,recurrence,global-scratch,online-tiled,2,16384,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,table,global-scratch,online-tiled,2,16384,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,recurrence,global-scratch,online-tiled,2,16384,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,table,global-scratch,online-tiled,2,16384,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,recurrence,global-scratch,online-tiled,2,16384,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,table,global-scratch,online-tiled,4,32768,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,recurrence,global-scratch,online-tiled,4,32768,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,table,global-scratch,online-tiled,4,32768,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,recurrence,global-scratch,online-tiled,4,32768,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,table,global-scratch,online-tiled,4,32768,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,recurrence,global-scratch,online-tiled,4,32768,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,table,global-scratch,online-tiled,8,65536,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,recurrence,global-scratch,online-tiled,8,65536,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,table,global-scratch,online-tiled,8,65536,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,recurrence,global-scratch,online-tiled,8,65536,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,table,global-scratch,online-tiled,8,65536,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,recurrence,global-scratch,online-tiled,8,65536,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,table,global-scratch,online-tiled,2,16384,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,recurrence,global-scratch,online-tiled,2,16384,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,table,global-scratch,online-tiled,2,16384,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,recurrence,global-scratch,online-tiled,2,16384,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,table,global-scratch,online-tiled,2,16384,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,recurrence,global-scratch,online-tiled,2,16384,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,table,global-scratch,online-tiled,4,32768,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,recurrence,global-scratch,online-tiled,4,32768,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,table,global-scratch,online-tiled,4,32768,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,recurrence,global-scratch,online-tiled,4,32768,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,table,global-scratch,online-tiled,4,32768,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,recurrence,global-scratch,online-tiled,4,32768,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,table,global-scratch,online-tiled,8,65536,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,recurrence,global-scratch,online-tiled,8,65536,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,table,global-scratch,online-tiled,8,65536,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,recurrence,global-scratch,online-tiled,8,65536,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,table,global-scratch,online-tiled,8,65536,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,recurrence,global-scratch,online-tiled,8,65536,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,table,global-scratch,online-tiled,2,16384,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,recurrence,global-scratch,online-tiled,2,16384,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,table,global-scratch,online-tiled,2,16384,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,recurrence,global-scratch,online-tiled,2,16384,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,table,global-scratch,online-tiled,2,16384,64,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,recurrence,global-scratch,online-tiled,2,16384,64,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,table,global-scratch,online-tiled,4,32768,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,recurrence,global-scratch,online-tiled,4,32768,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,table,global-scratch,online-tiled,4,32768,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,recurrence,global-scratch,online-tiled,4,32768,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,table,global-scratch,online-tiled,4,32768,64,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,recurrence,global-scratch,online-tiled,4,32768,64,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,table,global-scratch,online-tiled,8,65536,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,recurrence,global-scratch,online-tiled,8,65536,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,table,global-scratch,online-tiled,8,65536,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,recurrence,global-scratch,online-tiled,8,65536,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,table,global-scratch,online-tiled,8,65536,64,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,recurrence,global-scratch,online-tiled,8,65536,64,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,table,global-scratch,online-tiled,4,32768,2,4096,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,recurrence,global-scratch,online-tiled,4,32768,2,4096,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,table,global-scratch,online-tiled,4,32768,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,recurrence,global-scratch,online-tiled,4,32768,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,table,global-scratch,online-tiled,4,32768,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,recurrence,global-scratch,online-tiled,4,32768,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,table,global-scratch,online-tiled,8,65536,2,4096,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,recurrence,global-scratch,online-tiled,8,65536,2,4096,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,table,global-scratch,online-tiled,8,65536,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,recurrence,global-scratch,online-tiled,8,65536,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,table,global-scratch,online-tiled,8,65536,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,recurrence,global-scratch,online-tiled,8,65536,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,table,global-scratch,online-tiled,16,131072,2,4096,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,recurrence,global-scratch,online-tiled,16,131072,2,4096,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,table,global-scratch,online-tiled,16,131072,4,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,recurrence,global-scratch,online-tiled,16,131072,4,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,table,global-scratch,online-tiled,16,131072,8,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,recurrence,global-scratch,online-tiled,16,131072,8,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,table,global-scratch,online-tiled,4,32768,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,recurrence,global-scratch,online-tiled,4,32768,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,table,global-scratch,online-tiled,4,32768,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,recurrence,global-scratch,online-tiled,4,32768,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,table,global-scratch,online-tiled,4,32768,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,recurrence,global-scratch,online-tiled,4,32768,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,table,global-scratch,online-tiled,8,65536,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,recurrence,global-scratch,online-tiled,8,65536,4,8192,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,table,global-scratch,online-tiled,8,65536,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,recurrence,global-scratch,online-tiled,8,65536,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,table,global-scratch,online-tiled,8,65536,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,recurrence,global-scratch,online-tiled,8,65536,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,table,global-scratch,online-tiled,16,131072,4,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,recurrence,global-scratch,online-tiled,16,131072,4,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,table,global-scratch,online-tiled,16,131072,8,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,recurrence,global-scratch,online-tiled,16,131072,8,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,table,global-scratch,online-tiled,16,131072,16,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,recurrence,global-scratch,online-tiled,16,131072,16,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,table,global-scratch,online-tiled,4,32768,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,recurrence,global-scratch,online-tiled,4,32768,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,table,global-scratch,online-tiled,4,32768,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,recurrence,global-scratch,online-tiled,4,32768,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,table,global-scratch,online-tiled,4,32768,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,recurrence,global-scratch,online-tiled,4,32768,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,table,global-scratch,online-tiled,8,65536,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,recurrence,global-scratch,online-tiled,8,65536,8,16384,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,table,global-scratch,online-tiled,8,65536,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,recurrence,global-scratch,online-tiled,8,65536,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,table,global-scratch,online-tiled,8,65536,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,recurrence,global-scratch,online-tiled,8,65536,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,table,global-scratch,online-tiled,16,131072,8,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,recurrence,global-scratch,online-tiled,16,131072,8,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,table,global-scratch,online-tiled,16,131072,16,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,recurrence,global-scratch,online-tiled,16,131072,16,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,table,global-scratch,online-tiled,16,131072,32,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,recurrence,global-scratch,online-tiled,16,131072,32,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,table,global-scratch,online-tiled,4,32768,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,recurrence,global-scratch,online-tiled,4,32768,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,table,global-scratch,online-tiled,4,32768,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,recurrence,global-scratch,online-tiled,4,32768,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,table,global-scratch,online-tiled,4,32768,64,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,recurrence,global-scratch,online-tiled,4,32768,64,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,table,global-scratch,online-tiled,8,65536,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,recurrence,global-scratch,online-tiled,8,65536,16,32768,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,table,global-scratch,online-tiled,8,65536,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,recurrence,global-scratch,online-tiled,8,65536,32,65536,compiled, +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,table,global-scratch,online-tiled,8,65536,64,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,recurrence,global-scratch,online-tiled,8,65536,64,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,table,global-scratch,online-tiled,16,131072,16,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,recurrence,global-scratch,online-tiled,16,131072,16,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,table,global-scratch,online-tiled,16,131072,32,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,recurrence,global-scratch,online-tiled,16,131072,32,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,table,global-scratch,online-tiled,16,131072,64,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,10,8,cufftdx-block,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,recurrence,global-scratch,online-tiled,16,131072,64,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,4,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,4,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,8,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,8,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,16,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,16,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,4,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,4,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,8,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,8,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,16,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,16,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,table,global-scratch,direct-strided-or-transpose,1,16384,4,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,1,16384,4,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,table,global-scratch,direct-strided-or-transpose,1,16384,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,1,16384,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,table,global-scratch,direct-strided-or-transpose,1,16384,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,1,16384,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,8,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,8,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,16,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,16,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,32,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,32,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,8,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,8,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,16,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,16,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,32,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,32,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,table,global-scratch,direct-strided-or-transpose,1,16384,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,1,16384,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,table,global-scratch,direct-strided-or-transpose,1,16384,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,1,16384,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,table,global-scratch,direct-strided-or-transpose,1,16384,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,1,16384,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,16,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,16,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,32,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,32,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,64,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,64,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,16,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,16,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,32,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,32,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,64,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,table,global-scratch,direct-strided-or-transpose,1,16384,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,1,16384,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,table,global-scratch,direct-strided-or-transpose,1,16384,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,1,16384,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,table,global-scratch,direct-strided-or-transpose,1,16384,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,1,16384,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,32,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,32,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,64,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,64,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,128,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,128,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,32,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,32,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,64,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,128,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,table,global-scratch,direct-strided-or-transpose,1,16384,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,1,16384,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,table,global-scratch,direct-strided-or-transpose,1,16384,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,1,16384,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,table,global-scratch,direct-strided-or-transpose,1,16384,128,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,1,16384,128,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,4,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,4,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,8,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,8,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,16,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,16,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,table,global-scratch,direct-strided-or-transpose,1,16384,4,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,1,16384,4,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,table,global-scratch,direct-strided-or-transpose,1,16384,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,1,16384,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,table,global-scratch,direct-strided-or-transpose,1,16384,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,1,16384,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,table,global-scratch,direct-strided-or-transpose,2,32768,4,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,2,32768,4,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,table,global-scratch,direct-strided-or-transpose,2,32768,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,2,32768,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,table,global-scratch,direct-strided-or-transpose,2,32768,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,2,32768,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,8,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,8,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,16,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,16,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,32,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,32,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,table,global-scratch,direct-strided-or-transpose,1,16384,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,1,16384,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,table,global-scratch,direct-strided-or-transpose,1,16384,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,1,16384,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,table,global-scratch,direct-strided-or-transpose,1,16384,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,1,16384,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,table,global-scratch,direct-strided-or-transpose,2,32768,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,2,32768,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,table,global-scratch,direct-strided-or-transpose,2,32768,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,2,32768,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,table,global-scratch,direct-strided-or-transpose,2,32768,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,2,32768,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,16,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,16,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,32,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,32,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,64,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,table,global-scratch,direct-strided-or-transpose,1,16384,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,1,16384,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,table,global-scratch,direct-strided-or-transpose,1,16384,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,1,16384,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,table,global-scratch,direct-strided-or-transpose,1,16384,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,1,16384,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,table,global-scratch,direct-strided-or-transpose,2,32768,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,2,32768,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,table,global-scratch,direct-strided-or-transpose,2,32768,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,2,32768,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,table,global-scratch,direct-strided-or-transpose,2,32768,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,2,32768,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,32,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,32,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,64,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,128,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,table,global-scratch,direct-strided-or-transpose,1,16384,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,1,16384,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,table,global-scratch,direct-strided-or-transpose,1,16384,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,1,16384,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,table,global-scratch,direct-strided-or-transpose,1,16384,128,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,1,16384,128,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,table,global-scratch,direct-strided-or-transpose,2,32768,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,2,32768,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,table,global-scratch,direct-strided-or-transpose,2,32768,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,2,32768,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,table,global-scratch,direct-strided-or-transpose,2,32768,128,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,2,32768,128,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,table,global-scratch,direct-strided-or-transpose,1,16384,4,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,1,16384,4,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,table,global-scratch,direct-strided-or-transpose,1,16384,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,1,16384,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,table,global-scratch,direct-strided-or-transpose,1,16384,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,1,16384,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,table,global-scratch,direct-strided-or-transpose,2,32768,4,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,2,32768,4,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,table,global-scratch,direct-strided-or-transpose,2,32768,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,2,32768,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,table,global-scratch,direct-strided-or-transpose,2,32768,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,2,32768,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,table,global-scratch,direct-strided-or-transpose,4,65536,4,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,4,65536,4,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,table,global-scratch,direct-strided-or-transpose,4,65536,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,4,65536,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,table,global-scratch,direct-strided-or-transpose,4,65536,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,4,65536,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,table,global-scratch,direct-strided-or-transpose,1,16384,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,1,16384,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,table,global-scratch,direct-strided-or-transpose,1,16384,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,1,16384,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,table,global-scratch,direct-strided-or-transpose,1,16384,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,1,16384,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,table,global-scratch,direct-strided-or-transpose,2,32768,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,2,32768,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,table,global-scratch,direct-strided-or-transpose,2,32768,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,2,32768,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,table,global-scratch,direct-strided-or-transpose,2,32768,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,2,32768,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,table,global-scratch,direct-strided-or-transpose,4,65536,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,4,65536,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,table,global-scratch,direct-strided-or-transpose,4,65536,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,4,65536,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,table,global-scratch,direct-strided-or-transpose,4,65536,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,4,65536,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,table,global-scratch,direct-strided-or-transpose,1,16384,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,1,16384,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,table,global-scratch,direct-strided-or-transpose,1,16384,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,1,16384,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,table,global-scratch,direct-strided-or-transpose,1,16384,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,1,16384,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,table,global-scratch,direct-strided-or-transpose,2,32768,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,2,32768,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,table,global-scratch,direct-strided-or-transpose,2,32768,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,2,32768,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,table,global-scratch,direct-strided-or-transpose,2,32768,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,2,32768,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,table,global-scratch,direct-strided-or-transpose,4,65536,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,4,65536,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,table,global-scratch,direct-strided-or-transpose,4,65536,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,4,65536,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,table,global-scratch,direct-strided-or-transpose,4,65536,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,4,65536,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,table,global-scratch,direct-strided-or-transpose,1,16384,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,1,16384,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,table,global-scratch,direct-strided-or-transpose,1,16384,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,1,16384,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,table,global-scratch,direct-strided-or-transpose,1,16384,128,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,1,16384,128,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,table,global-scratch,direct-strided-or-transpose,2,32768,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,2,32768,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,table,global-scratch,direct-strided-or-transpose,2,32768,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,2,32768,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,table,global-scratch,direct-strided-or-transpose,2,32768,128,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,2,32768,128,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,table,global-scratch,direct-strided-or-transpose,4,65536,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,4,65536,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,table,global-scratch,direct-strided-or-transpose,4,65536,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,4,65536,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,table,global-scratch,direct-strided-or-transpose,4,65536,128,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,4,65536,128,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,table,global-scratch,direct-strided-or-transpose,2,32768,4,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,2,32768,4,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,table,global-scratch,direct-strided-or-transpose,2,32768,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,2,32768,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,table,global-scratch,direct-strided-or-transpose,2,32768,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,2,32768,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,table,global-scratch,direct-strided-or-transpose,4,65536,4,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,4,65536,4,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,table,global-scratch,direct-strided-or-transpose,4,65536,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,4,65536,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,table,global-scratch,direct-strided-or-transpose,4,65536,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,4,65536,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,table,global-scratch,direct-strided-or-transpose,8,131072,4,4096,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,8,131072,4,4096,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,table,global-scratch,direct-strided-or-transpose,8,131072,8,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,8,131072,8,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,table,global-scratch,direct-strided-or-transpose,8,131072,16,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,8,131072,16,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,table,global-scratch,direct-strided-or-transpose,2,32768,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,2,32768,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,table,global-scratch,direct-strided-or-transpose,2,32768,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,2,32768,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,table,global-scratch,direct-strided-or-transpose,2,32768,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,2,32768,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,table,global-scratch,direct-strided-or-transpose,4,65536,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,4,65536,8,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,table,global-scratch,direct-strided-or-transpose,4,65536,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,4,65536,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,table,global-scratch,direct-strided-or-transpose,4,65536,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,4,65536,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,table,global-scratch,direct-strided-or-transpose,8,131072,8,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,8,131072,8,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,table,global-scratch,direct-strided-or-transpose,8,131072,16,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,8,131072,16,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,table,global-scratch,direct-strided-or-transpose,8,131072,32,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,8,131072,32,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,table,global-scratch,direct-strided-or-transpose,2,32768,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,2,32768,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,table,global-scratch,direct-strided-or-transpose,2,32768,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,2,32768,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,table,global-scratch,direct-strided-or-transpose,2,32768,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,2,32768,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,table,global-scratch,direct-strided-or-transpose,4,65536,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,4,65536,16,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,table,global-scratch,direct-strided-or-transpose,4,65536,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,4,65536,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,table,global-scratch,direct-strided-or-transpose,4,65536,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,4,65536,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,table,global-scratch,direct-strided-or-transpose,8,131072,16,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,8,131072,16,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,table,global-scratch,direct-strided-or-transpose,8,131072,32,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,8,131072,32,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,table,global-scratch,direct-strided-or-transpose,8,131072,64,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,8,131072,64,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,table,global-scratch,direct-strided-or-transpose,2,32768,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,2,32768,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,table,global-scratch,direct-strided-or-transpose,2,32768,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,2,32768,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,table,global-scratch,direct-strided-or-transpose,2,32768,128,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,2,32768,128,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,table,global-scratch,direct-strided-or-transpose,4,65536,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,4,65536,32,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,table,global-scratch,direct-strided-or-transpose,4,65536,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,4,65536,64,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,table,global-scratch,direct-strided-or-transpose,4,65536,128,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,4,65536,128,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,table,global-scratch,direct-strided-or-transpose,8,131072,32,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,8,131072,32,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,table,global-scratch,direct-strided-or-transpose,8,131072,64,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,8,131072,64,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,table,global-scratch,direct-strided-or-transpose,8,131072,128,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,11,7,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,8,131072,128,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,8,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,8,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,8,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,8,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,8,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,8,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,256,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,256,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,256,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,256,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,256,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,8,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,8,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,8,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,8,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,table,global-scratch,direct-strided-or-transpose,1,32768,8,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,1,32768,8,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,table,global-scratch,direct-strided-or-transpose,1,32768,16,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,1,32768,16,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,table,global-scratch,direct-strided-or-transpose,1,32768,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,1,32768,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,table,global-scratch,direct-strided-or-transpose,1,32768,16,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,1,32768,16,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,table,global-scratch,direct-strided-or-transpose,1,32768,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,1,32768,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,table,global-scratch,direct-strided-or-transpose,1,32768,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,1,32768,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,table,global-scratch,direct-strided-or-transpose,1,32768,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,1,32768,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,table,global-scratch,direct-strided-or-transpose,1,32768,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,1,32768,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,table,global-scratch,direct-strided-or-transpose,1,32768,128,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,1,32768,128,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,256,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,256,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,256,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,table,global-scratch,direct-strided-or-transpose,1,32768,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,1,32768,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,table,global-scratch,direct-strided-or-transpose,1,32768,128,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,1,32768,128,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,table,global-scratch,direct-strided-or-transpose,1,32768,256,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,1,32768,256,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,8,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,8,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,table,global-scratch,direct-strided-or-transpose,1,32768,8,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,1,32768,8,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,table,global-scratch,direct-strided-or-transpose,1,32768,16,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,1,32768,16,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,table,global-scratch,direct-strided-or-transpose,1,32768,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,1,32768,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,table,global-scratch,direct-strided-or-transpose,2,65536,8,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,2,65536,8,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,table,global-scratch,direct-strided-or-transpose,2,65536,16,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,2,65536,16,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,table,global-scratch,direct-strided-or-transpose,2,65536,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,2,65536,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,16,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,table,global-scratch,direct-strided-or-transpose,1,32768,16,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,1,32768,16,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,table,global-scratch,direct-strided-or-transpose,1,32768,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,1,32768,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,table,global-scratch,direct-strided-or-transpose,1,32768,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,1,32768,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,table,global-scratch,direct-strided-or-transpose,2,65536,16,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,2,65536,16,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,table,global-scratch,direct-strided-or-transpose,2,65536,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,2,65536,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,table,global-scratch,direct-strided-or-transpose,2,65536,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,2,65536,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,32,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,table,global-scratch,direct-strided-or-transpose,1,32768,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,1,32768,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,table,global-scratch,direct-strided-or-transpose,1,32768,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,1,32768,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,table,global-scratch,direct-strided-or-transpose,1,32768,128,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,1,32768,128,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,table,global-scratch,direct-strided-or-transpose,2,65536,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,2,65536,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,table,global-scratch,direct-strided-or-transpose,2,65536,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,2,65536,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,table,global-scratch,direct-strided-or-transpose,2,65536,128,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,2,65536,128,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,256,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,table,global-scratch,direct-strided-or-transpose,1,32768,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,1,32768,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,table,global-scratch,direct-strided-or-transpose,1,32768,128,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,1,32768,128,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,table,global-scratch,direct-strided-or-transpose,1,32768,256,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,1,32768,256,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,table,global-scratch,direct-strided-or-transpose,2,65536,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,2,65536,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,table,global-scratch,direct-strided-or-transpose,2,65536,128,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,2,65536,128,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,table,global-scratch,direct-strided-or-transpose,2,65536,256,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,2,65536,256,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,table,global-scratch,direct-strided-or-transpose,1,32768,8,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,1,32768,8,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,table,global-scratch,direct-strided-or-transpose,1,32768,16,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,1,32768,16,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,table,global-scratch,direct-strided-or-transpose,1,32768,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,1,32768,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,table,global-scratch,direct-strided-or-transpose,2,65536,8,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,2,65536,8,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,table,global-scratch,direct-strided-or-transpose,2,65536,16,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,2,65536,16,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,table,global-scratch,direct-strided-or-transpose,2,65536,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,2,65536,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,table,global-scratch,direct-strided-or-transpose,4,131072,8,4096,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,4,131072,8,4096,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,table,global-scratch,direct-strided-or-transpose,4,131072,16,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,4,131072,16,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,table,global-scratch,direct-strided-or-transpose,4,131072,32,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,4,131072,32,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,table,global-scratch,direct-strided-or-transpose,1,32768,16,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,1,32768,16,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,table,global-scratch,direct-strided-or-transpose,1,32768,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,1,32768,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,table,global-scratch,direct-strided-or-transpose,1,32768,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,1,32768,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,table,global-scratch,direct-strided-or-transpose,2,65536,16,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,2,65536,16,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,table,global-scratch,direct-strided-or-transpose,2,65536,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,2,65536,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,table,global-scratch,direct-strided-or-transpose,2,65536,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,2,65536,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,table,global-scratch,direct-strided-or-transpose,4,131072,16,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,4,131072,16,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,table,global-scratch,direct-strided-or-transpose,4,131072,32,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,4,131072,32,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,table,global-scratch,direct-strided-or-transpose,4,131072,64,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,4,131072,64,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,table,global-scratch,direct-strided-or-transpose,1,32768,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,1,32768,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,table,global-scratch,direct-strided-or-transpose,1,32768,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,1,32768,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,table,global-scratch,direct-strided-or-transpose,1,32768,128,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,1,32768,128,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,table,global-scratch,direct-strided-or-transpose,2,65536,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,2,65536,32,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,table,global-scratch,direct-strided-or-transpose,2,65536,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,2,65536,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,table,global-scratch,direct-strided-or-transpose,2,65536,128,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,2,65536,128,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,table,global-scratch,direct-strided-or-transpose,4,131072,32,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,4,131072,32,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,table,global-scratch,direct-strided-or-transpose,4,131072,64,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,4,131072,64,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,table,global-scratch,direct-strided-or-transpose,4,131072,128,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,4,131072,128,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,table,global-scratch,direct-strided-or-transpose,1,32768,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,1,32768,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,table,global-scratch,direct-strided-or-transpose,1,32768,128,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,1,32768,128,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,table,global-scratch,direct-strided-or-transpose,1,32768,256,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,1,32768,256,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,table,global-scratch,direct-strided-or-transpose,2,65536,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,2,65536,64,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,table,global-scratch,direct-strided-or-transpose,2,65536,128,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,2,65536,128,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,table,global-scratch,direct-strided-or-transpose,2,65536,256,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,2,65536,256,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,table,global-scratch,direct-strided-or-transpose,4,131072,64,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,4,131072,64,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,table,global-scratch,direct-strided-or-transpose,4,131072,128,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,4,131072,128,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,table,global-scratch,direct-strided-or-transpose,4,131072,256,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,12,6,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,4,131072,256,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,16,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,16,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,16,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,16,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,16,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,16,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,512,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,512,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,512,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,512,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,512,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,512,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,16,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,16,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,16,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,16,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,16,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,16,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,512,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,512,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,512,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,512,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,512,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,512,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,16,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,16,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,16,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,16,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,table,global-scratch,direct-strided-or-transpose,1,65536,16,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,1,65536,16,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,table,global-scratch,direct-strided-or-transpose,1,65536,32,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,1,65536,32,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,table,global-scratch,direct-strided-or-transpose,1,65536,64,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,1,65536,64,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,table,global-scratch,direct-strided-or-transpose,1,65536,32,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,1,65536,32,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,table,global-scratch,direct-strided-or-transpose,1,65536,64,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,1,65536,64,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,table,global-scratch,direct-strided-or-transpose,1,65536,128,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,1,65536,128,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,table,global-scratch,direct-strided-or-transpose,1,65536,64,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,1,65536,64,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,table,global-scratch,direct-strided-or-transpose,1,65536,128,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,1,65536,128,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,table,global-scratch,direct-strided-or-transpose,1,65536,256,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,1,65536,256,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,512,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,512,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,512,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,512,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,table,global-scratch,direct-strided-or-transpose,1,65536,128,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,1,65536,128,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,table,global-scratch,direct-strided-or-transpose,1,65536,256,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,1,65536,256,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,table,global-scratch,direct-strided-or-transpose,1,65536,512,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,1,65536,512,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,16,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,16,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,table,global-scratch,direct-strided-or-transpose,1,65536,16,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,1,65536,16,4096,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,table,global-scratch,direct-strided-or-transpose,1,65536,32,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,1,65536,32,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,table,global-scratch,direct-strided-or-transpose,1,65536,64,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,1,65536,64,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,table,global-scratch,direct-strided-or-transpose,2,131072,16,4096,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,2,131072,16,4096,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,table,global-scratch,direct-strided-or-transpose,2,131072,32,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,2,131072,32,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,table,global-scratch,direct-strided-or-transpose,2,131072,64,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,2,131072,64,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,32,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,table,global-scratch,direct-strided-or-transpose,1,65536,32,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,1,65536,32,8192,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,table,global-scratch,direct-strided-or-transpose,1,65536,64,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,1,65536,64,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,table,global-scratch,direct-strided-or-transpose,1,65536,128,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,1,65536,128,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,table,global-scratch,direct-strided-or-transpose,2,131072,32,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,2,131072,32,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,table,global-scratch,direct-strided-or-transpose,2,131072,64,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,2,131072,64,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,table,global-scratch,direct-strided-or-transpose,2,131072,128,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,2,131072,128,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,64,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,table,global-scratch,direct-strided-or-transpose,1,65536,64,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,1,65536,64,16384,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,table,global-scratch,direct-strided-or-transpose,1,65536,128,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,1,65536,128,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,table,global-scratch,direct-strided-or-transpose,1,65536,256,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,1,65536,256,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,table,global-scratch,direct-strided-or-transpose,2,131072,64,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,2,131072,64,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,table,global-scratch,direct-strided-or-transpose,2,131072,128,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,2,131072,128,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,table,global-scratch,direct-strided-or-transpose,2,131072,256,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,2,131072,256,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,512,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,512,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,table,global-scratch,direct-strided-or-transpose,1,65536,128,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,1,65536,128,32768,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,table,global-scratch,direct-strided-or-transpose,1,65536,256,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,1,65536,256,65536,requires-new-kernel,large-dimension-layout +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,table,global-scratch,direct-strided-or-transpose,1,65536,512,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,1,65536,512,131072,hardware-infeasible,suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,table,global-scratch,direct-strided-or-transpose,2,131072,128,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,2,131072,128,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,table,global-scratch,direct-strided-or-transpose,2,131072,256,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,2,131072,256,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,table,global-scratch,direct-strided-or-transpose,2,131072,512,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,13,5,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,2,131072,512,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,32,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,table,global-scratch,direct-strided-or-transpose,1,131072,32,4096,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,1,131072,32,4096,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,table,global-scratch,direct-strided-or-transpose,1,131072,64,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,1,131072,64,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,table,global-scratch,direct-strided-or-transpose,1,131072,128,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,1,131072,128,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,64,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,table,global-scratch,direct-strided-or-transpose,1,131072,64,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,1,131072,64,8192,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,table,global-scratch,direct-strided-or-transpose,1,131072,128,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,1,131072,128,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,table,global-scratch,direct-strided-or-transpose,1,131072,256,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,1,131072,256,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,128,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,table,global-scratch,direct-strided-or-transpose,1,131072,128,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,1,131072,128,16384,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,table,global-scratch,direct-strided-or-transpose,1,131072,256,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,1,131072,256,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,table,global-scratch,direct-strided-or-transpose,1,131072,512,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,1,131072,512,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,256,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,512,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,1024,131072,hardware-infeasible,prefix-coverage;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,table,global-scratch,direct-strided-or-transpose,1,131072,256,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,1,131072,256,32768,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,table,global-scratch,direct-strided-or-transpose,1,131072,512,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,1,131072,512,65536,hardware-infeasible,prefix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,table,global-scratch,direct-strided-or-transpose,1,131072,1024,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,14,4,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,1,131072,1024,131072,hardware-infeasible,prefix-shared;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,64,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,64,4096,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,64,4096,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,128,8192,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,128,8192,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,128,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,128,8192,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,128,8192,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,256,16384,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,256,16384,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,256,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,256,16384,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,256,16384,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,512,32768,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,512,32768,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,512,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,1024,65536,hardware-infeasible,prefix-coverage +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,512,32768,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,512,32768,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,1024,65536,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,1024,65536,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,131072,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage;suffix-shared +cufftdx-online,18,15,3,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,131072,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,128,4096,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,128,4096,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,128,4096,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,0,8192,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,8192,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,256,8192,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,256,8192,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,256,8192,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,512,16384,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,512,16384,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,512,16384,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,1024,32768,hardware-infeasible,prefix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,1024,32768,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,1024,32768,hardware-infeasible,prefix-coverage;prefix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,131072,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage;suffix-shared +cufftdx-online,18,16,2,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,131072,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,4096,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,4096,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,4096,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,4096,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,128,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,8192,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,8192,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,256,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,16384,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,512,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,4096,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,0,4096,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,4096,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,0,8192,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,8192,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,128,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,8192,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,0,8192,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,8192,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,256,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,16384,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,16384,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,512,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,table,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,4,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,table,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,8,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,table,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,4,16,recurrence,global-scratch,direct-strided-or-transpose,0,32768,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,table,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,4,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,32768,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,table,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,8,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,65536,hardware-infeasible,prefix-coverage;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,table,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,8,16,recurrence,global-scratch,direct-strided-or-transpose,0,65536,0,131072,hardware-infeasible,prefix-coverage;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,table,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,4,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,32768,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,table,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,8,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,65536,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,table,global-scratch,direct-strided-or-transpose,0,131072,0,131072,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage;suffix-shared +cufftdx-online,18,17,1,cufftdx-direct,cufftdx-block,cta,cta,full-dimension,full-dimension,resident-codelet,resident-codelet,1024,1024,16,16,recurrence,global-scratch,direct-strided-or-transpose,0,131072,0,131072,hardware-infeasible,prefix-coverage;prefix-shared;suffix-coverage;suffix-shared diff --git a/results/fft_design_space_logN18_coverage_summary.json b/results/fft_design_space_logN18_coverage_summary.json new file mode 100644 index 0000000..292978a --- /dev/null +++ b/results/fft_design_space_logN18_coverage_summary.json @@ -0,0 +1,31 @@ +{ + "schema_version": 1, + "model": "two-dimensional-space-time-butterfly", + "profile": "v100-sm70", + "selected_points": 4896, + "status_counts": { + "compiled": 682, + "hardware-infeasible": 3554, + "requires-new-kernel": 660 + }, + "axes": { + "logNs": [ + 18 + ], + "threads": [ + 128, + 256, + 512, + 1024 + ], + "ept": [ + 4, + 8, + 16 + ], + "twiddles": [ + "table", + "recurrence" + ] + } +} diff --git a/results/fft_design_space_v100_summary.json b/results/fft_design_space_v100_summary.json new file mode 100644 index 0000000..9451d99 --- /dev/null +++ b/results/fft_design_space_v100_summary.json @@ -0,0 +1,40 @@ +{ + "schema_version": 1, + "model": "two-dimensional-space-time-butterfly", + "profile": "v100-sm70", + "selected_points": 179928, + "status_counts": { + "awaiting-codegen": 10878, + "compiled": 2048, + "hardware-infeasible": 156658, + "requires-new-kernel": 10344 + }, + "axes": { + "logNs": [ + 16, + 18, + 20 + ], + "threads": [ + 32, + 64, + 128, + 256, + 512, + 1024 + ], + "ept": [ + 1, + 2, + 4, + 8, + 16, + 32, + 64 + ], + "twiddles": [ + "table", + "recurrence" + ] + } +} diff --git a/results/fft_direct_units_confirm_v100_raw.csv b/results/fft_direct_units_confirm_v100_raw.csv new file mode 100644 index 0000000..d7b1329 --- /dev/null +++ b/results/fft_direct_units_confirm_v100_raw.csv @@ -0,0 +1,76 @@ +trial,device,compute_capability,operator,precision,direction,normalization,placement,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,stage_handoff,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,logN,N,batch,element_stride,batch_stride,warmup,repeat,h2d_ms,kernel_ms,d2h_ms,transforms_s,Gbutterfly_s,points_s,max_error,correct +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,11,2048,2048,1,2048,20,100,5.495104,0.086211,5.180992,23755791.485686,267.585235,48651860962.684853,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,11,2048,2048,1,2048,20,100,5.460640,0.086118,5.200032,23781212.815098,267.871581,48703923845.321274,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,11,2048,2048,1,2048,20,100,5.458368,0.086231,5.176544,23750148.996339,267.521678,48640305144.503235,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,11,2048,2048,1,2048,20,100,5.474752,0.086292,5.216064,23733239.648488,267.331211,48605674800.104301,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,11,2048,2048,1,2048,20,100,5.470240,0.086313,5.174272,23727605.817658,267.267752,48594136714.564087,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,11,2048,2048,1,2048,20,100,5.466560,0.085637,5.439616,23914862.419241,269.377010,48977638234.604774,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,11,2048,2048,1,2048,20,100,5.519584,0.085709,5.451296,23894863.447048,269.151742,48936680339.554436,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,11,2048,2048,1,2048,20,100,5.493216,0.085565,5.240352,23934896.980155,269.602680,49018669015.358315,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,11,2048,2048,1,2048,20,100,5.476000,0.085617,5.191040,23920585.535280,269.441475,48989359176.253975,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,11,2048,2048,1,2048,20,100,5.479232,0.085504,5.719776,23952097.091778,269.796422,49053894843.960938,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,11,2048,2048,1,2048,20,100,5.489184,0.088934,5.178144,23028209.767075,259.389755,47161773602.968956,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,11,2048,2048,1,2048,20,100,5.520736,0.089016,6.227424,23007015.648455,259.151024,47118368048.036552,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,11,2048,2048,1,2048,20,100,5.487552,0.088893,5.300608,23038819.545194,259.509263,47183502428.558167,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,11,2048,2048,1,2048,20,100,5.467168,0.088975,5.179328,23017607.828994,259.270335,47140060833.779335,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,11,2048,2048,1,2048,20,100,5.495104,0.089108,5.658976,22983223.652767,258.883031,47069642040.866272,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,11,2048,2048,1,2048,20,100,5.475488,0.107909,5.790912,18978934.585422,213.778719,38868858030.944847,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,11,2048,2048,1,2048,20,100,5.472864,0.108227,5.282976,18923266.145910,213.151670,38754849066.824326,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,11,2048,2048,1,2048,20,100,5.487104,0.108093,5.182592,18946570.577340,213.414171,38802576542.392174,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,11,2048,2048,1,2048,20,100,5.525824,0.107909,5.338176,18978934.585422,213.778719,38868858030.944847,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,11,2048,2048,1,2048,20,100,5.505536,0.108052,5.310080,18953752.020178,213.495063,38817284137.324455,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.458368,0.090030,5.179296,11373976.143764,279.526838,46587806284.857544,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.495040,0.090092,5.190784,11366218.774252,279.336193,46556032099.335426,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.495840,0.090051,6.592672,11371389.177671,279.463260,46577210071.741241,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.479040,0.089958,5.275904,11383039.330423,279.749575,46624929097.412857,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.498464,0.090020,5.196064,11375270.539000,279.558649,46593108127.744995,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.546976,0.089385,5.611104,11456066.224302,281.544284,46924047254.741875,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.538080,0.089416,5.193024,11452129.540037,281.447536,46907922595.989555,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.468896,0.089457,5.254464,11446885.469974,281.318657,46886442885.012894,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.586624,0.089446,6.360288,11448196.513988,281.350878,46891812921.293304,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.496256,0.089457,5.407328,11446885.469974,281.318657,46886442885.012894,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.508416,0.089119,5.263840,11490290.820271,282.385387,47064231199.830925,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.498592,0.089068,6.538368,11496896.004497,282.547716,47091286034.420013,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.558080,0.089057,5.200416,11498217.567944,282.580195,47096699158.300636,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.494016,0.089078,5.177344,11495574.744806,282.515245,47085874154.726059,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.486272,0.089201,5.845536,11479738.489165,282.126053,47021008851.619987,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.519264,0.093686,5.209440,10930156.173589,268.619518,44769919687.021057,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.505952,0.093757,5.242400,10921800.415928,268.414167,44735694503.640923,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.467040,0.093757,5.179392,10921800.415928,268.414167,44735694503.640923,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.501216,0.093839,5.442048,10912265.123058,268.179828,44696637944.047531,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.470272,0.093778,5.205888,10919414.163249,268.355522,44725920412.668015,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,13,8192,512,1,8192,20,100,5.486368,0.096614,5.797504,5299417.170412,282.183365,43412825460.015358,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,13,8192,512,1,8192,20,100,5.509888,0.096573,5.609856,5301664.600812,282.303037,43431236409.853271,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,13,8192,512,1,8192,20,100,5.494400,0.096522,5.192576,5304477.287409,282.452807,43454277938.456322,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,13,8192,512,1,8192,20,100,5.469216,0.096758,5.179584,5291565.535753,281.765282,43348504868.886604,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,13,8192,512,1,8192,20,100,5.461152,0.096297,5.207488,5316886.507207,283.113573,43555934267.038322,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,13,8192,512,1,8192,20,100,5.498016,0.121672,5.225952,4208045.899892,224.070028,34472312011.913910,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,13,8192,512,1,8192,20,100,5.489248,0.122194,5.952064,4190061.256089,223.112382,34324981809.880741,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,13,8192,512,1,8192,20,100,5.481280,0.121037,5.289536,4230118.521535,225.245351,34653130928.416641,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,13,8192,512,1,8192,20,100,5.504256,0.121743,6.661952,4205567.960770,223.938083,34452012734.627251,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,13,8192,512,1,8192,20,100,5.508448,0.121651,6.987968,4208754.124329,224.107740,34478113786.500870,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,13,8192,512,1,8192,20,100,5.461472,0.100157,5.176640,5111951.758043,272.201207,41877108801.886261,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,13,8192,512,1,8192,20,100,5.487104,0.100168,5.537824,5111428.938361,272.173368,41872825863.053864,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,13,8192,512,1,8192,20,100,5.472064,0.100157,5.174848,5111951.758043,272.201207,41877108801.886261,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,13,8192,512,1,8192,20,100,5.505920,0.100127,6.229760,5113520.097991,272.284718,41889956642.742523,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,13,8192,512,1,8192,20,100,5.475968,0.100178,5.182272,5110906.985842,272.145575,41868550028.017387,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,13,8192,512,1,8192,20,100,5.529216,0.122860,6.902656,4167361.387999,221.903659,34139024490.488102,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,13,8192,512,1,8192,20,100,5.495360,0.122286,6.387904,4186903.321278,222.944228,34299112007.907898,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,13,8192,512,1,8192,20,100,5.471104,0.122911,5.318048,4165625.408132,221.811222,34124803343.419456,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,13,8192,512,1,8192,20,100,5.482176,0.122409,5.196928,4182700.223556,222.720422,34264680231.369354,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,13,8192,512,1,8192,20,100,5.457856,0.122900,5.181696,4165972.387371,221.829698,34127645797.341000,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.507936,0.135209,5.187072,1893365.585890,217.146312,31020901759.218494,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.497792,0.135485,5.177280,1889501.920422,216.703196,30957599464.188610,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.473568,0.135567,6.090048,1888360.049471,216.572237,30938891050.540283,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.495328,0.135434,6.081984,1890216.239304,216.785120,30969302864.750809,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.476384,0.135916,5.528192,1883522.971700,216.017483,30859640368.333065,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,14,16384,256,1,16384,20,100,5.573056,0.134482,5.628160,1903601.588888,218.320259,31188608432.338470,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,14,16384,256,1,16384,20,100,5.565568,0.134246,5.187008,1906941.350895,218.703290,31243327093.065109,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,14,16384,256,1,16384,20,100,5.571296,0.134400,5.233120,1904761.972679,218.453341,31207620160.368874,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,14,16384,256,1,16384,20,100,5.578176,0.134267,5.189024,1906650.352067,218.669916,31238559368.267548,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,14,16384,256,1,16384,20,100,5.561664,0.134472,5.182304,1903746.506798,218.336879,31190982767.378799,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,14,16384,256,1,16384,20,100,5.572608,0.131707,5.180480,1943710.175446,222.920233,31845747514.499134,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,14,16384,256,1,16384,20,100,5.583072,0.131267,6.072768,1950230.287171,223.668011,31952573025.005711,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,14,16384,256,1,16384,20,100,5.564896,0.132014,5.184448,1939187.079814,222.401488,31771641115.668198,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,14,16384,256,1,16384,20,100,5.572128,0.131809,5.207040,1942200.134282,222.747049,31821007000.074501,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,14,16384,256,1,16384,20,100,5.595456,0.131133,5.487296,1952209.943938,223.895054,31985007721.475925,0.000000,-1 diff --git a/results/fft_direct_units_confirm_v100_summary.csv b/results/fft_direct_units_confirm_v100_summary.csv new file mode 100644 index 0000000..5d4e1e1 --- /dev/null +++ b/results/fft_direct_units_confirm_v100_summary.csv @@ -0,0 +1,16 @@ +rank,operator,precision,direction,normalization,placement,logN,N,batch,element_stride,batch_stride,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,stage_handoff,trials,median_kernel_ms,min_kernel_ms,max_kernel_ms,median_Gbutterfly_s,slowdown_vs_best +1,fft,fp32,forward,none,out-of-place,11,2048,2048,1,2048,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,256,0,0,0,0,named-barrier,5,0.085617,0.085504,0.085709,269.441475,1.000000 +2,fft,fp32,forward,none,out-of-place,11,2048,2048,1,2048,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.086231,0.086118,0.086313,267.521678,1.007171 +3,fft,fp32,forward,none,out-of-place,11,2048,2048,1,2048,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,512,0,0,0,0,named-barrier,5,0.088975,0.088893,0.089108,259.270335,1.039221 +4,fft,fp32,forward,none,out-of-place,11,2048,2048,1,2048,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,1024,0,0,0,0,named-barrier,5,0.108052,0.107909,0.108227,213.495063,1.262039 +1,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,512,0,0,0,0,named-barrier,5,0.089078,0.089057,0.089201,282.515245,1.000000 +2,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,256,0,0,0,0,named-barrier,5,0.089446,0.089385,0.089457,281.350878,1.004131 +3,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.090030,0.089958,0.090092,279.526838,1.010687 +4,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,1024,0,0,0,0,named-barrier,5,0.093757,0.093686,0.093839,268.414167,1.052527 +1,fft,fp32,forward,none,out-of-place,13,8192,512,1,8192,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.096573,0.096297,0.096758,282.303037,1.000000 +2,fft,fp32,forward,none,out-of-place,13,8192,512,1,8192,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,512,0,0,0,0,named-barrier,5,0.100157,0.100127,0.100178,272.201207,1.037112 +3,fft,fp32,forward,none,out-of-place,13,8192,512,1,8192,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,256,0,0,0,0,named-barrier,5,0.121672,0.121037,0.122194,224.070028,1.259897 +4,fft,fp32,forward,none,out-of-place,13,8192,512,1,8192,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,1024,0,0,0,0,named-barrier,5,0.122860,0.122286,0.122911,221.903659,1.272198 +1,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,1024,0,0,0,0,named-barrier,5,0.131707,0.131133,0.132014,222.920233,1.000000 +2,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,512,0,0,0,0,named-barrier,5,0.134400,0.134246,0.134482,218.453341,1.020447 +3,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.135485,0.135209,0.135916,216.703196,1.028685 diff --git a/results/fft_direct_units_contiguous_v100_raw.csv b/results/fft_direct_units_contiguous_v100_raw.csv new file mode 100644 index 0000000..bcc81b2 --- /dev/null +++ b/results/fft_direct_units_contiguous_v100_raw.csv @@ -0,0 +1,76 @@ +trial,device,compute_capability,operator,precision,direction,normalization,placement,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,stage_handoff,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,logN,N,batch,element_stride,batch_stride,warmup,repeat,h2d_ms,kernel_ms,d2h_ms,transforms_s,Gbutterfly_s,points_s,max_error,correct +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,11,2048,2048,1,2048,20,100,5.538368,0.086303,5.328768,23730422.398692,267.299478,48599905072.521049,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,11,2048,2048,1,2048,20,100,5.550976,0.086303,5.238304,23730422.398692,267.299478,48599905072.521049,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,11,2048,2048,1,2048,20,100,5.562560,0.086149,5.527616,23772732.995530,267.776064,48686557174.845169,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,11,2048,2048,1,2048,20,100,5.555136,0.086180,5.207488,23764259.221213,267.680616,48669202885.044540,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,11,2048,2048,1,2048,20,100,5.558496,0.086231,5.218304,23750148.996339,267.521678,48640305144.503235,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,11,2048,2048,1,2048,20,100,5.603232,0.085647,5.170720,23912001.888060,269.344789,48971779866.747681,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,11,2048,2048,1,2048,20,100,5.638976,0.085658,5.649568,23909146.200393,269.312623,48965931418.404892,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,11,2048,2048,1,2048,20,100,5.575968,0.085535,5.577408,23943494.989798,269.699528,49036277739.105728,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,11,2048,2048,1,2048,20,100,5.612896,0.085729,6.190656,23889152.631190,269.087415,48924984588.677422,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,11,2048,2048,1,2048,20,100,5.547776,0.085637,5.607936,23914862.419241,269.377010,48977638234.604774,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,11,2048,2048,1,2048,20,100,5.489728,0.089057,5.106016,22996435.135889,259.031845,47096699158.300636,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,11,2048,2048,1,2048,20,100,5.478496,0.089068,5.107072,22993792.008994,259.002073,47091286034.420013,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,11,2048,2048,1,2048,20,100,5.475392,0.089057,5.117888,22996435.135889,259.031845,47096699158.300636,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,11,2048,2048,1,2048,20,100,5.480768,0.089027,5.103168,23004372.014192,259.121246,47112953885.064636,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,11,2048,2048,1,2048,20,100,5.483168,0.089088,5.119712,22988505.654966,258.942528,47080459581.370834,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,11,2048,2048,1,2048,20,100,5.496736,0.108186,5.124256,18930431.233521,213.232377,38769523166.251129,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,11,2048,2048,1,2048,20,100,5.612768,0.107981,5.215200,18966334.289431,213.636789,38843052624.755035,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,11,2048,2048,1,2048,20,100,5.481472,0.108247,5.105376,18919685.635686,213.111339,38747516181.885857,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,11,2048,2048,1,2048,20,100,5.482400,0.108298,5.121856,18910740.935737,213.010586,38729197436.388481,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,11,2048,2048,1,2048,20,100,5.476448,0.108206,5.120768,18926848.011599,213.192016,38762184727.753860,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.463712,0.089928,5.113152,11386927.706792,279.845135,46640855887.018684,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.485504,0.090061,5.108256,11370096.606186,279.431494,46571915698.936348,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.485920,0.089969,5.125600,11381743.166658,279.717720,46619620010.630875,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.574880,0.090030,5.219520,11373976.143764,279.526838,46587806284.857544,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.549312,0.090081,5.212000,11367511.404362,279.367960,46561326712.268181,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.619712,0.089477,6.119776,11444266.188464,281.254286,46875714307.949036,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.485600,0.089395,5.118720,11454754.331987,281.512042,46918673743.818939,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.479808,0.089375,5.117472,11457378.417149,281.576532,46929421996.642784,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.641280,0.089416,5.183232,11452129.540037,281.447536,46907922595.989555,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.517120,0.089364,5.116864,11458690.910631,281.608788,46934797969.944717,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.488320,0.089129,5.150272,11488970.117834,282.352930,47058821602.647636,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.475648,0.089027,5.105792,11502186.007096,282.677723,47112953885.064636,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.481536,0.089078,5.116608,11495574.744806,282.515245,47085874154.726059,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.464512,0.089006,5.116352,11504831.871306,282.742748,47123791344.867828,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.500768,0.089221,5.113664,11477102.236090,282.061265,47010210759.022858,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.480608,0.093614,5.107648,10938525.596814,268.825205,44804200844.551659,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.506496,0.093594,5.111456,10940919.339719,268.884034,44814005615.488075,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.495840,0.093737,5.120096,10924185.975191,268.472795,44745465754.380394,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.469600,0.093788,5.105888,10918223.162586,268.326252,44721042073.953255,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.499840,0.093798,5.112544,10917030.687384,268.296946,44716157695.525635,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,13,8192,512,1,8192,20,100,5.487808,0.096799,5.123904,5289326.250467,281.646044,43330160643.827362,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,13,8192,512,1,8192,20,100,5.494816,0.096328,5.138592,5315190.960518,283.023288,43542044348.560997,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,13,8192,512,1,8192,20,100,5.474080,0.096850,5.106784,5286530.010979,281.497150,43307253849.942642,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,13,8192,512,1,8192,20,100,5.491872,0.096154,5.112704,5324813.520542,283.535670,43620872360.281235,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,13,8192,512,1,8192,20,100,5.512512,0.096532,5.268832,5303914.347614,282.422831,43449666335.656670,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,13,8192,512,1,8192,20,100,5.517696,0.121999,5.121952,4196743.305817,223.468188,34379721161.250648,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,13,8192,512,1,8192,20,100,5.496320,0.121395,5.117568,4217629.675056,224.580345,34550822298.058083,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,13,8192,512,1,8192,20,100,5.474624,0.121723,5.117696,4206275.866223,223.975777,34457811896.096848,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,13,8192,512,1,8192,20,100,5.474400,0.121672,5.113824,4208045.899892,224.070028,34472312011.913910,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,13,8192,512,1,8192,20,100,5.493824,0.121631,5.110112,4209463.102905,224.145491,34483921738.998802,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,13,8192,512,1,8192,20,100,5.502432,0.100086,5.111264,5115612.588552,272.396139,41907098325.421547,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,13,8192,512,1,8192,20,100,5.403360,0.100168,5.132128,5111428.938361,272.173368,41872825863.053864,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,13,8192,512,1,8192,20,100,5.481280,0.100188,5.101024,5110384.379834,272.117747,41864268839.596443,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,13,8192,512,1,8192,20,100,5.470304,0.100157,5.106464,5111951.758043,272.201207,41877108801.886261,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,13,8192,512,1,8192,20,100,5.485440,0.100147,5.107392,5112474.304339,272.229032,41881389501.143990,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,13,8192,512,1,8192,20,100,5.487584,0.122481,5.115872,4180252.544411,222.590087,34244628843.810841,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,13,8192,512,1,8192,20,100,5.493696,0.122522,5.112032,4178854.938569,222.515668,34233179656.757965,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,13,8192,512,1,8192,20,100,5.487936,0.122849,5.105216,4167708.403746,221.922137,34141867243.485783,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,13,8192,512,1,8192,20,100,5.505248,0.122358,5.117600,4184450.721872,222.813632,34279020313.575085,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,13,8192,512,1,8192,20,100,5.470144,0.122604,5.107840,4176062.782404,222.366991,34210306313.457226,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.483072,0.135250,5.110560,1892792.348742,217.080569,31011509841.786030,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.462368,0.135619,5.111776,1887647.132556,216.490474,30927210619.805195,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.467232,0.135434,5.106144,1890216.239304,216.785120,30969302864.750809,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.471008,0.135823,5.102432,1884800.839763,216.164039,30880576958.678009,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.528768,0.135393,5.211296,1890788.125012,216.850708,30978672640.192719,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,14,16384,256,1,16384,20,100,5.663392,0.134011,5.208384,1910292.639936,219.087642,31298234612.704235,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,14,16384,256,1,16384,20,100,5.624448,0.134687,5.271488,1900707.015731,217.988286,31141183745.739666,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,14,16384,256,1,16384,20,100,5.657344,0.133898,5.522144,1911899.616271,219.271943,31324563312.977345,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,14,16384,256,1,16384,20,100,5.617280,0.134339,5.851168,1905633.083640,218.553247,31221892442.349831,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,14,16384,256,1,16384,20,100,5.658240,0.134451,5.814048,1904036.619846,218.370152,31195735979.556831,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,14,16384,256,1,16384,20,100,5.636384,0.131932,5.907968,1940391.047568,222.539568,31791366923.360748,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,14,16384,256,1,16384,20,100,5.652448,0.131840,5.171840,1941747.491561,222.695136,31813590901.731117,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,14,16384,256,1,16384,20,100,5.578528,0.131676,5.108608,1944163.733782,222.972250,31853178614.291386,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,14,16384,256,1,16384,20,100,5.538304,0.131482,5.105408,1947040.457157,223.302176,31900310850.056908,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,14,16384,256,1,16384,20,100,5.572896,0.131656,5.115008,1944466.076901,223.006925,31858132203.948650,0.000000,-1 diff --git a/results/fft_direct_units_contiguous_v100_summary.csv b/results/fft_direct_units_contiguous_v100_summary.csv new file mode 100644 index 0000000..0294c01 --- /dev/null +++ b/results/fft_direct_units_contiguous_v100_summary.csv @@ -0,0 +1,16 @@ +rank,operator,precision,direction,normalization,placement,logN,N,batch,element_stride,batch_stride,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,stage_handoff,trials,median_kernel_ms,min_kernel_ms,max_kernel_ms,median_Gbutterfly_s,slowdown_vs_best +1,fft,fp32,forward,none,out-of-place,11,2048,2048,1,2048,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,256,0,0,0,0,named-barrier,5,0.085647,0.085535,0.085729,269.344789,1.000000 +2,fft,fp32,forward,none,out-of-place,11,2048,2048,1,2048,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.086231,0.086149,0.086303,267.521678,1.006819 +3,fft,fp32,forward,none,out-of-place,11,2048,2048,1,2048,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,512,0,0,0,0,named-barrier,5,0.089057,0.089027,0.089088,259.031845,1.039815 +4,fft,fp32,forward,none,out-of-place,11,2048,2048,1,2048,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,1024,0,0,0,0,named-barrier,5,0.108206,0.107981,0.108298,213.192016,1.263395 +1,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,512,0,0,0,0,named-barrier,5,0.089078,0.089006,0.089221,282.515245,1.000000 +2,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,256,0,0,0,0,named-barrier,5,0.089395,0.089364,0.089477,281.512042,1.003559 +3,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.090030,0.089928,0.090081,279.526838,1.010687 +4,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,1024,0,0,0,0,named-barrier,5,0.093737,0.093594,0.093798,268.472795,1.052302 +1,fft,fp32,forward,none,out-of-place,13,8192,512,1,8192,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.096532,0.096154,0.096850,282.422831,1.000000 +2,fft,fp32,forward,none,out-of-place,13,8192,512,1,8192,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,512,0,0,0,0,named-barrier,5,0.100157,0.100086,0.100188,272.201207,1.037552 +3,fft,fp32,forward,none,out-of-place,13,8192,512,1,8192,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,256,0,0,0,0,named-barrier,5,0.121672,0.121395,0.121999,224.070028,1.260432 +4,fft,fp32,forward,none,out-of-place,13,8192,512,1,8192,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,1024,0,0,0,0,named-barrier,5,0.122522,0.122358,0.122849,222.515668,1.269237 +1,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,1024,0,0,0,0,named-barrier,5,0.131676,0.131482,0.131932,222.972250,1.000000 +2,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,512,0,0,0,0,named-barrier,5,0.134339,0.133898,0.134687,218.553247,1.020224 +3,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.135434,0.135250,0.135823,216.785120,1.028540 diff --git a/results/fft_direct_units_final_v100_raw.csv b/results/fft_direct_units_final_v100_raw.csv new file mode 100644 index 0000000..e5f0b8d --- /dev/null +++ b/results/fft_direct_units_final_v100_raw.csv @@ -0,0 +1,76 @@ +trial,device,compute_capability,operator,precision,direction,normalization,placement,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,stage_handoff,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,logN,N,batch,element_stride,batch_stride,warmup,repeat,h2d_ms,kernel_ms,d2h_ms,transforms_s,Gbutterfly_s,points_s,max_error,correct +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,11,2048,2048,1,2048,20,100,5.498848,0.086190,5.191328,23761434.602697,267.648799,48663418066.323509,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,11,2048,2048,1,2048,20,100,5.469952,0.086231,5.178144,23750148.996339,267.521678,48640305144.503235,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,11,2048,2048,1,2048,20,100,5.458368,0.086180,5.179936,23764259.221213,267.680616,48669202885.044540,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,11,2048,2048,1,2048,20,100,5.476608,0.086241,5.634336,23747327.730909,267.489900,48634527192.902634,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,11,2048,2048,1,2048,20,100,5.469120,0.086252,5.193504,23744509.186771,267.458151,48628754814.507309,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,11,2048,2048,1,2048,20,100,5.458720,0.085678,5.174560,23903430.634869,269.248243,48954225940.212273,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,11,2048,2048,1,2048,20,100,5.474400,0.085668,5.659424,23906287.036437,269.280417,48960075850.623184,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,11,2048,2048,1,2048,20,100,5.467968,0.085555,5.719904,23937760.907426,269.634939,49024534338.409264,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,11,2048,2048,1,2048,20,100,5.472544,0.085729,5.674720,23889152.631190,269.087415,48924984588.677422,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,11,2048,2048,1,2048,20,100,5.476032,0.085729,5.608160,23889152.631190,269.087415,48924984588.677422,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,11,2048,2048,1,2048,20,100,5.467104,0.088996,5.838624,23012312.446426,259.210687,47129215890.279465,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,11,2048,2048,1,2048,20,100,5.470752,0.088873,5.711808,23044130.999102,259.569092,47194380286.161865,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,11,2048,2048,1,2048,20,100,5.480224,0.089160,5.715072,22970023.502003,258.734345,47042608132.101372,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,11,2048,2048,1,2048,20,100,5.468320,0.089119,5.642368,22980581.640542,258.853272,47064231199.830925,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,11,2048,2048,1,2048,20,100,5.465440,0.089057,5.745920,22996435.135889,259.031845,47096699158.300636,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,11,2048,2048,1,2048,20,100,5.467008,0.108298,5.677248,18910740.935737,213.010586,38729197436.388481,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,11,2048,2048,1,2048,20,100,5.509824,0.108206,5.448704,18926848.011599,213.192016,38762184727.753860,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,11,2048,2048,1,2048,20,100,5.507968,0.107909,6.160256,18978934.585422,213.778719,38868858030.944847,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,11,2048,2048,1,2048,20,100,5.474816,0.108411,5.714752,18891092.855019,212.789270,38688958167.079407,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,11,2048,2048,1,2048,20,100,5.467424,0.108216,5.737312,18925056.257788,213.171834,38758515215.950043,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.462592,0.089989,5.655616,11379153.608732,279.654079,46609013181.365501,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.466752,0.089928,5.352640,11386927.706792,279.845135,46640855887.018684,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.457440,0.089979,5.176064,11380449.182728,279.685919,46614319852.453140,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.458720,0.090061,5.179936,11370096.606186,279.431494,46571915698.936348,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.462656,0.090081,5.196000,11367511.404362,279.367960,46561326712.268181,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.472928,0.089457,5.219488,11446885.469974,281.318657,46886442885.012894,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.473920,0.089457,5.980448,11446885.469974,281.318657,46886442885.012894,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.466848,0.089436,5.764736,11449507.858351,281.383105,46897184187.805351,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.465184,0.089487,5.682400,11442956.997167,281.222111,46870351860.394859,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.467392,0.089416,5.763872,11452129.540037,281.447536,46907922595.989555,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.471840,0.088986,5.796800,11507480.880054,282.807850,47134641684.702675,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.471872,0.088955,5.721248,11511453.788749,282.905488,47150914718.717865,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.466112,0.088904,5.694528,11518082.368157,283.068392,47178065379.971977,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.464448,0.088934,5.662560,11514104.883537,282.970642,47161773602.968956,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.471808,0.088842,5.827968,11526048.486926,283.264168,47210694602.449944,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.475104,0.093829,5.750304,10913456.557339,268.209108,44701518058.859901,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.465920,0.093829,5.669920,10913456.557339,268.209108,44701518058.859901,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.482144,0.093798,6.682144,10917030.687384,268.296946,44716157695.525635,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.512128,0.093819,5.681472,10914647.385035,268.238374,44706395689.103310,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.474592,0.093788,5.623648,10918223.162586,268.326252,44721042073.953255,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,13,8192,512,1,8192,20,100,5.461952,0.096666,5.655424,5296610.254306,282.033903,43389831203.277084,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,13,8192,512,1,8192,20,100,5.461024,0.096819,6.022176,5288207.318390,281.586463,43320994352.249466,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,13,8192,512,1,8192,20,100,5.455168,0.096932,5.174240,5282062.253329,281.259251,43270653979.268059,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,13,8192,512,1,8192,20,100,5.462656,0.096645,5.241920,5297732.745542,282.093673,43399026651.476845,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,13,8192,512,1,8192,20,100,5.464000,0.096328,5.298336,5315190.960518,283.023288,43542044348.560997,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,13,8192,512,1,8192,20,100,5.460736,0.121416,5.189440,4216918.201903,224.542460,34544993909.986885,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,13,8192,512,1,8192,20,100,5.480480,0.121876,5.692736,4200974.688323,223.693500,34414384646.745712,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,13,8192,512,1,8192,20,100,5.483104,0.121754,5.115456,4205214.612057,223.919268,34449118101.971970,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,13,8192,512,1,8192,20,100,5.467072,0.121979,5.112000,4197447.730536,223.505697,34385491808.550705,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,13,8192,512,1,8192,20,100,5.476480,0.121795,5.100864,4203800.267805,223.843957,34437531793.855858,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,13,8192,512,1,8192,20,100,5.478560,0.100178,5.115104,5110906.985842,272.145575,41868550028.017387,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,13,8192,512,1,8192,20,100,5.459424,0.100147,5.103488,5112474.304339,272.229032,41881389501.143990,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,13,8192,512,1,8192,20,100,5.458016,0.100188,5.104160,5110384.379834,272.117747,41864268839.596443,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,13,8192,512,1,8192,20,100,5.460640,0.100168,5.105056,5111428.938361,272.173368,41872825863.053864,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,13,8192,512,1,8192,20,100,5.458528,0.100188,5.103488,5110384.379834,272.117747,41864268839.596443,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,13,8192,512,1,8192,20,100,5.456416,0.122440,5.105408,4181650.830957,222.664543,34256083607.202229,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,13,8192,512,1,8192,20,100,5.455424,0.122368,5.106144,4184100.403100,222.794978,34276150502.197063,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,13,8192,512,1,8192,20,100,5.461920,0.122706,5.103392,4172578.019879,222.181434,34181759138.851055,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,13,8192,512,1,8192,20,100,5.548608,0.122604,5.200704,4176062.782404,222.366991,34210306313.457226,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,13,8192,512,1,8192,20,100,5.471264,0.122788,5.581824,4169793.989614,222.033190,34158952362.915127,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.466144,0.135557,5.672512,1888502.863555,216.588616,30941230916.484444,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.461888,0.135455,5.204896,1889930.530113,216.752353,30964621805.372196,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.386528,0.135158,5.178592,1894082.829600,217.228572,31032653080.174339,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.461056,0.135107,5.381952,1894800.616929,217.310893,31044413307.762081,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.457152,0.135383,5.179840,1890931.098481,216.867106,30981015117.510044,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,14,16384,256,1,16384,20,100,5.563552,0.133970,5.262848,1910876.740282,219.154632,31307804512.779560,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,14,16384,256,1,16384,20,100,5.571168,0.133908,5.634144,1911753.454480,219.255180,31322168598.204006,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,14,16384,256,1,16384,20,100,5.589760,0.133663,5.768576,1915268.584350,219.658323,31379760485.997643,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,14,16384,256,1,16384,20,100,5.568768,0.133489,5.679104,1917766.183229,219.944768,31420681146.022038,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,14,16384,256,1,16384,20,100,5.576128,0.134615,5.433728,1901719.240785,218.104376,31157768041.027859,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,14,16384,256,1,16384,20,100,5.567744,0.131348,5.724160,1949013.861134,223.528502,31932643100.813450,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,14,16384,256,1,16384,20,100,5.613216,0.131359,5.803968,1948861.969836,223.511082,31930154513.788811,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,14,16384,256,1,16384,20,100,5.572640,0.131676,5.621408,1944163.733782,222.972250,31853178614.291386,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,14,16384,256,1,16384,20,100,5.568064,0.131625,5.764000,1944919.988122,223.058984,31865569085.392265,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,14,16384,256,1,16384,20,100,5.565280,0.131543,5.698432,1946131.087313,223.197882,31885411734.541168,0.000000,-1 diff --git a/results/fft_direct_units_final_v100_summary.csv b/results/fft_direct_units_final_v100_summary.csv new file mode 100644 index 0000000..81c5301 --- /dev/null +++ b/results/fft_direct_units_final_v100_summary.csv @@ -0,0 +1,16 @@ +rank,operator,precision,direction,normalization,placement,logN,N,batch,element_stride,batch_stride,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,stage_handoff,trials,median_kernel_ms,min_kernel_ms,max_kernel_ms,median_Gbutterfly_s,slowdown_vs_best +1,fft,fp32,forward,none,out-of-place,11,2048,2048,1,2048,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,256,0,0,0,0,named-barrier,5,0.085678,0.085555,0.085729,269.248243,1.000000 +2,fft,fp32,forward,none,out-of-place,11,2048,2048,1,2048,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.086231,0.086180,0.086252,267.521678,1.006454 +3,fft,fp32,forward,none,out-of-place,11,2048,2048,1,2048,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,512,0,0,0,0,named-barrier,5,0.089057,0.088873,0.089160,259.031845,1.039438 +4,fft,fp32,forward,none,out-of-place,11,2048,2048,1,2048,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,1024,0,0,0,0,named-barrier,5,0.108216,0.107909,0.108411,213.171834,1.263055 +1,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,512,0,0,0,0,named-barrier,5,0.088934,0.088842,0.088986,282.970642,1.000000 +2,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,256,0,0,0,0,named-barrier,5,0.089457,0.089416,0.089487,281.318657,1.005881 +3,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.089989,0.089928,0.090081,279.654079,1.011863 +4,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,1024,0,0,0,0,named-barrier,5,0.093819,0.093788,0.093829,268.238374,1.054928 +1,fft,fp32,forward,none,out-of-place,13,8192,512,1,8192,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.096666,0.096328,0.096932,282.033903,1.000000 +2,fft,fp32,forward,none,out-of-place,13,8192,512,1,8192,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,512,0,0,0,0,named-barrier,5,0.100178,0.100147,0.100188,272.145575,1.036331 +3,fft,fp32,forward,none,out-of-place,13,8192,512,1,8192,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,256,0,0,0,0,named-barrier,5,0.121795,0.121416,0.121979,223.843957,1.259957 +4,fft,fp32,forward,none,out-of-place,13,8192,512,1,8192,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,1024,0,0,0,0,named-barrier,5,0.122604,0.122368,0.122788,222.366991,1.268326 +1,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,1024,0,0,0,0,named-barrier,5,0.131543,0.131348,0.131676,223.197882,1.000000 +2,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,512,0,0,0,0,named-barrier,5,0.133908,0.133489,0.134615,219.255180,1.017979 +3,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.135383,0.135107,0.135557,216.867106,1.029192 diff --git a/results/fft_direct_units_v100_raw.csv b/results/fft_direct_units_v100_raw.csv new file mode 100644 index 0000000..b1876b6 --- /dev/null +++ b/results/fft_direct_units_v100_raw.csv @@ -0,0 +1,76 @@ +trial,device,compute_capability,operator,precision,direction,normalization,placement,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,stage_handoff,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,logN,N,batch,element_stride,batch_stride,warmup,repeat,h2d_ms,kernel_ms,d2h_ms,transforms_s,Gbutterfly_s,points_s,max_error,correct +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,11,2048,2048,1,2048,20,100,5.495776,0.086282,5.185280,23736053.468009,267.362906,48611437502.482559,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,11,2048,2048,1,2048,20,100,5.475872,0.086149,6.173824,23772732.995530,267.776064,48686557174.845169,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,11,2048,2048,1,2048,20,100,5.468608,0.086221,5.187584,23752968.879641,267.553441,48646080265.504356,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,11,2048,2048,1,2048,20,100,5.478272,0.086139,5.227744,23775560.301016,267.807911,48692347496.481560,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,11,2048,2048,1,2048,20,100,5.460512,0.086170,5.181760,23767084.511357,267.712440,48674989079.259010,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,11,2048,2048,1,2048,20,100,5.495712,0.085627,5.230432,23917723.634899,269.409239,48983498004.272469,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,11,2048,2048,1,2048,20,100,5.466432,0.085647,5.986368,23912001.888060,269.344789,48971779866.747681,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,11,2048,2048,1,2048,20,100,5.465696,0.085617,5.732224,23920585.535280,269.441475,48989359176.253975,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,11,2048,2048,1,2048,20,100,5.459360,0.085504,5.882464,23952097.091778,269.796422,49053894843.960938,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,11,2048,2048,1,2048,20,100,5.476224,0.085699,5.707360,23897717.801345,269.183893,48942526057.153610,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,11,2048,2048,1,2048,20,100,5.477472,0.088945,5.659168,23025559.331433,259.359900,47156345510.774338,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,11,2048,2048,1,2048,20,100,5.470240,0.089057,5.859680,22996435.135889,259.031845,47096699158.300636,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,11,2048,2048,1,2048,20,100,5.496448,0.089057,6.048960,22996435.135889,259.031845,47096699158.300636,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,11,2048,2048,1,2048,20,100,5.464864,0.088934,5.676448,23028209.767075,259.389755,47161773602.968956,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,11,2048,2048,1,2048,20,100,5.500608,0.089078,5.758208,22991149.489612,258.972308,47085874154.726059,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,11,2048,2048,1,2048,20,100,5.469696,0.108134,5.944416,18939393.269491,213.333326,38787877415.918388,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,11,2048,2048,1,2048,20,100,5.466592,0.108411,5.678688,18891092.855019,212.789270,38688958167.079407,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,11,2048,2048,1,2048,20,100,5.515072,0.108032,7.168800,18957346.744636,213.535554,38824646133.015411,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,11,2048,2048,1,2048,20,100,5.458336,0.108534,5.184608,18869704.272660,212.548349,38645154350.407608,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,11,2048,2048,1,2048,20,100,5.474912,0.108554,5.752320,18866145.295820,212.508261,38637865565.838837,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.464832,0.089928,5.661024,11386927.706792,279.845135,46640855887.018684,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.466656,0.090061,5.766592,11370096.606186,279.431494,46571915698.936348,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.457472,0.089836,5.182144,11398609.736547,280.132233,46688705480.896362,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.458560,0.089846,5.234016,11397310.024618,280.100291,46683381860.833336,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.463104,0.089989,5.211776,11379153.608732,279.654079,46609013181.365501,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.487232,0.089600,5.193952,11428571.836073,280.868581,46811430240.553314,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.493312,0.089385,5.996448,11456066.224302,281.544284,46924047254.741875,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.474368,0.089436,5.651200,11449507.858351,281.383105,46897184187.805351,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.493280,0.089559,6.545472,11433798.184771,280.997024,46832837364.821548,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.475424,0.089508,5.713152,11440338.560686,281.157760,46859626744.568108,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.466816,0.089068,5.687232,11496896.004497,282.547716,47091286034.420013,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.476864,0.088955,6.188224,11511453.788749,282.905488,47150914718.717865,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.479616,0.089119,6.011264,11490290.820271,282.385387,47064231199.830925,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.465248,0.088986,5.757600,11507480.880054,282.807850,47134641684.702675,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.467744,0.088975,5.700736,11508803.914497,282.840365,47140060833.779335,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.467712,0.093696,5.686400,10928961.090487,268.590148,44765024626.635010,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.464672,0.093829,5.810272,10913456.557339,268.209108,44701518058.859901,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.473472,0.093768,6.181600,10920607.159234,268.384842,44730806924.222374,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.468864,0.093624,5.648032,10937329.553305,268.795811,44799301850.336815,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.502688,0.093860,6.110176,10909883.900774,268.121307,44686884457.568649,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,13,8192,512,1,8192,20,100,5.464352,0.096881,5.662720,5284853.767244,281.407893,43293522061.264931,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,13,8192,512,1,8192,20,100,5.495840,0.097178,5.180352,5268703.771392,280.547938,43161221295.240944,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,13,8192,512,1,8192,20,100,5.502944,0.096666,5.242208,5296610.254306,282.033903,43389831203.277084,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,13,8192,512,1,8192,20,100,5.490144,0.096481,5.317632,5306729.012661,282.572706,43472724071.721703,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,13,8192,512,1,8192,20,100,5.494752,0.096113,5.295712,5327082.960802,283.656513,43639463614.886795,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,13,8192,512,1,8192,20,100,5.500032,0.121928,5.236352,4199210.597148,223.599566,34399933211.835899,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,13,8192,512,1,8192,20,100,5.465952,0.121897,5.517568,4200268.822674,223.655914,34408602195.348579,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,13,8192,512,1,8192,20,100,5.465504,0.121836,5.796864,4202387.131596,223.768710,34425955382.032555,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,13,8192,512,1,8192,20,100,5.464448,0.121764,5.770688,4204860.808135,223.900428,34446219740.240913,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,13,8192,512,1,8192,20,100,5.507808,0.121836,5.677248,4202387.131596,223.768710,34425955382.032555,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,13,8192,512,1,8192,20,100,5.516192,0.100157,6.741664,5111951.758043,272.201207,41877108801.886261,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,13,8192,512,1,8192,20,100,5.472704,0.100168,5.659904,5111428.938361,272.173368,41872825863.053864,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,13,8192,512,1,8192,20,100,5.466656,0.100157,5.683008,5111951.758043,272.201207,41877108801.886261,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,13,8192,512,1,8192,20,100,5.514720,0.100116,5.586176,5114042.964986,272.312560,41894239969.163101,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,13,8192,512,1,8192,20,100,5.479872,0.100137,6.514528,5112997.337903,272.256882,41885674192.099121,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,13,8192,512,1,8192,20,100,5.468192,0.122573,5.719456,4177109.371865,222.422720,34218879974.316662,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,13,8192,512,1,8192,20,100,5.384352,0.122481,5.788544,4180252.544411,222.590087,34244628843.810841,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,13,8192,512,1,8192,20,100,5.516000,0.122644,6.425984,4174667.976262,222.292720,34198880061.538673,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,13,8192,512,1,8192,20,100,5.491840,0.122604,5.715840,4176062.782404,222.366991,34210306313.457226,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,13,8192,512,1,8192,20,100,5.506688,0.122644,6.788960,4174667.976262,222.292720,34198880061.538673,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.464672,0.135619,5.771712,1887647.132556,216.490474,30927210619.805195,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.457984,0.135608,5.180096,1887789.838822,216.506841,30929548719.266151,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.460768,0.135854,5.215072,1884374.760023,216.115172,30873596068.214005,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.482080,0.135557,6.103456,1888502.863555,216.588616,30941230916.484444,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.457952,0.135229,5.177088,1893078.923921,217.113436,31016205089.518192,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,14,16384,256,1,16384,20,100,5.563744,0.134257,5.246816,1906795.734561,218.686589,31240941315.046009,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,14,16384,256,1,16384,20,100,5.564384,0.134369,5.666688,1905197.322944,218.503271,31214752939.122601,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,14,16384,256,1,16384,20,100,5.680480,0.134267,5.166880,1906650.352067,218.669916,31238559368.267548,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,14,16384,256,1,16384,20,100,5.576864,0.134472,5.180640,1903746.506798,218.336879,31190982767.378799,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,14,16384,256,1,16384,20,100,5.562560,0.133960,5.754368,1911022.768041,219.171379,31310197031.580170,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,14,16384,256,1,16384,20,100,5.560448,0.131625,5.689312,1944919.988122,223.058984,31865569085.392265,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,14,16384,256,1,16384,20,100,5.566432,0.131615,5.755936,1945071.045336,223.076308,31868044006.792633,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,14,16384,256,1,16384,20,100,5.565984,0.131512,6.090592,1946585.776310,223.250030,31892861359.055355,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,14,16384,256,1,16384,20,100,5.561120,0.131963,5.657408,1939939.466653,222.487778,31783968221.636269,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,14,16384,256,1,16384,20,100,5.561440,0.131983,5.680128,1939638.529463,222.453264,31779037666.718563,0.000000,-1 diff --git a/results/fft_direct_units_v100_summary.csv b/results/fft_direct_units_v100_summary.csv new file mode 100644 index 0000000..0504804 --- /dev/null +++ b/results/fft_direct_units_v100_summary.csv @@ -0,0 +1,16 @@ +rank,operator,precision,direction,normalization,placement,logN,N,batch,element_stride,batch_stride,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,stage_handoff,trials,median_kernel_ms,min_kernel_ms,max_kernel_ms,median_Gbutterfly_s,slowdown_vs_best +1,fft,fp32,forward,none,out-of-place,11,2048,2048,1,2048,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,256,0,0,0,0,named-barrier,5,0.085627,0.085504,0.085699,269.409239,1.000000 +2,fft,fp32,forward,none,out-of-place,11,2048,2048,1,2048,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.086170,0.086139,0.086282,267.712440,1.006341 +3,fft,fp32,forward,none,out-of-place,11,2048,2048,1,2048,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,512,0,0,0,0,named-barrier,5,0.089057,0.088934,0.089078,259.031845,1.040057 +4,fft,fp32,forward,none,out-of-place,11,2048,2048,1,2048,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,1024,0,0,0,0,named-barrier,5,0.108411,0.108032,0.108554,212.789270,1.266084 +1,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,512,0,0,0,0,named-barrier,5,0.088986,0.088955,0.089119,282.807850,1.000000 +2,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,256,0,0,0,0,named-barrier,5,0.089508,0.089385,0.089600,281.157760,1.005866 +3,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.089928,0.089836,0.090061,279.845135,1.010586 +4,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,1024,0,0,0,0,named-barrier,5,0.093768,0.093624,0.093860,268.384842,1.053739 +1,fft,fp32,forward,none,out-of-place,13,8192,512,1,8192,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.096666,0.096113,0.097178,282.033903,1.000000 +2,fft,fp32,forward,none,out-of-place,13,8192,512,1,8192,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,512,0,0,0,0,named-barrier,5,0.100157,0.100116,0.100168,272.201207,1.036114 +3,fft,fp32,forward,none,out-of-place,13,8192,512,1,8192,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,256,0,0,0,0,named-barrier,5,0.121836,0.121764,0.121928,223.768710,1.260381 +4,fft,fp32,forward,none,out-of-place,13,8192,512,1,8192,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,1024,0,0,0,0,named-barrier,5,0.122604,0.122481,0.122644,222.366991,1.268326 +1,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,1024,0,0,0,0,named-barrier,5,0.131625,0.131512,0.131983,223.058984,1.000000 +2,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,512,0,0,0,0,named-barrier,5,0.134267,0.133960,0.134472,218.669916,1.020072 +3,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.135608,0.135229,0.135854,216.506841,1.030260 diff --git a/results/fft_libraries_v100_raw.csv b/results/fft_libraries_v100_raw.csv new file mode 100644 index 0000000..fbb7a49 --- /dev/null +++ b/results/fft_libraries_v100_raw.csv @@ -0,0 +1,31 @@ +trial,device,compute_capability,library,library_version,precision,direction,placement,logN,N,batch,warmup,repeat,plan_ms,kernel_ms,transforms_s,Gbutterfly_s,points_s,max_abs_error,relative_l2_error,correct +1,"Tesla V100-SXM2-16GB",7.0,cufft,10900,fp32,forward,in-place,3,8,524288,20,100,0.368061000,0.087992318,5958338319.392107964,71.500059833,47666706555.136863708,0.000000000,0.000000000,1 +1,"Tesla V100-SXM2-16GB",7.0,vkfft,10304,fp32,forward,in-place,3,8,524288,20,100,171.952373000,0.083732478,6261465210.579137802,75.137582527,50091721684.633102417,0.000001066,0.000000053,1 +1,"Tesla V100-SXM2-16GB",7.0,cufft,10900,fp32,forward,in-place,8,256,16384,20,100,0.383828000,0.084131844,194741956.843902975,199.415763808,49853940952.039161682,0.000000000,0.000000000,1 +1,"Tesla V100-SXM2-16GB",7.0,vkfft,10304,fp32,forward,in-place,8,256,16384,20,100,208.151196000,0.084162563,194670877.398835063,199.342978456,49835744614.101776123,0.000017278,0.000000267,1 +1,"Tesla V100-SXM2-16GB",7.0,cufft,10900,fp32,forward,in-place,12,4096,1024,20,100,0.380693000,0.089702398,11415525.421498895,280.547952759,46757992126.459472656,0.000000000,0.000000000,1 +1,"Tesla V100-SXM2-16GB",7.0,vkfft,10304,fp32,forward,in-place,12,4096,1024,20,100,224.504207000,0.088483840,11572734.607488990,284.411525714,47401920952.274902344,0.000130371,0.000000466,1 +1,"Tesla V100-SXM2-16GB",7.0,cufft,10900,fp32,forward,in-place,16,65536,64,20,100,0.489306000,0.180951044,353686.823784965,185.433757469,23179219683.571487427,0.000000000,0.000000000,1 +1,"Tesla V100-SXM2-16GB",7.0,vkfft,10304,fp32,forward,in-place,16,65536,64,20,100,427.908486000,0.195676148,327071.033820392,171.479418180,21434927272.453235626,0.000587017,0.000000538,1 +1,"Tesla V100-SXM2-16GB",7.0,cufft,10900,fp32,forward,in-place,20,1048576,4,20,100,0.462412000,0.223221764,17919.399653902,187.898524115,18789852411.490158081,0.000000000,0.000000000,1 +1,"Tesla V100-SXM2-16GB",7.0,vkfft,10304,fp32,forward,in-place,20,1048576,4,20,100,802.827694000,0.217251837,18411.812072877,193.061842561,19306184256.129077911,0.002894508,0.000000675,1 +2,"Tesla V100-SXM2-16GB",7.0,cufft,10900,fp32,forward,in-place,3,8,524288,20,100,0.371228000,0.088002555,5957645202.110518456,71.491742425,47661161616.884147644,0.000000000,0.000000000,1 +2,"Tesla V100-SXM2-16GB",7.0,vkfft,10304,fp32,forward,in-place,3,8,524288,20,100,171.766682000,0.083609603,6270667232.257379532,75.248006787,50165337858.059036255,0.000001066,0.000000053,1 +2,"Tesla V100-SXM2-16GB",7.0,cufft,10900,fp32,forward,in-place,8,256,16384,20,100,0.372669000,0.084070399,194884288.836908489,199.561511769,49890377942.248573303,0.000000000,0.000000000,1 +2,"Tesla V100-SXM2-16GB",7.0,vkfft,10304,fp32,forward,in-place,8,256,16384,20,100,207.817950000,0.084152319,194694576.273029208,199.367246104,49841811525.895477295,0.000017278,0.000000267,1 +2,"Tesla V100-SXM2-16GB",7.0,cufft,10900,fp32,forward,in-place,12,4096,1024,20,100,0.401756000,0.089743353,11410315.760477517,280.419920129,46736653354.915908813,0.000000000,0.000000000,1 +2,"Tesla V100-SXM2-16GB",7.0,vkfft,10304,fp32,forward,in-place,12,4096,1024,20,100,225.231747000,0.088586241,11559357.168353092,284.082761769,47347126961.574264526,0.000130371,0.000000466,1 +2,"Tesla V100-SXM2-16GB",7.0,cufft,10900,fp32,forward,in-place,16,65536,64,20,100,0.515231000,0.180582404,354408.837926243,185.812300819,23226537602.334247589,0.000000000,0.000000000,1 +2,"Tesla V100-SXM2-16GB",7.0,vkfft,10304,fp32,forward,in-place,16,65536,64,20,100,331.689267000,0.195911676,326677.824453638,171.273263227,21409157903.393596649,0.000587017,0.000000538,1 +2,"Tesla V100-SXM2-16GB",7.0,cufft,10900,fp32,forward,in-place,20,1048576,4,20,100,0.523313000,0.223621115,17887.398506253,187.562967761,18756296776.092742920,0.000000000,0.000000000,1 +2,"Tesla V100-SXM2-16GB",7.0,vkfft,10304,fp32,forward,in-place,20,1048576,4,20,100,1058.996867000,0.217395186,18399.671426919,192.934538662,19293453866.152530670,0.002894508,0.000000675,1 +3,"Tesla V100-SXM2-16GB",7.0,cufft,10900,fp32,forward,in-place,3,8,524288,20,100,0.383920000,0.088002555,5957645202.110518456,71.491742425,47661161616.884147644,0.000000000,0.000000000,1 +3,"Tesla V100-SXM2-16GB",7.0,vkfft,10304,fp32,forward,in-place,3,8,524288,20,100,151.215326000,0.083558396,6274510141.460673332,75.294121698,50196081131.685386658,0.000001066,0.000000053,1 +3,"Tesla V100-SXM2-16GB",7.0,cufft,10900,fp32,forward,in-place,8,256,16384,20,100,0.393567000,0.084131844,194741956.843902975,199.415763808,49853940952.039161682,0.000000000,0.000000000,1 +3,"Tesla V100-SXM2-16GB",7.0,vkfft,10304,fp32,forward,in-place,8,256,16384,20,100,270.144495000,0.084152319,194694576.273029208,199.367246104,49841811525.895477295,0.000017278,0.000000267,1 +3,"Tesla V100-SXM2-16GB",7.0,cufft,10900,fp32,forward,in-place,12,4096,1024,20,100,0.398309000,0.089702398,11415525.421498895,280.547952759,46757992126.459472656,0.000000000,0.000000000,1 +3,"Tesla V100-SXM2-16GB",7.0,vkfft,10304,fp32,forward,in-place,12,4096,1024,20,100,224.401001000,0.088514559,11568718.320523107,284.312821445,47385470240.862648010,0.000130371,0.000000466,1 +3,"Tesla V100-SXM2-16GB",7.0,cufft,10900,fp32,forward,in-place,16,65536,64,20,100,0.479760000,0.180633605,354308.381144018,185.759632533,23219954066.654369354,0.000000000,0.000000000,1 +3,"Tesla V100-SXM2-16GB",7.0,vkfft,10304,fp32,forward,in-place,16,65536,64,20,100,331.073594000,0.195727363,326985.450292846,171.434547763,21429318470.391986847,0.000587017,0.000000538,1 +3,"Tesla V100-SXM2-16GB",7.0,cufft,10900,fp32,forward,in-place,20,1048576,4,20,100,0.493612000,0.223518714,17895.593272226,187.648896110,18764889611.017322540,0.000000000,0.000000000,1 +3,"Tesla V100-SXM2-16GB",7.0,vkfft,10304,fp32,forward,in-place,20,1048576,4,20,100,803.383565000,0.216883197,18443.106923256,193.389992852,19338999285.159896851,0.002894508,0.000000675,1 diff --git a/results/fft_library_comparison_v100_summary.csv b/results/fft_library_comparison_v100_summary.csv new file mode 100644 index 0000000..49dcfda --- /dev/null +++ b/results/fft_library_comparison_v100_summary.csv @@ -0,0 +1,6 @@ +logN,N,batch,cubutterfly_backend,cubutterfly_median_ms,cufft_median_ms,vkfft_median_ms,cubutterfly_vs_cufft_throughput,cubutterfly_vs_vkfft_throughput,vkfft_vs_cufft_throughput,trials,correct +3,8,524288,temporal-tile,0.091310000,0.088002555,0.083609603,0.963778,0.915668,1.052541,3,1 +8,256,16384,temporal-tile,0.096082000,0.084131844,0.084152319,0.875625,0.875839,0.999757,3,1 +12,4096,1024,online-reorder,0.268278000,0.089702398,0.088514559,0.334364,0.329936,1.013420,3,1 +16,65536,64,online-reorder,0.418406000,0.180633605,0.195727363,0.431718,0.467793,0.922884,3,1 +20,1048576,4,online-reorder,0.639795000,0.223518714,0.217251837,0.349360,0.339565,1.028846,3,1 diff --git a/results/fft_persistent_logN14_v100_raw.csv b/results/fft_persistent_logN14_v100_raw.csv new file mode 100644 index 0000000..280ed62 --- /dev/null +++ b/results/fft_persistent_logN14_v100_raw.csv @@ -0,0 +1,81 @@ +trial,device,compute_capability,operator,precision,direction,normalization,placement,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,stage_handoff,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,logN,N,batch,element_stride,batch_stride,warmup,repeat,h2d_ms,kernel_ms,d2h_ms,transforms_s,Gbutterfly_s,points_s,max_error,correct +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,5,1,0,0,14,16384,256,1,16384,20,100,5.598240,0.606618,5.128672,422012.174874,48.399732,6914247473.131425,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,5,1,0,0,14,16384,256,1,16384,20,100,5.557632,0.552499,5.107232,463349.108108,53.140583,7591511787.244868,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,5,1,0,0,14,16384,256,1,16384,20,100,5.589888,0.522209,5.109440,490224.908911,56.222914,8031844907.598920,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,5,1,0,0,14,16384,256,1,16384,20,100,5.565152,0.523418,5.104768,489093.228598,56.093124,8013303457.347672,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,5,1,0,0,14,16384,256,1,16384,20,100,5.569120,0.522025,5.118784,490398.035653,56.242770,8034681416.132335,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,7,1,0,0,14,16384,256,1,16384,20,100,5.573056,0.475822,5.114176,538016.247713,61.704007,8814858202.535284,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,7,1,0,0,14,16384,256,1,16384,20,100,5.565312,0.475740,5.111712,538108.865076,61.714630,8816375645.403728,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,7,1,0,0,14,16384,256,1,16384,20,100,5.555008,0.475668,5.112000,538189.948290,61.723929,8817704112.775398,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,7,1,0,0,14,16384,256,1,16384,20,100,5.524224,0.475771,5.104576,538074.146681,61.710648,8815806819.219553,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,7,1,0,0,14,16384,256,1,16384,20,100,5.539168,0.475750,5.109888,538097.303016,61.713303,8816186212.609814,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,9,1,0,0,14,16384,256,1,16384,20,100,5.530048,0.808929,5.114400,316467.720010,36.295050,5185007124.642590,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,9,1,0,0,14,16384,256,1,16384,20,100,5.529920,0.808980,5.100928,316447.690762,36.292753,5184678965.437607,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,9,1,0,0,14,16384,256,1,16384,20,100,5.527328,0.808960,5.109824,316455.688167,36.293670,5184809994.922966,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,9,1,0,0,14,16384,256,1,16384,20,100,5.546656,0.808980,5.112352,316447.690762,36.292753,5184678965.437607,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,9,1,0,0,14,16384,256,1,16384,20,100,5.563392,0.809052,5.108864,316419.668060,36.289539,5184219841.488673,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.498880,0.122491,5.114016,2089951.464096,239.692354,34241764787.754688,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.490592,0.122481,5.115360,2090126.272205,239.712402,34244628843.810841,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.473344,0.122307,5.119456,2093101.215494,240.053592,34293370314.659107,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.481184,0.122491,5.120032,2089951.464096,239.692354,34241764787.754688,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,14,16384,256,1,16384,20,100,5.459232,0.122358,5.106784,2092225.360936,239.953142,34279020313.575085,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,14,16384,256,1,16384,20,100,5.566624,0.213883,5.124864,1196916.751298,137.271988,19610284053.265850,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,14,16384,256,1,16384,20,100,5.571328,0.213842,5.115936,1197146.031187,137.298284,19614040574.964489,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,14,16384,256,1,16384,20,100,5.568160,0.213658,5.116736,1198178.753311,137.416725,19630960694.252655,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,14,16384,256,1,16384,20,100,5.548128,0.213729,5.109312,1197776.857910,137.370632,19624376040.003544,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,14,16384,256,1,16384,20,100,5.556544,0.213842,5.119296,1197146.031187,137.298284,19614040574.964489,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,14,16384,256,1,16384,20,100,5.550240,0.203418,5.112032,1258494.845113,144.334257,20619179542.333363,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,14,16384,256,1,16384,20,100,5.583552,0.203489,5.120704,1258051.476080,144.283408,20611915384.091679,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,14,16384,256,1,16384,20,100,5.536032,0.203407,5.108544,1258558.182716,144.341521,20620217265.619846,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,14,16384,256,1,16384,20,100,5.582496,0.203510,5.126048,1257924.909219,144.268892,20609841712.643101,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,5,1,0,0,14,16384,256,1,16384,20,100,5.582688,0.203469,5.116256,1258178.160556,144.297937,20613990982.547661,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,7,1,0,0,14,16384,256,1,16384,20,100,5.576160,0.271340,5.106048,943467.480493,108.204398,15457771200.400499,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,7,1,0,0,14,16384,256,1,16384,20,100,5.576512,0.271186,5.107872,944001.865599,108.265686,15466526565.978376,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,7,1,0,0,14,16384,256,1,16384,20,100,5.586528,0.271217,5.119360,943894.919411,108.253421,15464774359.633076,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,7,1,0,0,14,16384,256,1,16384,20,100,5.568896,0.271391,5.102688,943289.382961,108.183973,15454853250.433929,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,7,1,0,0,14,16384,256,1,16384,20,100,5.568672,0.271708,5.112640,942187.380011,108.057586,15436798034.107002,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,7,1,0,0,14,16384,256,1,16384,20,100,5.572064,0.271155,5.115296,944108.732259,108.277942,15468277469.330574,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,7,1,0,0,14,16384,256,1,16384,20,100,5.590560,0.272138,5.109856,940698.381548,107.886816,15412402283.289259,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,7,1,0,0,14,16384,256,1,16384,20,100,5.546368,0.271964,5.101824,941300.491814,107.955871,15422267257.881809,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,7,1,0,0,14,16384,256,1,16384,20,100,5.559264,0.272036,5.116256,941052.482864,107.927427,15418203879.239370,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,7,1,0,0,14,16384,256,1,16384,20,100,5.540224,0.271882,5.108064,941584.134965,107.988401,15426914467.262987,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,9,1,0,0,14,16384,256,1,16384,20,100,5.565632,0.231782,5.109760,1104484.245582,126.671089,18095869879.620972,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,9,1,0,0,14,16384,256,1,16384,20,100,5.548160,0.232591,5.101120,1100642.771560,126.230518,18032931169.239788,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,9,1,0,0,14,16384,256,1,16384,20,100,5.564096,0.232182,5.106848,1102584.468946,126.453208,18064743939.214916,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,9,1,0,0,14,16384,256,1,16384,20,100,5.548736,0.231578,5.104032,1105460.953316,126.783106,18111872259.131287,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,9,1,0,0,14,16384,256,1,16384,20,100,5.563296,0.231250,5.122976,1107027.369430,126.962755,18137536420.746803,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,9,1,0,0,14,16384,256,1,16384,20,100,5.569280,0.228936,5.113888,1118218.037906,128.246190,18320884333.044319,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,9,1,0,0,14,16384,256,1,16384,20,100,5.560864,0.229304,5.108096,1116420.340788,128.040016,18291430863.464520,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,9,1,0,0,14,16384,256,1,16384,20,100,5.567648,0.229038,5.112704,1117718.020367,128.188844,18312692045.694324,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,9,1,0,0,14,16384,256,1,16384,20,100,5.538496,0.228987,5.108032,1117968.009603,128.217515,18316787869.333664,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,9,1,0,0,14,16384,256,1,16384,20,100,5.528160,0.229437,5.108864,1115772.557839,127.965723,18280817587.635639,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,256,7,1,0,0,14,16384,256,1,16384,20,100,5.551424,0.315269,5.103232,812004.696240,93.127195,13303884943.194027,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,256,7,1,0,0,14,16384,256,1,16384,20,100,5.558720,0.315412,5.101504,811635.578331,93.084861,13297837315.369501,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,256,7,1,0,0,14,16384,256,1,16384,20,100,5.536896,0.315433,5.101760,811582.896502,93.078819,13296974176.286972,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,256,7,1,0,0,14,16384,256,1,16384,20,100,5.564224,0.315372,5.108256,811741.039218,93.096956,13299565186.545750,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,256,7,1,0,0,14,16384,256,1,16384,20,100,5.535040,0.315331,5.111264,811846.450786,93.109046,13301292249.683151,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,256,7,1,0,0,14,16384,256,1,16384,20,100,5.544064,0.289485,5.107712,884329.681439,101.422003,14488857500.699337,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,256,7,1,0,0,14,16384,256,1,16384,20,100,5.549536,0.289526,5.114464,884204.608357,101.407658,14486808303.323812,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,256,7,1,0,0,14,16384,256,1,16384,20,100,5.568800,0.289423,5.110304,884517.448501,101.443537,14491933876.239107,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,256,7,1,0,0,14,16384,256,1,16384,20,100,5.563264,0.289454,5.109024,884423.555004,101.432769,14490395525.187162,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,256,7,1,0,0,14,16384,256,1,16384,20,100,5.579520,0.289587,5.110432,884016.974078,101.386139,14483734103.301310,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,512,7,1,0,0,14,16384,256,1,16384,20,100,5.559616,0.261673,5.103520,978320.479957,112.201619,16028802743.615101,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,512,7,1,0,0,14,16384,256,1,16384,20,100,5.548224,0.261233,5.102880,979969.408750,112.390732,16055818792.959179,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,512,7,1,0,0,14,16384,256,1,16384,20,100,5.578080,0.261315,5.106272,979662.171591,112.355495,16050785019.349102,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,512,7,1,0,0,14,16384,256,1,16384,20,100,5.564672,0.261734,5.099808,978090.780952,112.175275,16025039355.111940,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,512,7,1,0,0,14,16384,256,1,16384,20,100,5.556736,0.261560,5.115360,978741.726436,112.249931,16035704445.928608,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,512,7,1,0,0,14,16384,256,1,16384,20,100,5.570880,0.236728,5.109792,1081408.401273,124.024567,17717795246.453529,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,512,7,1,0,0,14,16384,256,1,16384,20,100,5.562208,0.236933,5.111968,1080473.715484,123.917369,17702481354.495182,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,512,7,1,0,0,14,16384,256,1,16384,20,100,5.577984,0.236800,5.103776,1081081.080755,123.987027,17712432427.082382,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,512,7,1,0,0,14,16384,256,1,16384,20,100,5.565376,0.236749,5.105632,1081314.948406,124.013849,17716264114.676151,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,512,7,1,0,0,14,16384,256,1,16384,20,100,5.539488,0.236943,5.118592,1080426.965851,123.912008,17701715408.506130,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,1024,7,1,0,0,14,16384,256,1,16384,20,100,5.533024,0.259502,5.111264,986504.605197,113.140240,16162891451.548416,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,1024,7,1,0,0,14,16384,256,1,16384,20,100,5.521920,0.259246,5.111712,987478.764964,113.251965,16178852085.168451,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,1024,7,1,0,0,14,16384,256,1,16384,20,100,5.577152,0.258488,5.107360,990373.655261,113.583974,16226281967.790359,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,1024,7,1,0,0,14,16384,256,1,16384,20,100,5.576032,0.258355,5.114528,990883.867296,113.642489,16234641281.773758,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,1024,7,1,0,0,14,16384,256,1,16384,20,100,5.568288,0.258355,5.109248,990883.867296,113.642489,16234641281.773758,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,1024,7,1,0,0,14,16384,256,1,16384,20,100,5.574272,0.227502,5.109568,1125264.447936,129.054329,18436332714.978298,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,1024,7,1,0,0,14,16384,256,1,16384,20,100,5.572256,0.227922,5.112320,1123191.671111,128.816606,18402372339.478703,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,1024,7,1,0,0,14,16384,256,1,16384,20,100,5.571776,0.228024,5.109792,1122687.343440,128.758766,18394109434.922977,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,1024,7,1,0,0,14,16384,256,1,16384,20,100,5.558080,0.228024,5.110624,1122687.343440,128.758766,18394109434.922977,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,1024,7,1,0,0,14,16384,256,1,16384,20,100,5.520928,0.227768,5.105888,1123949.049523,128.903469,18414781227.386307,0.000000,-1 diff --git a/results/fft_persistent_logN14_v100_summary.csv b/results/fft_persistent_logN14_v100_summary.csv new file mode 100644 index 0000000..773d5a2 --- /dev/null +++ b/results/fft_persistent_logN14_v100_summary.csv @@ -0,0 +1,17 @@ +rank,operator,precision,direction,normalization,placement,logN,N,batch,element_stride,batch_stride,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,stage_handoff,trials,median_kernel_ms,min_kernel_ms,max_kernel_ms,median_Gbutterfly_s,slowdown_vs_best +1,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.122481,0.122307,0.122491,239.712402,1.000000 +2,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,32,5,1,0,0,named-barrier,5,0.203469,0.203407,0.203510,144.297937,1.661229 +3,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,32,5,1,0,0,named-barrier,5,0.213842,0.213658,0.213883,137.298284,1.745920 +4,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,1024,7,1,0,0,named-barrier,5,0.227922,0.227502,0.228024,128.816606,1.860876 +5,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,32,9,1,0,0,named-barrier,5,0.229038,0.228936,0.229437,128.188844,1.869988 +6,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,32,9,1,0,0,named-barrier,5,0.231782,0.231250,0.232591,126.671089,1.892391 +7,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,512,7,1,0,0,named-barrier,5,0.236800,0.236728,0.236943,123.987027,1.933361 +8,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,1024,7,1,0,0,named-barrier,5,0.258488,0.258355,0.259502,113.583974,2.110433 +9,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,512,7,1,0,0,named-barrier,5,0.261560,0.261233,0.261734,112.249931,2.135515 +10,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,32,7,1,0,0,named-barrier,5,0.271340,0.271186,0.271708,108.204398,2.215364 +11,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,32,7,1,0,0,named-barrier,5,0.271964,0.271155,0.272138,107.955871,2.220459 +12,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,256,7,1,0,0,named-barrier,5,0.289485,0.289423,0.289587,101.422003,2.363509 +13,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,256,7,1,0,0,named-barrier,5,0.315372,0.315269,0.315433,93.096956,2.574865 +14,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,radix4,four-mul,table,shared,scalar,0,256,7,1,0,0,named-barrier,5,0.475750,0.475668,0.475822,61.713303,3.884276 +15,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,radix4,four-mul,table,shared,scalar,0,256,5,1,0,0,named-barrier,5,0.523418,0.522025,0.606618,56.093124,4.273463 +16,fft,fp32,forward,none,out-of-place,14,16384,256,1,16384,online-reorder,radix4,four-mul,table,shared,scalar,0,256,9,1,0,0,named-barrier,5,0.808980,0.808929,0.809052,36.292753,6.604943 diff --git a/results/fft_processing_units_v100_raw.csv b/results/fft_processing_units_v100_raw.csv new file mode 100644 index 0000000..dd020a9 --- /dev/null +++ b/results/fft_processing_units_v100_raw.csv @@ -0,0 +1,406 @@ +trial,device,compute_capability,operator,precision,direction,normalization,placement,backend,compute_unit,complex_multiply,local_exchange,fft_core,stage_space,stage_handoff,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,logN,N,batch,element_stride,batch_stride,warmup,repeat,h2d_ms,kernel_ms,d2h_ms,transforms_s,Gbutterfly_s,points_s,max_error,correct +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,3,8,524288,1,8,20,100,5.492864,0.861778,5.103424,608379447.574894,7.300553,4867035580.599154,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,3,8,524288,1,8,20,100,5.492640,0.784476,5.104640,668328785.580420,8.019945,5346630284.643356,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,3,8,524288,1,8,20,100,5.495968,0.743424,5.109088,705234161.339289,8.462810,5641873290.714315,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,3,8,524288,1,8,20,100,5.469472,0.743014,5.121568,705622937.268650,8.467475,5644983498.149203,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,3,8,524288,1,8,20,100,5.494560,0.743127,5.113024,705515969.846650,8.466192,5644127758.773198,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,3,8,524288,1,8,20,100,5.477952,0.743147,5.106624,705496560.717218,8.465959,5643972485.737747,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,3,8,524288,1,8,20,100,5.478240,0.743178,5.118720,705467364.155098,8.465608,5643738913.240784,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,3,8,524288,1,8,20,100,5.475360,0.743178,5.111776,705467364.155098,8.465608,5643738913.240784,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,3,8,524288,1,8,20,100,5.484320,0.743189,5.127168,705457632.504731,8.465492,5643661060.037851,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,3,8,524288,1,8,20,100,5.455872,0.743229,5.106752,705418765.160348,8.465025,5643350121.282786,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,3,8,524288,1,8,20,100,5.462976,0.744305,5.110816,704399730.784409,8.452797,5635197846.275273,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,3,8,524288,1,8,20,100,5.456832,0.744325,5.104032,704380383.022242,8.452565,5635043064.177936,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,3,8,524288,1,8,20,100,5.460800,0.744325,5.114048,704380383.022242,8.452565,5635043064.177936,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,3,8,524288,1,8,20,100,5.465664,0.744284,5.106656,704419136.021608,8.453030,5635353088.172867,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,3,8,524288,1,8,20,100,5.461088,0.744294,5.106752,704409433.269364,8.452913,5635275466.154910,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,3,8,524288,1,8,20,100,5.463168,1.337508,5.104640,391988764.097275,4.703865,3135910112.778200,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,3,8,524288,1,8,20,100,5.457376,1.333647,5.109504,393123443.666310,4.717481,3144987549.330482,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,3,8,524288,1,8,20,100,5.459168,1.333617,5.108352,393132474.777082,4.717590,3145059798.216656,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,3,8,524288,1,8,20,100,5.458848,1.333555,5.106496,393150608.532601,4.717807,3145204868.260808,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,3,8,524288,1,8,20,100,5.457728,1.333678,5.105856,393114342.694296,4.717372,3144914741.554366,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,3,8,524288,1,8,20,100,5.469056,0.086344,5.115776,6072106553.579595,72.865279,48576852428.636757,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,3,8,524288,1,8,20,100,5.457792,0.086282,5.113088,6076429687.810320,72.917156,48611437502.482559,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,3,8,524288,1,8,20,100,5.489440,0.086313,5.118720,6074267089.320511,72.891205,48594136714.564087,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,3,8,524288,1,8,20,100,5.458048,0.086303,5.107264,6074988134.065131,72.899858,48599905072.521049,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,3,8,524288,1,8,20,100,5.487936,0.086333,5.116320,6072826561.367711,72.873919,48582612490.941689,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,3,8,524288,1,8,20,100,5.458144,0.090767,5.110528,5776173207.325963,69.314078,46209385658.607704,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,3,8,524288,1,8,20,100,5.455296,0.090655,5.104320,5783350538.580658,69.400206,46266804308.645264,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,3,8,524288,1,8,20,100,5.459840,0.090860,5.106880,5770314598.677913,69.243775,46162516789.423302,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,3,8,524288,1,8,20,100,5.456864,0.090849,5.107840,5770965283.761467,69.251583,46167722270.091736,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,3,8,524288,1,8,20,100,5.459904,0.090798,5.112192,5774219016.389655,69.290628,46193752131.117241,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,3,8,524288,1,8,20,100,5.482592,0.091771,5.106176,5713010493.442910,68.556126,45704083947.543282,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,3,8,524288,1,8,20,100,5.458944,0.091720,5.107232,5716199185.085011,68.594390,45729593480.680092,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,3,8,524288,1,8,20,100,5.466592,0.091853,5.110464,5707915331.672869,68.494984,45663322653.382950,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,3,8,524288,1,8,20,100,5.483968,0.093563,5.110112,5603589879.472013,67.243079,44828719035.776100,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,3,8,524288,1,8,20,100,5.457824,0.093604,5.103680,5601137613.791924,67.213651,44809100910.335388,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,3,8,524288,1,8,20,100,5.453408,0.096788,5.101376,5416842947.060250,65.002115,43334743576.482002,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,3,8,524288,1,8,20,100,5.465504,0.096707,5.102688,5421431498.999325,65.057178,43371451991.994598,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,3,8,524288,1,8,20,100,5.456512,0.096666,5.101792,5423728900.409636,65.084747,43389831203.277084,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,3,8,524288,1,8,20,100,5.462464,0.096748,5.102560,5419136043.047052,65.029633,43353088344.376419,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,3,8,524288,1,8,20,100,5.460224,0.096737,5.107520,5419709933.493112,65.036519,43357679467.944893,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,3,8,524288,1,8,20,100,5.454944,0.099277,5.101280,5281072535.228279,63.372870,42248580281.826233,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,3,8,524288,1,8,20,100,5.468768,0.099318,5.106208,5278894769.927302,63.346737,42231158159.418419,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,3,8,524288,1,8,20,100,5.483200,0.099308,5.119200,5279439339.919808,63.353272,42235514719.358467,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,3,8,524288,1,8,20,100,5.465120,0.099533,5.113792,5267489427.043371,63.209873,42139915416.346970,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,3,8,524288,1,8,20,100,5.465984,0.099441,5.110304,5272371447.232525,63.268457,42178971577.860199,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,3,8,524288,1,8,20,100,5.460768,0.149105,5.113664,3516242018.990744,42.194904,28129936151.925953,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,3,8,524288,1,8,20,100,5.494304,0.149463,5.119232,3507810297.586661,42.093724,28062482380.693291,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,3,8,524288,1,8,20,100,5.386784,0.149043,5.110688,3517691458.294041,42.212297,28141531666.352329,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,3,8,524288,1,8,20,100,5.463584,0.149279,5.105952,3512141694.895101,42.145700,28097133559.160805,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,3,8,524288,1,8,20,100,5.539168,0.149443,5.107680,3508291230.644177,42.099495,28066329845.153416,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,4,16,262144,1,16,20,100,5.492864,0.433224,5.103712,605100790.399939,19.363225,9681612646.399031,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,4,16,262144,1,16,20,100,5.483520,0.385290,5.096928,680380596.224608,21.772179,10886089539.593733,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,4,16,262144,1,16,20,100,5.474816,0.382372,5.102592,685573546.603583,21.938353,10969176745.657320,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,4,16,262144,1,16,20,100,5.484416,0.382362,5.119936,685591874.981040,21.938940,10969469999.696648,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,4,16,262144,1,16,20,100,5.481920,0.382372,5.105824,685573546.603583,21.938353,10969176745.657320,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,4,16,262144,1,16,20,100,5.464064,0.382495,5.100960,685353201.889236,21.931302,10965651230.227777,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,4,16,262144,1,16,20,100,5.479776,0.382484,5.108960,685371625.292065,21.931892,10965946004.673037,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,4,16,262144,1,16,20,100,5.461280,0.382423,5.100352,685481705.734762,21.935415,10967707291.756197,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,4,16,262144,1,16,20,100,5.468288,0.374620,5.104224,699759440.125815,22.392302,11196151042.013046,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,4,16,262144,1,16,20,100,5.468448,0.374569,5.103104,699855091.285170,22.395363,11197681460.562716,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,4,16,262144,1,16,20,100,5.460384,0.456212,5.099584,574609469.080314,18.387503,9193751505.285030,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,4,16,262144,1,16,20,100,5.459072,0.454543,5.102528,576719467.512338,18.455023,9227511480.197411,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,4,16,262144,1,16,20,100,5.476800,0.454574,5.101312,576680485.099333,18.453776,9226887761.589329,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,4,16,262144,1,16,20,100,5.461120,0.454574,5.102944,576680485.099333,18.453776,9226887761.589329,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,4,16,262144,1,16,20,100,5.475296,0.454554,5.098880,576706460.185383,18.454607,9227303362.966133,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,4,16,262144,1,16,20,100,5.460032,0.967598,5.103872,270922389.262815,8.669516,4334758228.205039,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,4,16,262144,1,16,20,100,5.463296,0.967588,5.107424,270925276.488333,8.669609,4334804423.813329,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,4,16,262144,1,16,20,100,5.467200,0.967547,5.105152,270936759.242770,8.669976,4334988147.884319,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,4,16,262144,1,16,20,100,5.457536,0.967598,5.097696,270922389.262815,8.669516,4334758228.205039,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,4,16,262144,1,16,20,100,5.467424,0.967608,5.102976,270919535.476101,8.669425,4334712567.617610,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,4,16,262144,1,16,20,100,5.459936,0.084204,5.107648,3113219059.490400,99.623010,49811504951.846397,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,4,16,262144,1,16,20,100,5.466144,0.084214,5.105248,3112840338.462246,99.610891,49805445415.395943,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,4,16,262144,1,16,20,100,5.458816,0.084316,5.105472,3109060112.970160,99.489924,49744961807.522552,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,4,16,262144,1,16,20,100,5.458656,0.084285,5.100256,3110193243.713381,99.526184,49763091899.414101,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,4,16,262144,1,16,20,100,5.467264,0.084265,5.110784,3110949214.877543,99.550375,49775187438.040695,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,4,16,262144,1,16,20,100,5.481408,0.102779,5.104768,2550562872.828993,81.618012,40809005965.263885,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,4,16,262144,1,16,20,100,5.475488,0.103086,5.109312,2542962051.754339,81.374786,40687392828.069427,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,4,16,262144,1,16,20,100,5.449248,0.103076,5.097280,2543214792.820756,81.382873,40691436685.132103,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,4,16,262144,1,16,20,100,5.453536,0.103086,5.101472,2542962051.754339,81.374786,40687392828.069427,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,4,16,262144,1,16,20,100,5.449504,0.103117,5.098880,2542204680.921571,81.350550,40675274894.745140,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,4,16,262144,1,16,20,100,5.454496,0.102154,5.101472,2566158967.930718,82.117087,41058543486.891495,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,4,16,262144,1,16,20,100,5.450432,0.102072,5.098272,2568218088.989159,82.182979,41091489423.826546,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,4,16,262144,1,16,20,100,5.506976,0.101990,5.104576,2570281080.525856,82.248995,41124497288.413696,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,4,16,262144,1,16,20,100,5.452864,0.102021,5.100576,2569507164.246253,82.224229,41112114627.940041,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,4,16,262144,1,16,20,100,5.462432,0.102154,5.108000,2566158967.930718,82.117087,41058543486.891495,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,4,16,262144,1,16,20,100,5.449440,0.104448,5.098592,2509803788.036814,80.313721,40156860608.589027,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,4,16,262144,1,16,20,100,5.460992,0.104530,5.128064,2507836878.057793,80.250780,40125390048.924683,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,4,16,262144,1,16,20,100,5.472800,0.104294,5.109024,2513500319.280031,80.432010,40216005108.480499,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,4,16,262144,1,16,20,100,5.515872,0.104253,5.116736,2514487744.919980,80.463608,40231803918.719673,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,4,16,262144,1,16,20,100,5.474688,0.104387,5.103264,2511281130.883371,80.360996,40180498094.133934,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,4,16,262144,1,16,20,100,5.491328,0.107459,5.115392,2439489194.283180,78.063654,39031827108.530884,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,4,16,262144,1,16,20,100,5.467872,0.107551,5.110016,2437398886.239642,77.996764,38998382179.834274,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,4,16,262144,1,16,20,100,5.462144,0.107602,5.108064,2436239094.897448,77.959651,38979825518.359161,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,4,16,262144,1,16,20,100,5.452352,0.107561,5.100064,2437166738.347870,77.989336,38994667813.565918,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,4,16,262144,1,16,20,100,5.462496,0.107448,5.108288,2439721784.849519,78.071097,39035548557.592300,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,4,16,262144,1,16,20,100,5.452928,0.099123,5.100416,2644628038.761310,84.628097,42314048620.180962,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,4,16,262144,1,16,20,100,5.453248,0.099041,5.103008,2646815466.376832,84.698095,42349047462.029312,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,4,16,262144,1,16,20,100,5.455808,0.099164,5.099616,2643535779.532169,84.593145,42296572472.514702,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,4,16,262144,1,16,20,100,5.464288,0.099113,5.101408,2644901393.732829,84.636845,42318422299.725258,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,4,16,262144,1,16,20,100,5.468672,0.099072,5.100288,2645994781.978999,84.671833,42335916511.663986,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,5,32,131072,1,32,20,100,5.489056,0.191775,5.099520,683468635.190508,54.677491,21870996326.096252,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,5,32,131072,1,32,20,100,5.490592,0.191304,5.103232,685151517.070187,54.812121,21924848546.245991,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,5,32,131072,1,32,20,100,5.488224,0.191437,5.099296,684675002.878703,54.774000,21909600092.118481,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,5,32,131072,1,32,20,100,5.484864,0.191693,5.101664,683760739.303273,54.700859,21880343657.704723,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,5,32,131072,1,32,20,100,5.467456,0.191754,5.098304,683541558.141837,54.683325,21873329860.538792,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,5,32,131072,1,32,20,100,5.477024,0.189604,5.100896,691293978.631257,55.303518,22121407316.200226,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,5,32,131072,1,32,20,100,5.467072,0.189573,5.107648,691406078.571700,55.312486,22124994514.294411,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,5,32,131072,1,32,20,100,5.502560,0.189655,5.105088,691107407.154285,55.288593,22115437028.937107,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,5,32,131072,1,32,20,100,5.512800,0.189635,5.102304,691182077.970894,55.294566,22117826495.068623,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,5,32,131072,1,32,20,100,5.491520,0.189624,5.116672,691219337.953725,55.297547,22119018814.519192,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,5,32,131072,1,32,20,100,5.429952,0.260024,5.112000,504075947.453790,40.326076,16130430318.521282,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,5,32,131072,1,32,20,100,5.505376,0.260024,5.099392,504075947.453790,40.326076,16130430318.521282,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,5,32,131072,1,32,20,100,5.511296,0.260024,5.107232,504075947.453790,40.326076,16130430318.521282,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,5,32,131072,1,32,20,100,5.506816,0.260024,5.114944,504075947.453790,40.326076,16130430318.521282,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,5,32,131072,1,32,20,100,5.478624,0.260035,5.106496,504056073.995291,40.324486,16129794367.849310,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,5,32,131072,1,32,20,100,5.473184,0.544614,5.101568,240669346.530206,19.253548,7701419088.966604,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,5,32,131072,1,32,20,100,5.469024,0.544717,5.098016,240624129.667350,19.249930,7699972149.355207,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,5,32,131072,1,32,20,100,5.522656,0.544727,5.114240,240619574.688008,19.249566,7699826390.016242,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,5,32,131072,1,32,20,100,5.518400,0.544655,5.113600,240651278.814594,19.252102,7700840922.067019,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,5,32,131072,1,32,20,100,5.483936,0.544707,5.103072,240628632.157450,19.250291,7700116229.038393,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,5,32,131072,1,32,20,100,5.511040,0.084746,5.107200,1546640996.649420,123.731280,49492511892.781425,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,5,32,131072,1,32,20,100,5.499776,0.084685,5.104320,1547762924.186637,123.821034,49528413573.972382,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,5,32,131072,1,32,20,100,5.496608,0.084869,5.110976,1544401607.278767,123.552129,49420851432.920547,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,5,32,131072,1,32,20,100,5.485952,0.084705,5.111040,1547388812.899696,123.791105,49516442012.790276,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,5,32,131072,1,32,20,100,5.481728,0.084787,5.116192,1545893767.009946,123.671501,49468600544.318275,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,5,32,131072,1,32,20,100,5.463328,0.099942,5.106240,1311475396.037675,104.918032,41967212673.205589,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,5,32,131072,1,32,20,100,5.511168,0.099840,5.106368,1312820509.246585,105.025641,42010256295.890732,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,5,32,131072,1,32,20,100,5.494240,0.099891,5.108096,1312147705.784570,104.971816,41988726585.106224,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,5,32,131072,1,32,20,100,5.503392,0.099953,5.116512,1311341075.402805,104.907286,41962914412.889771,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,5,32,131072,1,32,20,100,5.487904,0.099953,5.120960,1311341075.402805,104.907286,41962914412.889771,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,5,32,131072,1,32,20,100,5.477856,0.099717,5.109504,1314438311.408153,105.155065,42062025965.060905,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,5,32,131072,1,32,20,100,5.492768,0.099830,5.108352,1312955133.144721,105.036411,42014564260.631073,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,5,32,131072,1,32,20,100,5.493920,0.099799,5.111808,1313359268.601004,105.068741,42027496595.232140,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,5,32,131072,1,32,20,100,5.475200,0.099830,5.111104,1312955133.144721,105.036411,42014564260.631073,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,5,32,131072,1,32,20,100,5.459008,0.099871,5.105984,1312416705.235981,104.993336,41997334567.551407,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,5,32,131072,1,32,20,100,5.479200,0.101898,5.098528,1286302908.585572,102.904233,41161693074.738297,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,5,32,131072,1,32,20,100,5.470944,0.101939,5.102752,1285786020.076526,102.862882,41145152642.448845,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,5,32,131072,1,32,20,100,5.476160,0.101714,5.101344,1288633775.825217,103.090702,41236280826.406929,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,5,32,131072,1,32,20,100,5.470528,0.101878,5.101344,1286561508.714073,102.924921,41169968278.850334,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,5,32,131072,1,32,20,100,5.472384,0.101775,5.107744,1287855882.047939,103.028471,41211388225.534035,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,5,32,131072,1,32,20,100,5.487392,0.105482,5.124960,1242597770.680555,99.407822,39763128661.777748,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,5,32,131072,1,32,20,100,5.531360,0.105656,5.108640,1240550513.461051,99.244041,39697616430.753624,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,5,32,131072,1,32,20,100,5.488928,0.105441,5.112320,1243080424.475537,99.446434,39778573583.217178,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,5,32,131072,1,32,20,100,5.478464,0.105503,5.095680,1242356628.174122,99.388530,39755412101.571892,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,5,32,131072,1,32,20,100,5.507744,0.105329,5.099968,1244409943.885854,99.552796,39821118204.347328,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,5,32,131072,1,32,20,100,5.505152,0.084746,5.100032,1546640996.649420,123.731280,49492511892.781425,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,5,32,131072,1,32,20,100,5.476960,0.084828,5.101504,1545147259.040865,123.611781,49444712289.307671,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,5,32,131072,1,32,20,100,5.522080,0.084838,5.096800,1544960812.526978,123.596865,49438746000.863281,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,5,32,131072,1,32,20,100,5.492640,0.084808,5.096896,1545520422.881965,123.641634,49456653532.222870,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,5,32,131072,1,32,20,100,5.456896,0.084726,5.097504,1547014746.381873,123.761180,49504471884.219940,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,6,64,65536,1,64,20,100,5.449792,0.097505,5.098720,672127660.588596,129.048511,43016170277.670143,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,6,64,65536,1,64,20,100,5.460352,0.097444,5.097664,672551482.576353,129.129885,43043294884.886566,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,6,64,65536,1,64,20,100,5.450656,0.097413,5.098496,672763568.341837,129.170605,43056868373.877594,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,6,64,65536,1,64,20,100,5.446656,0.097464,5.095520,672410149.204369,129.102749,43034249549.079613,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,6,64,65536,1,64,20,100,5.457632,0.097434,5.102816,672622197.261885,129.143462,43047820624.760612,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,6,64,65536,1,64,20,100,5.489056,0.101878,5.106432,643280754.357036,123.509905,41169968278.850334,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,6,64,65536,1,64,20,100,5.477248,0.101857,5.099744,643410059.357388,123.534731,41178243798.872849,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,6,64,65536,1,64,20,100,5.492192,0.101837,5.103552,643539510.516265,123.559586,41186528673.040977,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,6,64,65536,1,64,20,100,5.463232,0.101847,5.101408,643474778.426237,123.547157,41182385819.279137,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,6,64,65536,1,64,20,100,5.468576,0.101816,5.104416,643668919.572458,123.584433,41194810852.637306,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,6,64,65536,1,64,20,100,5.491584,0.152627,5.106976,429386112.357383,82.442134,27480711190.872505,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,6,64,65536,1,64,20,100,5.470336,0.152586,5.100928,429501385.327907,82.464266,27488088660.986073,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,6,64,65536,1,64,20,100,5.474528,0.152566,5.104960,429559024.048312,82.475333,27491777539.091949,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,6,64,65536,1,64,20,100,5.462144,0.152596,5.096896,429472529.829520,82.458726,27486241909.089306,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,6,64,65536,1,64,20,100,5.523456,0.152596,5.100640,429472529.829520,82.458726,27486241909.089306,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,6,64,65536,1,64,20,100,5.488992,0.298291,5.097472,219704767.028688,42.183315,14061105089.836020,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,6,64,65536,1,64,20,100,5.540384,0.298291,5.097248,219704767.028688,42.183315,14061105089.836020,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,6,64,65536,1,64,20,100,5.474624,0.298332,5.112480,219674610.853589,42.177525,14059175094.629707,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,6,64,65536,1,64,20,100,5.464160,0.298301,5.098560,219697216.234124,42.181866,14060621838.983925,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,6,64,65536,1,64,20,100,5.467328,0.298312,5.110592,219689687.906276,42.180420,14060140026.001633,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,6,64,65536,1,64,20,100,5.494368,0.084070,5.101664,779537155.347634,149.671134,49890377942.248573,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,6,64,65536,1,64,20,100,5.463360,0.084163,5.107616,778683509.595340,149.507234,49835744614.101776,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,6,64,65536,1,64,20,100,5.462944,0.084122,5.104928,779062692.113889,149.580037,49860012295.288918,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,6,64,65536,1,64,20,100,5.469632,0.084122,5.105152,779062692.113889,149.580037,49860012295.288918,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,6,64,65536,1,64,20,100,5.465184,0.084122,5.103904,779062692.113889,149.580037,49860012295.288918,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,6,64,65536,1,64,20,100,5.501216,0.092037,5.100416,712060475.460321,136.715611,45571870429.460541,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,6,64,65536,1,64,20,100,5.530848,0.091976,5.107968,712536171.983481,136.806945,45602315006.942780,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,6,64,65536,1,64,20,100,5.490688,0.092211,5.129536,710716254.966356,136.457521,45485840317.846786,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,6,64,65536,1,64,20,100,5.463648,0.092078,5.101664,711743812.337248,136.654812,45551603989.583855,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,6,64,65536,1,64,20,100,5.500160,0.091904,5.102144,713091926.289968,136.913650,45637883282.557983,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,6,64,65536,1,64,20,100,5.457856,0.094198,5.104192,695727814.652983,133.579740,44526580137.790932,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,6,64,65536,1,64,20,100,5.455104,0.094136,5.096256,696181822.011713,133.666910,44555636608.749641,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,6,64,65536,1,64,20,100,5.472384,0.094228,5.101344,695501005.461792,133.536193,44512064349.554665,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,6,64,65536,1,64,20,100,5.477760,0.094177,5.119424,695879066.279407,133.608781,44536260241.882027,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,6,64,65536,1,64,20,100,5.455392,0.094167,5.100544,695954771.821504,133.623316,44541105396.576248,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,6,64,65536,1,64,20,100,5.460768,0.096737,5.096800,677463741.686639,130.073038,43357679467.944893,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,6,64,65536,1,64,20,100,5.463072,0.096727,5.101152,677535493.187859,130.086815,43362271564.022995,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,6,64,65536,1,64,20,100,5.473280,0.096727,5.098592,677535493.187859,130.086815,43362271564.022995,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,6,64,65536,1,64,20,100,5.463200,0.096840,5.101984,676747426.098709,129.935506,43311835270.317345,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,6,64,65536,1,64,20,100,5.453856,0.096819,5.097664,676890536.753898,129.962983,43320994352.249466,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,6,64,65536,1,64,20,100,5.488352,0.099994,5.101120,655401936.277067,125.837172,41945723921.732300,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,6,64,65536,1,64,20,100,5.449664,0.099983,5.097632,655469090.421661,125.850065,41950021786.986275,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,6,64,65536,1,64,20,100,5.454528,0.100004,5.099168,655334795.891222,125.824281,41941426937.038231,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,6,64,65536,1,64,20,100,5.453056,0.100024,5.098816,655200653.987620,125.798526,41932841855.207695,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,6,64,65536,1,64,20,100,5.452640,0.100127,5.096224,654530572.542852,125.669870,41889956642.742523,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,6,64,65536,1,64,20,100,5.483808,0.084050,5.099296,779727116.320032,149.707606,49902535444.482040,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,6,64,65536,1,64,20,100,5.483840,0.083999,5.106400,780202389.438392,149.798859,49932952924.057114,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,6,64,65536,1,64,20,100,5.512384,0.084019,5.100992,780012127.677661,149.762329,49920776171.370293,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,6,64,65536,1,64,20,100,5.459808,0.084060,5.098624,779632089.711695,149.689361,49896453741.548492,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,6,64,65536,1,64,20,100,5.454208,0.083978,5.102560,780392605.566192,149.835380,49945126756.236259,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,7,128,32768,1,128,20,100,5.450240,0.088525,5.096960,370156176.068251,165.829967,47379990536.736099,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,7,128,32768,1,128,20,100,5.453440,0.088453,5.101696,370456117.890390,165.964341,47418383089.969933,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,7,128,32768,1,128,20,100,5.453600,0.088494,5.105920,370284636.347709,165.887517,47396433452.506699,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,7,128,32768,1,128,20,100,5.456160,0.088566,5.095104,369984972.030929,165.753267,47358076419.958961,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,7,128,32768,1,128,20,100,5.452672,0.088525,5.095520,370156176.068251,165.829967,47379990536.736099,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,7,128,32768,1,128,20,100,5.453248,0.089866,5.094528,364630828.133019,163.354611,46672746001.026398,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,7,128,32768,1,128,20,100,5.473632,0.089928,5.109440,364381686.617333,163.242996,46640855887.018684,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,7,128,32768,1,128,20,100,5.485536,0.089846,5.104960,364713920.787760,163.391837,46683381860.833336,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,7,128,32768,1,128,20,100,5.465152,0.089907,5.095968,364464695.951485,163.280184,46651481081.790054,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,7,128,32768,1,128,20,100,5.476192,0.089825,5.102624,364797081.579891,163.429093,46694026442.226097,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,7,128,32768,1,128,20,100,5.466016,0.101069,5.101088,324214785.313476,145.248224,41499492520.124954,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,7,128,32768,1,128,20,100,5.458880,0.101069,5.100288,324214785.313476,145.248224,41499492520.124954,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,7,128,32768,1,128,20,100,5.378752,0.101038,5.099392,324313356.768794,145.292384,41512109666.405571,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,7,128,32768,1,128,20,100,5.457632,0.101059,5.100352,324247651.743716,145.262948,41503699423.195625,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,7,128,32768,1,128,20,100,5.499072,0.101140,5.107904,323985026.061366,145.145292,41470083335.854813,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,7,128,32768,1,128,20,100,5.487936,0.182589,5.098400,179462731.930236,80.399304,22971229687.070248,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,7,128,32768,1,128,20,100,5.497824,0.182641,5.096000,179412422.416737,80.376765,22964790069.342369,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,7,128,32768,1,128,20,100,5.462560,0.182589,5.101280,179462731.930236,80.399304,22971229687.070248,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,7,128,32768,1,128,20,100,5.489248,0.182630,5.104608,179422479.134871,80.381271,22966077329.263527,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,7,128,32768,1,128,20,100,5.467360,0.182651,5.105280,179402381.462048,80.372267,22963504827.142128,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,7,128,32768,1,128,20,100,5.477824,0.084541,5.108000,387596933.337293,173.643426,49612407467.173538,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,7,128,32768,1,128,20,100,5.468576,0.084511,5.108672,387737820.691756,173.706544,49630441048.544830,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,7,128,32768,1,128,20,100,5.473632,0.084552,5.108800,387549970.868323,173.622387,49606396271.145348,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,7,128,32768,1,128,20,100,5.470848,0.084521,5.101536,387690824.077937,173.685489,49624425481.975967,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,7,128,32768,1,128,20,100,5.491520,0.084613,5.104736,387268537.168361,173.496305,49570372757.550179,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,7,128,32768,1,128,20,100,5.506944,0.096707,5.102080,338839468.687458,151.800082,43371451991.994598,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,7,128,32768,1,128,20,100,5.509056,0.096727,5.100864,338767746.593930,151.767950,43362271564.022995,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,7,128,32768,1,128,20,100,5.470176,0.096717,5.103904,338803577.745201,151.784003,43366857951.385666,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,7,128,32768,1,128,20,100,5.536384,0.096901,5.105056,338159150.491687,151.495299,43284371262.935875,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,7,128,32768,1,128,20,100,5.524032,0.096768,5.098432,338624341.312480,151.703705,43343915687.997391,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,7,128,32768,1,128,20,100,5.480640,0.095785,5.096224,342099628.742910,153.260634,43788752479.092468,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,7,128,32768,1,128,20,100,5.492032,0.095672,5.107680,342502392.826932,153.441072,43840306281.847359,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,7,128,32768,1,128,20,100,5.496224,0.095580,5.098816,342832652.594307,153.589028,43882579532.071274,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,7,128,32768,1,128,20,100,5.460128,0.095652,5.097024,342575758.535094,153.473940,43849697092.491982,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,7,128,32768,1,128,20,100,5.477632,0.095683,5.120448,342465748.422556,153.424655,43835615798.087196,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,7,128,32768,1,128,20,100,5.481216,0.098273,5.113600,333437541.781905,149.380019,42680005348.083885,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,7,128,32768,1,128,20,100,5.451008,0.098335,5.098528,333229191.682572,149.286678,42653336535.369232,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,7,128,32768,1,128,20,100,5.511808,0.098140,5.098912,333889798.636062,149.582630,42737894225.415901,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,7,128,32768,1,128,20,100,5.465824,0.098232,5.103584,333576586.652921,149.442311,42697803091.573921,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,7,128,32768,1,128,20,100,5.531424,0.098058,5.106368,334168734.514866,149.707593,42773598017.902832,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,7,128,32768,1,128,20,100,5.469664,0.102595,5.105952,319393170.367367,143.088140,40882325807.022919,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,7,128,32768,1,128,20,100,5.518560,0.102697,5.097760,319074675.170398,142.945454,40841558421.810951,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,7,128,32768,1,128,20,100,5.466432,0.102687,5.104000,319106507.679879,142.959715,40845632983.024551,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,7,128,32768,1,128,20,100,5.487328,0.102605,5.098208,319361280.642910,143.073854,40878243922.292480,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,7,128,32768,1,128,20,100,5.512640,0.102451,5.108064,319840086.818721,143.288359,40939531112.796257,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,7,128,32768,1,128,20,100,5.493056,0.084490,5.102496,387831779.709646,173.748637,49642467802.834686,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,7,128,32768,1,128,20,100,5.524256,0.084378,5.102048,388349506.542092,173.980579,49708736837.387825,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,7,128,32768,1,128,20,100,5.496320,0.084378,5.119520,388349506.542092,173.980579,49708736837.387825,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,7,128,32768,1,128,20,100,5.475744,0.084675,5.113536,386987545.970035,173.370421,49534405884.164543,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,7,128,32768,1,128,20,100,5.472512,0.084664,5.122912,387034372.222807,173.391399,49540399644.519295,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,turbofft-generated,0,named-barrier,32,0,0,0,0,7,128,32768,1,128,20,100,5.459680,0.087654,5.113312,373831788.957782,167.476641,47850468986.596092,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,turbofft-generated,0,named-barrier,32,0,0,0,0,7,128,32768,1,128,20,100,5.465472,0.087572,5.110592,374181487.596798,167.633306,47895230412.390091,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,turbofft-generated,0,named-barrier,32,0,0,0,0,7,128,32768,1,128,20,100,5.479264,0.087562,5.118496,374225265.835313,167.652919,47900834026.920105,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,turbofft-generated,0,named-barrier,32,0,0,0,0,7,128,32768,1,128,20,100,5.458560,0.087634,5.114976,373919128.482117,167.515770,47861648445.710968,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,turbofft-generated,0,named-barrier,32,0,0,0,0,7,128,32768,1,128,20,100,5.467616,0.087644,5.113184,373875453.619192,167.496203,47856058063.256546,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,8,256,16384,1,256,20,100,5.457984,0.149688,5.109920,109454098.878364,112.080997,28020249312.861103,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,8,256,16384,1,256,20,100,5.463168,0.149524,5.109472,109574030.878124,112.203808,28050951904.799660,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,8,256,16384,1,256,20,100,5.476928,0.151173,5.125568,108379048.809287,110.980146,27745036495.177502,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,8,256,16384,1,256,20,100,5.462304,0.150825,5.113824,108629231.928417,111.236333,27809083373.674679,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,8,256,16384,1,256,20,100,5.476512,0.151316,5.118656,108276376.272332,110.875009,27718752325.717106,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,8,256,16384,1,256,20,100,5.467680,0.110551,5.115936,148203032.337573,151.759905,37939976278.418724,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,8,256,16384,1,256,20,100,5.465344,0.110920,5.114720,147710491.811088,151.255544,37813885903.638565,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,8,256,16384,1,256,20,100,5.461600,0.110838,5.113472,147819653.295796,151.367325,37841831243.723663,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,8,256,16384,1,256,20,100,5.469984,0.110510,5.112128,148257967.453439,151.816159,37954039668.080414,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,8,256,16384,1,256,20,100,5.463904,0.110838,5.112864,147819653.295796,151.367325,37841831243.723663,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,8,256,16384,1,256,20,100,5.463968,0.114156,5.115488,143523497.599450,146.968062,36742015385.459114,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,8,256,16384,1,256,20,100,5.469184,0.114401,5.113152,143215179.707555,146.652344,36663086005.134071,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,8,256,16384,1,256,20,100,5.472576,0.114156,5.118240,143523497.599450,146.968062,36742015385.459114,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,8,256,16384,1,256,20,100,5.469408,0.114381,5.111584,143240824.594118,146.678604,36669651096.094162,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,8,256,16384,1,256,20,100,5.487616,0.114381,5.140800,143240824.594118,146.678604,36669651096.094162,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,8,256,16384,1,256,20,100,5.464384,0.146801,5.109536,111607144.951533,114.285716,28571429107.592415,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,8,256,16384,1,256,20,100,5.478368,0.146749,5.124576,111646084.312769,114.325590,28581397584.068867,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,8,256,16384,1,256,20,100,5.471808,0.146719,5.114464,111669454.169746,114.349521,28587380267.455009,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,8,256,16384,1,256,20,100,5.466560,0.146790,5.107552,111614928.384579,114.293687,28573421666.452236,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,8,256,16384,1,256,20,100,5.462880,0.146719,5.114560,111669454.169746,114.349521,28587380267.455009,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,8,256,16384,1,256,20,100,5.460928,0.084142,5.110944,194718263.676201,199.391502,49847875501.107506,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,8,256,16384,1,256,20,100,5.462976,0.084152,5.113152,194694576.273029,199.367246,49841811525.895477,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,8,256,16384,1,256,20,100,5.453440,0.084152,5.113504,194694576.273029,199.367246,49841811525.895477,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,8,256,16384,1,256,20,100,5.462528,0.084173,5.112544,194647201.522605,199.318734,49829683589.786819,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,8,256,16384,1,256,20,100,5.478272,0.084214,5.113248,194552521.153890,199.221782,49805445415.395943,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,8,256,16384,1,256,20,100,5.387712,0.107182,5.114976,152861365.977521,156.530039,39132509690.245392,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,8,256,16384,1,256,20,100,5.468832,0.107244,5.118624,152773805.631118,156.440377,39110094241.566109,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,8,256,16384,1,256,20,100,5.471616,0.107182,5.141472,152861365.977521,156.530039,39132509690.245392,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,8,256,16384,1,256,20,100,5.472416,0.107366,5.118944,152598953.757663,156.261329,39065332161.961639,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,32,0,0,0,0,8,256,16384,1,256,20,100,5.469888,0.107244,5.120768,152773805.631118,156.440377,39110094241.566109,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,8,256,16384,1,256,20,100,5.470688,0.101898,5.117568,160787863.573196,164.646772,41161693074.738297,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,8,256,16384,1,256,20,100,5.496096,0.101908,5.106080,160771700.060645,164.630221,41157555215.525162,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,8,256,16384,1,256,20,100,5.504448,0.101560,5.112960,161322852.145538,165.194601,41298650149.257790,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,8,256,16384,1,256,20,100,5.492160,0.101601,5.111808,161257822.318785,165.128010,41282002513.609024,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,8,256,16384,1,256,20,100,5.488704,0.101407,5.112704,161567208.533303,165.444822,41361205384.525673,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,8,256,16384,1,256,20,100,5.538048,0.103844,5.109184,157775370.395254,161.561979,40390494821.184929,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,8,256,16384,1,256,20,100,5.499232,0.103844,5.112896,157775370.395254,161.561979,40390494821.184929,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,8,256,16384,1,256,20,100,5.482048,0.103926,5.121984,157650993.180143,161.434617,40358654254.116661,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,8,256,16384,1,256,20,100,5.480096,0.103803,5.107264,157837621.297503,161.625724,40406431052.160873,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,8,256,16384,1,256,20,100,5.490848,0.103936,5.109504,157635465.465008,161.418717,40354679159.042107,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,8,256,16384,1,256,20,100,5.472672,0.109394,5.103936,149770657.544942,153.365153,38341288331.505234,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,8,256,16384,1,256,20,100,5.482464,0.109496,5.110112,149630602.458693,153.221737,38305434229.425316,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,8,256,16384,1,256,20,100,5.504640,0.109425,5.107328,149728622.672745,153.322110,38330527404.222832,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,8,256,16384,1,256,20,100,5.493888,0.109425,5.106112,149728622.672745,153.322110,38330527404.222832,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,8,256,16384,1,256,20,100,5.528064,0.109445,5.111424,149700592.148556,153.293406,38323351590.030304,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,8,256,16384,1,256,20,100,5.505792,0.084756,5.101696,193306756.694329,197.946119,49486529713.748337,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,8,256,16384,1,256,20,100,5.517440,0.084593,5.103488,193681151.487181,198.329499,49582374780.718262,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,8,256,16384,1,256,20,100,5.488096,0.084736,5.110080,193353464.116386,197.993947,49498486813.794754,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,8,256,16384,1,256,20,100,5.486528,0.084828,5.119008,193143407.380108,197.778849,49444712289.307671,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,8,256,16384,1,256,20,100,5.530912,0.084675,5.109472,193493772.985018,198.137624,49534405884.164543,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,turbofft-generated,0,named-barrier,32,0,0,0,0,8,256,16384,1,256,20,100,5.487616,0.087398,5.112064,187463396.905855,191.962518,47990629607.898918,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,turbofft-generated,0,named-barrier,32,0,0,0,0,8,256,16384,1,256,20,100,5.466816,0.087388,5.102144,187485341.346492,191.984990,47996247384.701958,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,turbofft-generated,0,named-barrier,32,0,0,0,0,8,256,16384,1,256,20,100,5.473920,0.087450,5.109248,187353639.977078,191.850127,47962531834.132011,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,turbofft-generated,0,named-barrier,32,0,0,0,0,8,256,16384,1,256,20,100,5.480480,0.087296,5.113472,187683280.989284,192.187680,48046919933.256805,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,turbofft-generated,0,named-barrier,32,0,0,0,0,8,256,16384,1,256,20,100,5.467936,0.087388,5.104032,187485341.346492,191.984990,47996247384.701958,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,9,512,8192,1,512,20,100,5.495424,0.292844,5.119680,27973984.133436,64.452059,14322679876.319202,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,9,512,8192,1,512,20,100,5.492224,0.292813,5.123616,27976919.572359,64.458823,14324182821.048029,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,9,512,8192,1,512,20,100,5.495584,0.294369,5.104000,27828990.819238,64.117995,14248443299.450037,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,9,512,8192,1,512,20,100,5.513472,0.293294,5.110272,27930979.932279,64.352978,14300661725.327084,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,9,512,8192,1,512,20,100,5.516512,0.294369,5.102720,27828990.819238,64.117995,14248443299.450037,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,9,512,8192,1,512,20,100,5.485728,0.144814,5.114880,56569087.323431,130.335177,28963372709.596771,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,9,512,8192,1,512,20,100,5.472672,0.144783,5.102976,56581086.698187,130.362824,28969516389.471779,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,9,512,8192,1,512,20,100,5.504160,0.144753,5.102016,56593096.990432,130.390495,28975665659.101204,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,9,512,8192,1,512,20,100,5.496288,0.144753,5.097696,56593096.990432,130.390495,28975665659.101204,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,9,512,8192,1,512,20,100,5.487360,0.144691,5.098464,56617127.046975,130.445861,28987969048.050980,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,9,512,8192,1,512,20,100,5.491616,0.106762,5.107328,76731250.348567,176.788801,39286400178.466278,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,9,512,8192,1,512,20,100,5.468384,0.106322,5.099040,77049025.350718,177.520954,39449100979.567757,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,9,512,8192,1,512,20,100,5.463744,0.106742,5.104192,76745968.211242,176.822711,39293935724.155777,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,9,512,8192,1,512,20,100,5.471488,0.106793,5.102848,76709178.784147,176.737948,39275099537.483215,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,9,512,8192,1,512,20,100,5.504704,0.106752,5.101120,76738603.218367,176.805742,39290164847.803864,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,9,512,8192,1,512,20,100,5.496736,0.116797,5.104736,70138523.731799,161.599159,35910924150.681343,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,9,512,8192,1,512,20,100,5.508608,0.116859,5.100032,70101644.573948,161.514189,35892042021.861282,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,9,512,8192,1,512,20,100,5.516608,0.116787,5.098528,70144671.793457,161.613324,35914071958.250229,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,9,512,8192,1,512,20,100,5.484096,0.116879,5.099904,70089364.606055,161.485896,35885754678.300041,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,9,512,8192,1,512,20,100,5.476640,0.116797,5.103072,70138523.731799,161.599159,35910924150.681343,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,9,512,8192,1,512,20,100,5.497280,0.084992,5.105248,96385543.336174,222.072292,49349398188.121025,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,9,512,8192,1,512,20,100,5.491968,0.084879,5.105152,96513450.319448,222.366990,49414886563.557274,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,9,512,8192,1,512,20,100,5.494080,0.084920,5.108288,96466903.277225,222.259745,49391054477.939453,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,9,512,8192,1,512,20,100,5.505632,0.084890,5.103552,96501802.995869,222.340154,49408923133.884804,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,9,512,8192,1,512,20,100,5.483680,0.085012,5.109728,96362321.633082,222.018789,49337508676.137856,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,9,512,8192,1,512,20,100,5.495360,0.101540,5.102912,80677690.405664,185.881399,41306977487.699959,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,9,512,8192,1,512,20,100,5.500896,0.101530,5.102240,80685830.952974,185.900155,41311145447.922485,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,9,512,8192,1,512,20,100,5.484512,0.101437,5.110816,80759134.281225,186.069045,41348676751.987320,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,9,512,8192,1,512,20,100,5.515808,0.101775,5.099264,80490992.627996,185.451247,41211388225.534035,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,64,0,0,0,0,9,512,8192,1,512,20,100,5.502368,0.101642,5.104640,80596416.541332,185.694144,41265365269.162209,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,9,512,8192,1,512,20,100,5.473312,0.104335,5.099744,78516052.151531,180.900984,40200218701.584030,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,9,512,8192,1,512,20,100,5.454336,0.104530,5.100960,78369902.439306,180.564255,40125390048.924683,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,9,512,8192,1,512,20,100,5.478784,0.104387,5.113184,78477535.340105,180.812241,40180498094.133934,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,9,512,8192,1,512,20,100,5.453664,0.104315,5.100032,78531462.733626,180.936490,40208108919.616486,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,9,512,8192,1,512,20,100,5.454176,0.104212,5.100032,78608623.333838,181.114268,40247615146.925217,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,9,512,8192,1,512,20,100,5.455872,0.109025,5.098400,75138538.608534,173.119193,38470931767.569267,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,9,512,8192,1,512,20,100,5.383072,0.108882,5.099808,75237467.861111,173.347126,38521583544.888680,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,9,512,8192,1,512,20,100,5.453600,0.109005,5.097856,75152651.758461,173.151710,38478157700.332123,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,9,512,8192,1,512,20,100,5.460992,0.109005,5.096512,75152651.758461,173.151710,38478157700.332123,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,9,512,8192,1,512,20,100,5.460416,0.108933,5.101632,75202104.992108,173.265650,38503477755.959541,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,9,512,8192,1,512,20,100,5.455072,0.084705,5.097248,96711800.806231,222.823989,49516442012.790276,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,9,512,8192,1,512,20,100,5.468320,0.084787,5.110720,96618360.438122,222.608702,49468600544.318275,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,9,512,8192,1,512,20,100,5.463808,0.084756,5.107552,96653378.347165,222.689384,49486529713.748337,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,9,512,8192,1,512,20,100,5.456992,0.084756,5.098912,96653378.347165,222.689384,49486529713.748337,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,9,512,8192,1,512,20,100,5.453792,0.084808,5.100800,96595026.430123,222.554941,49456653532.222870,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,turbofft-generated,0,named-barrier,32,0,0,0,0,9,512,8192,1,512,20,100,5.463040,0.083692,5.106688,97883271.296085,225.523057,50116234903.595741,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,turbofft-generated,0,named-barrier,32,0,0,0,0,9,512,8192,1,512,20,100,5.457824,0.083610,5.098656,97979175.504022,225.744020,50165337858.059036,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,turbofft-generated,0,named-barrier,32,0,0,0,0,9,512,8192,1,512,20,100,5.451776,0.083702,5.098080,97871299.736342,225.495475,50110105465.007217,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,turbofft-generated,0,named-barrier,32,0,0,0,0,9,512,8192,1,512,20,100,5.470048,0.083712,5.101248,97859331.104591,225.467899,50103977525.550583,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,turbofft-generated,0,named-barrier,32,0,0,0,0,9,512,8192,1,512,20,100,5.459328,0.083702,5.106112,97871299.736342,225.495475,50110105465.007217,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,10,1024,4096,1,1024,20,100,5.476768,0.353157,5.111296,11598236.645492,59.382972,11876594324.983480,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,10,1024,4096,1,1024,20,100,5.479936,0.348672,5.103680,11747430.163586,60.146842,12029368487.511806,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,10,1024,4096,1,1024,20,100,5.460064,0.349235,5.103520,11728486.330372,60.049850,12009970002.301340,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,10,1024,4096,1,1024,20,100,5.505152,0.347617,5.101952,11783074.002452,60.329339,12065867778.510815,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,32,0,0,0,0,10,1024,4096,1,1024,20,100,5.494560,0.347136,5.110784,11799410.340239,60.412981,12082596188.404984,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,10,1024,4096,1,1024,20,100,5.488224,0.219505,5.110688,18660197.840063,95.540213,19108042588.224449,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,10,1024,4096,1,1024,20,100,5.477120,0.218972,5.108608,18705574.140490,95.772540,19154507919.861847,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,10,1024,4096,1,1024,20,100,5.465920,0.218798,5.104288,18720456.261747,95.848736,19169747212.028694,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,10,1024,4096,1,1024,20,100,5.457664,0.219187,5.101440,18687222.605620,95.678580,19135715948.155071,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,64,0,0,0,0,10,1024,4096,1,1024,20,100,5.456800,0.219372,5.094944,18671520.629511,95.598186,19119637124.619358,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,10,1024,4096,1,1024,20,100,5.460480,0.140145,5.099840,29226945.959085,149.641963,29928392662.102543,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,10,1024,4096,1,1024,20,100,5.463392,0.140134,5.097664,29229084.153777,149.652911,29930582173.467770,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,10,1024,4096,1,1024,20,100,5.504096,0.140247,5.103168,29205606.029865,149.532703,29906540574.581326,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,10,1024,4096,1,1024,20,100,5.468448,0.140237,5.102656,29207741.103196,149.543634,29908726889.672359,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,128,0,0,0,0,10,1024,4096,1,1024,20,100,5.459072,0.140083,5.100320,29239767.380391,149.707609,29941521797.520725,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,10,1024,4096,1,1024,20,100,5.470304,0.110070,5.126048,37212764.251864,190.529353,38105870593.908897,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,10,1024,4096,1,1024,20,100,5.472288,0.109353,5.113472,37456690.296302,191.778254,38355650863.413536,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,10,1024,4096,1,1024,20,100,5.474176,0.110172,5.133632,37178176.420636,190.352263,38070452654.731224,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,10,1024,4096,1,1024,20,100,5.456288,0.109455,5.102304,37421650.299993,191.598850,38319769907.192703,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,scalar,0,named-barrier,256,0,0,0,0,10,1024,4096,1,1024,20,100,5.466208,0.114381,5.108960,35810206.148529,183.348255,36669651096.094162,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,10,1024,4096,1,1024,20,100,5.448960,0.085903,5.097696,47681486.863293,244.129213,48825842548.012039,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,10,1024,4096,1,1024,20,100,5.452544,0.085903,5.134176,47681486.863293,244.129213,48825842548.012039,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,10,1024,4096,1,1024,20,100,5.449056,0.085862,5.099232,47704234.779929,244.245682,48849136414.646812,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,10,1024,4096,1,1024,20,100,5.450016,0.085780,5.099168,47749791.643566,244.478933,48895786643.012085,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,shared,scalar,0,named-barrier,0,0,0,0,0,10,1024,4096,1,1024,20,100,5.457280,0.085903,5.100000,47681486.863293,244.129213,48825842548.012039,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,10,1024,4096,1,1024,20,100,5.454336,0.107971,5.100928,37936265.118658,194.233677,38846735481.505791,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,10,1024,4096,1,1024,20,100,5.465408,0.107919,5.107776,37954265.913439,194.325841,38865168295.361771,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,10,1024,4096,1,1024,20,100,5.451456,0.107909,5.097536,37957869.170845,194.344290,38868858030.944847,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,10,1024,4096,1,1024,20,100,5.453344,0.108093,5.097632,37893141.154680,194.012883,38802576542.392174,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,128,0,0,0,0,10,1024,4096,1,1024,20,100,5.467360,0.108155,5.106304,37871615.917608,193.902673,38780534699.630249,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,10,1024,4096,1,1024,20,100,5.449824,0.111749,5.096672,36653530.021841,187.666074,37533214742.364716,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,10,1024,4096,1,1024,20,100,5.451584,0.111636,5.102752,36690517.234250,187.855448,37571089647.871666,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,10,1024,4096,1,1024,20,100,5.461344,0.111626,5.108416,36693879.624923,187.872664,37574532735.921600,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,10,1024,4096,1,1024,20,100,5.463200,0.111718,5.113120,36663613.380000,187.717701,37543540101.119942,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,radix8,four-mul,shared,cta-dft8,0,named-barrier,256,0,0,0,0,10,1024,4096,1,1024,20,100,5.454784,0.111565,5.106080,36714088.984527,187.976136,37595227120.156082,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,10,1024,4096,1,1024,20,100,5.475424,0.085002,5.107072,48186963.431061,246.717253,49343450553.406799,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,10,1024,4096,1,1024,20,100,5.456480,0.084797,5.099904,48303343.890515,247.313121,49462624143.887703,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,10,1024,4096,1,1024,20,100,5.464032,0.084787,5.107040,48309180.219061,247.343003,49468600544.318275,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,10,1024,4096,1,1024,20,100,5.457952,0.084869,5.099296,48262550.227461,247.104257,49420851432.920547,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,cufftdx-block,0,named-barrier,32,0,0,0,0,10,1024,4096,1,1024,20,100,5.465568,0.084808,5.107904,48297513.215061,247.283268,49456653532.222870,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,turbofft-generated,0,named-barrier,32,0,0,0,0,10,1024,4096,1,1024,20,100,5.452864,0.186982,5.095296,21905804.081661,112.157717,22431543379.620483,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,turbofft-generated,0,named-barrier,32,0,0,0,0,10,1024,4096,1,1024,20,100,5.454304,0.187372,5.096256,21860312.347178,111.924799,22384959843.510529,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,turbofft-generated,0,named-barrier,32,0,0,0,0,10,1024,4096,1,1024,20,100,5.467232,0.186931,5.107552,21911805.820129,112.188446,22437689159.811684,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,turbofft-generated,0,named-barrier,32,0,0,0,0,10,1024,4096,1,1024,20,100,5.469696,0.186460,5.109856,21967160.008020,112.471859,22494371848.212864,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,shared,turbofft-generated,0,named-barrier,32,0,0,0,0,10,1024,4096,1,1024,20,100,5.460672,0.186931,5.106656,21911805.820129,112.188446,22437689159.811684,0.000000,-1 diff --git a/results/fft_processing_units_v100_summary.csv b/results/fft_processing_units_v100_summary.csv new file mode 100644 index 0000000..ed21ebb --- /dev/null +++ b/results/fft_processing_units_v100_summary.csv @@ -0,0 +1,37 @@ +logN,N,batch,backend,compute_unit,fft_core,tile_threads,trials,median_kernel_ms,min_kernel_ms,max_kernel_ms,throughput_vs_cufft +3,8,524288,temporal-tile,radix8,cta-dft8,32,5,0.090798,0.090655,0.090860,0.950605 +3,8,524288,cufft,auto,cufft,0,5,0.086313,0.086282,0.086344,1.000000 +3,8,524288,temporal-tile,auto,cufftdx-block,32,5,0.149279,0.149043,0.149463,0.578199 +3,8,524288,temporal-tile,radix8,scalar,64,5,0.743178,0.743147,0.743229,0.116140 +4,16,262144,temporal-tile,radix8,cta-dft8,64,5,0.102072,0.101990,0.102154,0.825545 +4,16,262144,cufft,auto,cufft,0,5,0.084265,0.084204,0.084316,1.000000 +4,16,262144,temporal-tile,auto,cufftdx-block,32,5,0.099113,0.099041,0.099164,0.850191 +4,16,262144,temporal-tile,radix8,scalar,32,5,0.382372,0.382362,0.433224,0.220374 +5,32,131072,temporal-tile,radix8,cta-dft8,64,5,0.099830,0.099717,0.099871,0.848903 +5,32,131072,cufft,auto,cufft,0,5,0.084746,0.084685,0.084869,1.000000 +5,32,131072,temporal-tile,auto,cufftdx-block,32,5,0.084808,0.084726,0.084838,0.999269 +5,32,131072,temporal-tile,radix8,scalar,64,5,0.189624,0.189573,0.189655,0.446916 +6,64,65536,temporal-tile,radix8,cta-dft8,32,5,0.092037,0.091904,0.092211,0.914002 +6,64,65536,cufft,auto,cufft,0,5,0.084122,0.084070,0.084163,1.000000 +6,64,65536,temporal-tile,auto,cufftdx-block,32,5,0.084019,0.083978,0.084060,1.001226 +6,64,65536,temporal-tile,radix8,scalar,32,5,0.097444,0.097413,0.097505,0.863286 +7,128,32768,temporal-tile,radix8,cta-dft8,64,5,0.095672,0.095580,0.095785,0.883655 +7,128,32768,cufft,auto,cufft,0,5,0.084541,0.084511,0.084613,1.000000 +7,128,32768,temporal-tile,auto,cufftdx-block,32,5,0.084490,0.084378,0.084675,1.000604 +7,128,32768,temporal-tile,radix8,scalar,32,5,0.088525,0.088453,0.088566,0.954996 +7,128,32768,temporal-tile,auto,turbofft-generated,32,5,0.087634,0.087562,0.087654,0.964705 +8,256,16384,temporal-tile,radix8,cta-dft8,64,5,0.101601,0.101407,0.101908,0.828260 +8,256,16384,cufft,auto,cufft,0,5,0.084152,0.084142,0.084214,1.000000 +8,256,16384,temporal-tile,auto,cufftdx-block,32,5,0.084736,0.084593,0.084828,0.993108 +8,256,16384,temporal-tile,radix8,scalar,64,5,0.110838,0.110510,0.110920,0.759234 +8,256,16384,temporal-tile,auto,turbofft-generated,32,5,0.087388,0.087296,0.087450,0.962970 +9,512,8192,temporal-tile,radix8,cta-dft8,64,5,0.101540,0.101437,0.101775,0.836321 +9,512,8192,cufft,auto,cufft,0,5,0.084920,0.084879,0.085012,1.000000 +9,512,8192,temporal-tile,auto,cufftdx-block,32,5,0.084756,0.084705,0.084808,1.001935 +9,512,8192,temporal-tile,radix8,scalar,128,5,0.106752,0.106322,0.106793,0.795489 +9,512,8192,temporal-tile,auto,turbofft-generated,32,5,0.083702,0.083610,0.083712,1.014552 +10,1024,4096,temporal-tile,radix8,cta-dft8,128,5,0.107971,0.107909,0.108155,0.795612 +10,1024,4096,cufft,auto,cufft,0,5,0.085903,0.085780,0.085903,1.000000 +10,1024,4096,temporal-tile,auto,cufftdx-block,32,5,0.084808,0.084787,0.085002,1.012912 +10,1024,4096,temporal-tile,radix8,scalar,256,5,0.110070,0.109353,0.114381,0.780440 +10,1024,4096,temporal-tile,auto,turbofft-generated,32,5,0.186931,0.186460,0.187372,0.459544 diff --git a/results/fft_resident_direct_logN12_v100_raw.csv b/results/fft_resident_direct_logN12_v100_raw.csv new file mode 100644 index 0000000..99c3aab --- /dev/null +++ b/results/fft_resident_direct_logN12_v100_raw.csv @@ -0,0 +1,66 @@ +trial,device,compute_capability,operator,precision,direction,normalization,placement,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,stage_handoff,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,logN,N,batch,element_stride,batch_stride,warmup,repeat,h2d_ms,kernel_ms,d2h_ms,transforms_s,Gbutterfly_s,points_s,max_error,correct +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.476800,0.519823,5.131616,1969900.108105,48.412265,8068710842.796187,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.475552,0.474358,5.122624,2158708.256337,53.052414,8842069017.954796,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.470592,0.474368,5.113440,2158661.738146,53.051271,8841878479.444181,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.528192,0.461804,5.110016,2217393.205213,54.494655,9082442568.551304,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.460544,0.448707,5.109824,2282115.178752,56.085263,9347543772.167719,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.461984,0.088750,5.103296,11538017.862908,283.558327,47259721166.472939,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.456128,0.088822,5.107680,11528706.309087,283.329486,47221581042.021461,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.455008,0.088678,5.104352,11547344.470478,283.787538,47297922951.077415,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.456896,0.088699,5.110560,11544677.078963,283.721984,47286997315.431557,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.459712,0.088832,5.107808,11527377.728222,283.296835,47216139174.797523,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.486944,0.089692,5.114080,11416828.343057,280.579973,46763328893.161629,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.460864,0.089631,5.108768,11424654.971546,280.772321,46795386763.451561,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.463040,0.089682,5.113120,11418131.562069,280.612001,46768666878.236465,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.462848,0.089590,5.108000,11429877.737632,280.900675,46816779213.340996,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,256,0,0,0,0,12,4096,1024,1,4096,20,100,5.455904,0.089610,5.105120,11427265.282774,280.836472,46806078598.243011,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.469184,0.089098,5.110784,11492931.214149,282.450278,47075046253.154808,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.395136,0.088996,5.116704,11506156.223213,282.775295,47129215890.279465,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.466208,0.088996,5.107296,11506156.223213,282.775295,47129215890.279465,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.481120,0.088914,5.118144,11516757.199704,283.035825,47172637489.987450,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,512,0,0,0,0,12,4096,1024,1,4096,20,100,5.467968,0.088996,5.107200,11506156.223213,282.775295,47129215890.279465,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.462592,0.092467,5.106080,11074196.673236,272.159457,45359909573.573471,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.463712,0.092570,5.112992,11061947.253330,271.858416,45309735949.639427,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.474592,0.092457,5.111424,11075423.732225,272.189614,45364935607.195312,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.463520,0.092488,5.112608,11071745.154584,272.099209,45349868153.177277,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,named-barrier,1024,0,0,0,0,12,4096,1024,1,4096,20,100,5.487200,0.092457,5.108000,11075423.732225,272.189614,45364935607.195312,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.457184,0.212982,5.104256,4807923.446529,118.159527,19693254436.984238,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.466080,0.212972,5.109120,4808154.889816,118.165215,19694202428.686375,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.467680,0.213207,5.106048,4802843.367546,118.034679,19672446433.467182,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.496096,0.213596,5.122656,4794093.894774,117.819652,19636608592.994305,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.478880,0.213780,5.119712,4789960.296141,117.718064,19619677372.991791,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.458208,0.214057,5.108224,4783773.246308,117.566011,19594335216.876434,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.468096,0.214170,5.107040,4781257.656785,117.504188,19584031362.189842,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.465344,0.214190,5.107360,4780800.288965,117.492948,19582157983.601147,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.465632,0.214221,5.101856,4780114.900035,117.476104,19579350630.542858,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.480256,0.214047,5.106400,4784002.037254,117.571634,19595272344.592785,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.476256,0.195860,5.101856,5228211.554283,128.488527,21414754526.344620,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.488224,0.196127,5.114400,5221113.939523,128.314096,21385682696.286430,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.473376,0.195727,5.123712,5231767.204686,128.575911,21429318470.391987,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.490048,0.196147,5.120544,5220569.346926,128.300712,21383452045.009975,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.480736,0.195983,5.132992,5224933.641317,128.407969,21401328194.833725,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.469632,0.183388,5.118496,5583784.729484,137.227094,22871182251.965656,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.475904,0.183112,5.113152,5592215.558440,137.434290,22905714927.370712,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.480608,0.183276,5.134688,5587216.424330,137.311431,22885238474.055183,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.461824,0.183378,5.108352,5584096.445036,137.234754,22872459038.866322,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.475168,0.183030,5.108832,5594718.253966,137.495796,22915965968.243382,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,512,6,1,0,0,12,4096,1024,1,4096,20,100,5.458304,0.136223,5.104896,7517101.397631,184.740284,30790047324.698372,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,512,6,1,0,0,12,4096,1024,1,4096,20,100,5.401056,0.134994,5.112768,7585527.332391,186.421920,31070319953.472721,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,512,6,1,0,0,12,4096,1024,1,4096,20,100,5.494208,0.136571,5.114144,7497937.749840,184.269318,30711553023.344490,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,512,6,1,0,0,12,4096,1024,1,4096,20,100,5.527648,0.136827,5.120448,7483909.986783,183.924572,30654095305.864239,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,512,6,1,0,0,12,4096,1024,1,4096,20,100,5.472672,0.136591,5.116384,7496813.855596,184.241697,30706949552.522987,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,512,6,1,0,0,12,4096,1024,1,4096,20,100,5.457664,0.128788,5.108160,7951021.328268,195.404300,32567383360.585842,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,512,6,1,0,0,12,4096,1024,1,4096,20,100,5.465312,0.128788,5.103328,7951021.328268,195.404300,32567383360.585842,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,512,6,1,0,0,12,4096,1024,1,4096,20,100,5.514336,0.128840,5.107296,7947861.623345,195.326647,32554441209.219452,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,512,6,1,0,0,12,4096,1024,1,4096,20,100,5.500416,0.128737,5.119744,7954184.467184,195.482037,32580339577.584213,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,512,6,1,0,0,12,4096,1024,1,4096,20,100,5.491296,0.128717,5.113408,7955449.690775,195.513132,32585521933.413116,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,1024,6,1,0,0,12,4096,1024,1,4096,20,100,5.513024,0.121641,5.108928,8418217.167524,206.886105,34481017518.178230,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,1024,6,1,0,0,12,4096,1024,1,4096,20,100,5.500672,0.121692,5.117696,8414675.312346,206.799060,34466510079.369530,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,1024,6,1,0,0,12,4096,1024,1,4096,20,100,5.509600,0.122931,5.113408,8329862.236339,204.714694,34119115720.044437,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,1024,6,1,0,0,12,4096,1024,1,4096,20,100,5.660672,0.121293,5.160384,8442380.771471,207.479950,34579991639.946915,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,1024,6,1,0,0,12,4096,1024,1,4096,20,100,5.510528,0.121549,5.109440,8424600.232818,207.042975,34507162553.624146,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,1024,6,1,0,0,12,4096,1024,1,4096,20,100,5.490656,0.120771,5.114944,8478887.660176,208.377143,34729523856.079414,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,1024,6,1,0,0,12,4096,1024,1,4096,20,100,5.489664,0.120197,5.109696,8519338.560559,209.371264,34895210744.050751,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,1024,6,1,0,0,12,4096,1024,1,4096,20,100,5.531840,0.120156,5.111840,8522242.948897,209.442643,34907107118.682503,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,1024,6,1,0,0,12,4096,1024,1,4096,20,100,5.499552,0.120617,5.115648,8489685.205462,208.642504,34773750601.572159,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,1024,6,1,0,0,12,4096,1024,1,4096,20,100,5.494816,0.120412,5.111392,8504124.783884,208.997371,34832895114.788116,0.000000,-1 diff --git a/results/fft_resident_direct_logN12_v100_summary.csv b/results/fft_resident_direct_logN12_v100_summary.csv new file mode 100644 index 0000000..f99fc8b --- /dev/null +++ b/results/fft_resident_direct_logN12_v100_summary.csv @@ -0,0 +1,14 @@ +rank,operator,precision,direction,normalization,placement,logN,N,batch,element_stride,batch_stride,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,stage_handoff,trials,median_kernel_ms,min_kernel_ms,max_kernel_ms,median_Gbutterfly_s,slowdown_vs_best +1,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.088750,0.088678,0.088832,283.558327,1.000000 +2,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,512,0,0,0,0,named-barrier,5,0.088996,0.088914,0.089098,282.775295,1.002772 +3,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,256,0,0,0,0,named-barrier,5,0.089631,0.089590,0.089692,280.772321,1.009927 +4,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,temporal-tile,auto,four-mul,table,shared,cufftdx-direct,0,1024,0,0,0,0,named-barrier,5,0.092467,0.092457,0.092570,272.159457,1.041882 +5,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,1024,6,1,0,0,named-barrier,5,0.120412,0.120156,0.120771,208.997371,1.356755 +6,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,1024,6,1,0,0,named-barrier,5,0.121641,0.121293,0.122931,206.886105,1.370603 +7,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,512,6,1,0,0,named-barrier,5,0.128788,0.128717,0.128840,195.404300,1.451132 +8,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,512,6,1,0,0,named-barrier,5,0.136571,0.134994,0.136827,184.269318,1.538828 +9,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,256,6,1,0,0,named-barrier,5,0.183276,0.183030,0.183388,137.311431,2.065082 +10,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,256,6,1,0,0,named-barrier,5,0.195983,0.195727,0.196147,128.407969,2.208259 +11,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,32,6,1,0,0,named-barrier,5,0.213207,0.212972,0.213780,118.034679,2.402332 +12,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,32,6,1,0,0,named-barrier,5,0.214170,0.214047,0.214221,117.504188,2.413183 +13,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,radix4,four-mul,table,shared,scalar,0,256,6,1,0,0,named-barrier,5,0.474358,0.448707,0.519823,53.052414,5.344879 diff --git a/results/fft_resident_logN12_v100_raw.csv b/results/fft_resident_logN12_v100_raw.csv new file mode 100644 index 0000000..3b58cb6 --- /dev/null +++ b/results/fft_resident_logN12_v100_raw.csv @@ -0,0 +1,31 @@ +trial,device,compute_capability,operator,precision,direction,normalization,placement,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,stage_handoff,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,logN,N,batch,element_stride,batch_stride,warmup,repeat,h2d_ms,kernel_ms,d2h_ms,transforms_s,Gbutterfly_s,points_s,max_error,correct +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.481568,0.519885,5.108960,1969667.032476,48.406537,8067756165.020374,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.474080,0.474296,5.108640,2158987.950230,53.059288,8843214644.140217,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.508064,0.474296,5.104800,2158987.950230,53.059288,8843214644.140217,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.536000,0.448727,5.117536,2282010.900471,56.082700,9347116648.327951,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.478144,0.448737,5.103424,2281958.764904,56.081419,9346903101.045385,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.479040,0.089006,5.116480,11504831.871306,282.742748,47123791344.867828,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.458560,0.088832,5.105344,11527377.728222,283.296835,47216139174.797523,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.496448,0.088750,5.114368,11538017.862908,283.558327,47259721166.472939,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.472736,0.088863,5.102304,11523391.889949,283.198879,47199813181.230110,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.479456,0.088750,5.104736,11538017.862908,283.558327,47259721166.472939,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.479968,0.213023,5.098304,4806998.904916,118.136805,19689467514.537819,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.474016,0.213012,5.103328,4807229.922912,118.142483,19690413764.246109,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.496064,0.213586,5.105792,4794323.674009,117.825299,19637549768.741608,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.467168,0.213228,5.109024,4802381.860891,118.023337,19670556102.209610,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.474752,0.213330,5.133824,4800076.663228,117.966684,19661114012.583534,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.466944,0.214077,5.125600,4783316.063009,117.554776,19592462594.083050,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.524480,0.213760,5.094976,4790419.418356,117.729348,19621557937.584373,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.486432,0.214200,5.101792,4780571.804151,117.487333,19581222109.802055,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.494336,0.214159,5.095808,4781486.207165,117.509805,19584967504.547977,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.474048,0.213750,5.103776,4790648.845485,117.734986,19622497671.104813,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.468160,0.151910,5.105280,6740815.885846,165.662291,27610381868.426357,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.480384,0.150508,5.116512,6803647.219889,167.206434,27867739012.665253,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.479840,0.151327,5.104704,6766815.717881,166.301263,27716877180.439423,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.473568,0.151153,5.105216,6774608.740298,166.492784,27748797400.259193,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.456672,0.150979,5.103776,6782420.402529,166.684764,27780793968.757401,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.492960,0.145060,5.106048,7059155.778942,173.485812,28914302070.546284,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.503552,0.145234,5.110784,7050694.772258,173.277875,28879645787.168152,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.499264,0.144896,5.117952,7067137.778767,173.681978,28946996341.829113,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.471360,0.145254,5.112896,7049700.225014,173.253433,28875572121.655445,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.456992,0.145295,5.101344,7047712.694810,173.204587,28867431197.940395,0.000000,-1 diff --git a/results/fft_resident_logN12_v100_summary.csv b/results/fft_resident_logN12_v100_summary.csv new file mode 100644 index 0000000..4eb1992 --- /dev/null +++ b/results/fft_resident_logN12_v100_summary.csv @@ -0,0 +1,7 @@ +rank,operator,precision,direction,normalization,placement,logN,N,batch,element_stride,batch_stride,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,stage_handoff,trials,median_kernel_ms,min_kernel_ms,max_kernel_ms,median_Gbutterfly_s,slowdown_vs_best +1,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.088832,0.088750,0.089006,283.296835,1.000000 +2,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,32,6,1,0,0,named-barrier,5,0.145234,0.144896,0.145295,173.277875,1.634929 +3,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,32,6,1,0,0,named-barrier,5,0.151153,0.150508,0.151910,166.492784,1.701560 +4,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,32,6,1,0,0,named-barrier,5,0.213228,0.213012,0.213586,118.023337,2.400351 +5,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,32,6,1,0,0,named-barrier,5,0.214077,0.213750,0.214200,117.554776,2.409909 +6,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,radix4,four-mul,table,shared,scalar,0,256,6,1,0,0,named-barrier,5,0.474296,0.448727,0.519885,53.059288,5.339247 diff --git a/results/fft_resident_padded_logN12_v100_raw.csv b/results/fft_resident_padded_logN12_v100_raw.csv new file mode 100644 index 0000000..fe1e4fc --- /dev/null +++ b/results/fft_resident_padded_logN12_v100_raw.csv @@ -0,0 +1,31 @@ +trial,device,compute_capability,operator,precision,direction,normalization,placement,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,stage_handoff,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,logN,N,batch,element_stride,batch_stride,warmup,repeat,h2d_ms,kernel_ms,d2h_ms,transforms_s,Gbutterfly_s,points_s,max_error,correct +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.530752,0.519813,5.113376,1969938.733522,48.413214,8068869052.504313,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.556864,0.474327,5.110272,2158847.958582,53.055847,8842641238.351761,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.519200,0.474337,5.106464,2158801.434370,53.054704,8842450675.178961,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.466048,0.448676,5.112160,2282271.310854,56.089100,9348183289.258106,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.469920,0.448758,5.103936,2281854.803995,56.078864,9346477277.163858,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.488832,0.088771,5.106144,11535355.746147,283.492903,47248817136.219704,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.476064,0.088812,5.103424,11530035.196237,283.362145,47227024163.788147,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.505664,0.088893,5.107936,11519409.772597,283.101015,47183502428.558167,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.468416,0.088863,5.122464,11523391.889949,283.198879,47199813181.230110,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.494016,0.088852,5.110208,11524720.518536,283.231531,47205255243.922935,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.465440,0.213320,5.115872,4800307.016339,117.972345,19662057538.925323,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.455904,0.213473,5.108448,4796853.369784,117.887468,19647911402.634197,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.453728,0.213402,5.106336,4798464.475207,117.927063,19654510490.447445,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.457248,0.213002,5.102944,4807460.963113,118.148161,19691360104.909782,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.505696,0.212705,5.103072,4814172.826478,118.313111,19718851897.252216,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.498912,0.213750,5.105728,4790648.845485,117.734986,19622497671.104813,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.482944,0.214159,5.107712,4781486.207165,117.509805,19584967504.547977,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.507072,0.224215,5.114656,4567044.399028,112.239683,18706613858.417355,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.495872,0.224133,5.110336,4568713.167195,112.280695,18713449132.832493,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.497248,0.224164,5.113568,4568087.539901,112.265319,18710886563.435612,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.494912,0.145203,5.111744,7052186.033815,173.314524,28885753994.506393,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.486112,0.145326,5.115488,7046223.324325,173.167984,28861330736.436020,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.479328,0.147292,5.117920,6952169.452125,170.856516,28476086075.904064,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.520768,0.145162,5.115488,7054176.088235,173.363432,28893905257.408657,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.520448,0.145449,5.105632,7040269.968133,173.021675,28836945789.473217,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.515296,0.135158,5.112096,7576331.318402,186.195918,31032653080.174339,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.489760,0.135066,5.113920,7581501.121733,186.322972,31053828594.618835,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.500352,0.135311,5.115168,7567731.740808,185.984575,30997429210.351616,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.507168,0.135905,5.116192,7534659.394071,185.171789,30861964878.116856,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.536224,0.134789,5.127072,7597052.110846,186.705153,31117525446.024094,0.000000,-1 diff --git a/results/fft_resident_padded_logN12_v100_summary.csv b/results/fft_resident_padded_logN12_v100_summary.csv new file mode 100644 index 0000000..2558827 --- /dev/null +++ b/results/fft_resident_padded_logN12_v100_summary.csv @@ -0,0 +1,7 @@ +rank,operator,precision,direction,normalization,placement,logN,N,batch,element_stride,batch_stride,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,stage_handoff,trials,median_kernel_ms,min_kernel_ms,max_kernel_ms,median_Gbutterfly_s,slowdown_vs_best +1,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.088852,0.088771,0.088893,283.231531,1.000000 +2,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,32,6,1,0,0,named-barrier,5,0.135158,0.134789,0.135905,186.195918,1.521159 +3,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,32,6,1,0,0,named-barrier,5,0.145326,0.145162,0.147292,173.167984,1.635596 +4,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,32,6,1,0,0,named-barrier,5,0.213320,0.212705,0.213473,117.972345,2.400846 +5,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,32,6,1,0,0,named-barrier,5,0.224133,0.213750,0.224215,112.280695,2.522543 +6,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,radix4,four-mul,table,shared,scalar,0,256,6,1,0,0,named-barrier,5,0.474327,0.448676,0.519813,53.055847,5.338394 diff --git a/results/fft_resident_threads_logN12_v100_raw.csv b/results/fft_resident_threads_logN12_v100_raw.csv new file mode 100644 index 0000000..dc01de2 --- /dev/null +++ b/results/fft_resident_threads_logN12_v100_raw.csv @@ -0,0 +1,51 @@ +trial,device,compute_capability,operator,precision,direction,normalization,placement,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,stage_handoff,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,logN,N,batch,element_stride,batch_stride,warmup,repeat,h2d_ms,kernel_ms,d2h_ms,transforms_s,Gbutterfly_s,points_s,max_error,correct +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.486080,0.519834,5.103520,1969861.032470,48.411305,8068550788.995433,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.495296,0.452618,5.105792,2262392.247020,55.600552,9266758643.795349,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.491072,0.448707,5.115168,2282115.178752,56.085263,9347543772.167719,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.523392,0.448748,5.113248,2281906.783265,56.080141,9346690184.254616,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,radix4,four-mul,table,shared,scalar,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.540288,0.448758,5.106816,2281854.803995,56.078864,9346477277.163858,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.480320,0.088740,5.112224,11539348.897692,283.591039,47265173084.944832,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.503680,0.088852,5.109152,11524720.518536,283.231531,47205255243.922935,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.510592,0.088812,5.111456,11530035.196237,283.362145,47227024163.788147,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.510208,0.089047,5.112096,11499539.435253,282.612681,47102113526.797043,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,cufft,auto,four-mul,table,shared,scalar,0,named-barrier,0,0,0,0,0,12,4096,1024,1,4096,20,100,5.508192,0.088996,5.122496,11506156.223213,282.775295,47129215890.279465,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.434080,0.212675,5.106848,4814868.354948,118.330205,19721700781.865463,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.535584,0.212326,5.114880,4822763.613094,118.524239,19754039759.234467,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.497216,0.212726,5.111136,4813709.477252,118.301724,19716954018.823486,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.534400,0.212664,5.102944,4815100.129971,118.335901,19722650132.360626,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.480576,0.212972,5.124512,4808154.889816,118.165215,19694202428.686375,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.473024,0.224707,5.119136,4557054.312517,111.994167,18665694464.068958,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.469248,0.224297,5.108320,4565376.242882,112.198687,18699781090.844635,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.481120,0.224061,5.111040,4570175.251860,112.316627,18719437831.619949,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.482624,0.224532,5.111680,4560587.604597,112.081001,18680166828.431339,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,named-barrier,32,6,1,0,0,12,4096,1024,1,4096,20,100,5.512832,0.224369,5.110688,4563917.529807,112.162837,18693806202.090771,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.473792,0.217108,5.114464,4716536.323955,115.913597,19318932782.919418,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.465184,0.217303,5.123744,4712313.002551,115.809804,19301634058.450546,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.477312,0.217252,5.111872,4713423.890657,115.837106,19306184256.129078,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.500544,0.217160,5.112480,4715424.291990,115.886267,19314377899.989563,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.505248,0.217211,5.114048,4714312.460862,115.858943,19309823839.692398,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.471616,0.202127,5.111680,5066112.589754,124.504783,20750797167.633427,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.546144,0.201062,5.120032,5092946.366464,125.164250,20860708317.037140,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.484832,0.201155,5.109472,5090612.913573,125.106903,20851150493.994408,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.461184,0.201073,5.110528,5092687.072154,125.157877,20859646247.542641,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,256,6,1,0,0,12,4096,1024,1,4096,20,100,5.471808,0.200960,5.113664,5095541.140357,125.228019,20871336510.902184,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,512,6,1,0,0,12,4096,1024,1,4096,20,100,5.464448,0.144753,5.107776,7074137.123804,173.853994,28975665659.101204,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,512,6,1,0,0,12,4096,1024,1,4096,20,100,5.458816,0.145121,5.111392,7056167.266117,173.412367,28902061122.014709,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,512,6,1,0,0,12,4096,1024,1,4096,20,100,5.484384,0.145295,5.111808,7047712.694810,173.204587,28867431197.940395,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,512,6,1,0,0,12,4096,1024,1,4096,20,100,5.490816,0.144804,5.115552,7071635.818684,173.792522,28965420313.331425,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,512,6,1,0,0,12,4096,1024,1,4096,20,100,5.498944,0.145009,5.119392,7061648.261678,173.547068,28924511279.831348,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,512,6,1,0,0,12,4096,1024,1,4096,20,100,5.460896,0.135004,5.110112,7584951.299650,186.407763,31067960523.367390,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,512,6,1,0,0,12,4096,1024,1,4096,20,100,5.470496,0.135506,5.112320,7556864.877455,185.717511,30952918538.053978,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,512,6,1,0,0,12,4096,1024,1,4096,20,100,5.468256,0.135332,5.105248,7566585.994266,185.956417,30992736232.513531,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,512,6,1,0,0,12,4096,1024,1,4096,20,100,5.488736,0.135680,5.115520,7547169.535737,185.479239,30913206418.377979,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,512,6,1,0,0,12,4096,1024,1,4096,20,100,5.481824,0.135373,5.132544,7564296.374295,185.900148,30983357949.110786,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,1024,6,1,0,0,12,4096,1024,1,4096,20,100,5.513408,0.130929,5.126592,7821054.541117,192.210236,32035039400.416458,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,1024,6,1,0,0,12,4096,1024,1,4096,20,100,5.493728,0.130417,5.112672,7851758.396629,192.964814,32160802392.594337,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,1024,6,1,0,0,12,4096,1024,1,4096,20,100,5.388576,0.134318,5.110176,7623694.242270,187.359910,31226651616.337109,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,1024,6,1,0,0,12,4096,1024,1,4096,20,100,5.499488,0.130867,5.108608,7824726.247613,192.300472,32050078710.223881,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,named-barrier,1024,6,1,0,0,12,4096,1024,1,4096,20,100,5.482592,0.131082,5.106880,7811889.888800,191.985006,31997500984.525700,0.000000,-1 +1,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,1024,6,1,0,0,12,4096,1024,1,4096,20,100,5.488032,0.125399,5.105088,8165931.850312,200.685941,33447656858.877193,0.000000,-1 +2,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,1024,6,1,0,0,12,4096,1024,1,4096,20,100,5.514912,0.123843,5.109824,8268562.442681,203.208191,33868031765.221096,0.000000,-1 +3,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,1024,6,1,0,0,12,4096,1024,1,4096,20,100,5.548608,0.125624,5.120800,8151287.329135,200.326037,33387672900.138618,0.000000,-1 +4,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,1024,6,1,0,0,12,4096,1024,1,4096,20,100,5.501984,0.124938,5.098816,8196049.363922,201.426109,33571018194.623425,0.000000,-1 +5,Tesla V100-SXM2-16GB,7.0,fft,fp32,forward,none,out-of-place,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,named-barrier,1024,6,1,0,0,12,4096,1024,1,4096,20,100,5.504000,0.125204,5.119168,8178621.493800,200.997802,33499633638.604530,0.000000,-1 diff --git a/results/fft_resident_threads_logN12_v100_summary.csv b/results/fft_resident_threads_logN12_v100_summary.csv new file mode 100644 index 0000000..caa75d8 --- /dev/null +++ b/results/fft_resident_threads_logN12_v100_summary.csv @@ -0,0 +1,11 @@ +rank,operator,precision,direction,normalization,placement,logN,N,batch,element_stride,batch_stride,backend,compute_unit,complex_multiply,cross_twiddle,local_exchange,fft_core,stage_space,tile_threads,local_stages,reorder_columns,warp_stages,pipeline_warps,stage_handoff,trials,median_kernel_ms,min_kernel_ms,max_kernel_ms,median_Gbutterfly_s,slowdown_vs_best +1,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,cufft,auto,four-mul,table,shared,scalar,0,0,0,0,0,0,named-barrier,5,0.088852,0.088740,0.089047,283.231531,1.000000 +2,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,1024,6,1,0,0,named-barrier,5,0.125204,0.123843,0.125624,200.997802,1.409130 +3,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,1024,6,1,0,0,named-barrier,5,0.130929,0.130417,0.134318,192.210236,1.473563 +4,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,512,6,1,0,0,named-barrier,5,0.135373,0.135004,0.135680,185.900148,1.523579 +5,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,512,6,1,0,0,named-barrier,5,0.145009,0.144753,0.145295,173.547068,1.632029 +6,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,recurrence,shared,cufftdx-resident,0,256,6,1,0,0,named-barrier,5,0.201073,0.200960,0.202127,125.157877,2.263010 +7,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,table,shared,cufftdx-block,0,32,6,1,0,0,named-barrier,5,0.212675,0.212326,0.212972,118.330205,2.393587 +8,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,table,shared,cufftdx-resident,0,256,6,1,0,0,named-barrier,5,0.217211,0.217108,0.217303,115.858943,2.444638 +9,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,auto,four-mul,recurrence,shared,cufftdx-block,0,32,6,1,0,0,named-barrier,5,0.224369,0.224061,0.224707,112.162837,2.525199 +10,fft,fp32,forward,none,out-of-place,12,4096,1024,1,4096,online-reorder,radix4,four-mul,table,shared,scalar,0,256,6,1,0,0,named-barrier,5,0.448758,0.448707,0.519834,56.078864,5.050624 diff --git a/results/ncu_fft_resident/cufft_logN12.csv b/results/ncu_fft_resident/cufft_logN12.csv new file mode 100644 index 0000000..66b83df --- /dev/null +++ b/results/ncu_fft_resident/cufft_logN12.csv @@ -0,0 +1,6 @@ +==WARNING== Note: Running with uncontrolled GPU caches. Profiling results may be inconsistent. +==PROF== Connected to process 781407 (/home/wt/git/Hermes/cuNTT/build/cubutterfly_bench) +==PROF== Disconnected from process 781407 +"ID","Process ID","Process Name","Host Name","Kernel Name","Kernel Time","Context","Stream","device__attribute_architecture","device__attribute_async_engine_count","device__attribute_can_flush_remote_writes","device__attribute_can_map_host_memory","device__attribute_can_tex2d_gather","device__attribute_can_use_64_bit_stream_mem_ops","device__attribute_can_use_64_bit_stream_mem_ops_v2","device__attribute_can_use_host_pointer_for_registered_mem","device__attribute_can_use_stream_mem_ops","device__attribute_can_use_stream_wait_value_nor","device__attribute_can_use_stream_wait_value_nor_v2","device__attribute_chip","device__attribute_clock_rate","device__attribute_compute_capability_major","device__attribute_compute_capability_minor","device__attribute_compute_mode","device__attribute_compute_preemption_supported","device__attribute_concurrent_kernels","device__attribute_concurrent_managed_access","device__attribute_cooperative_launch","device__attribute_cooperative_multi_device_launch","device__attribute_device_index","device__attribute_direct_managed_mem_access_from_host","device__attribute_display_name","device__attribute_ecc_enabled","device__attribute_fb_bus_width","device__attribute_fbp_count","device__attribute_generic_compression_supported","device__attribute_global_l1_cache_supported","device__attribute_global_memory_bus_width","device__attribute_gpu_direct_rdma_flush_writes_options","device__attribute_gpu_direct_rdma_supported","device__attribute_gpu_direct_rdma_with_cuda_vmm_supported","device__attribute_gpu_direct_rdma_writes_ordering","device__attribute_gpu_overlap","device__attribute_gpu_pci_device_id","device__attribute_gpu_pci_ext_device_id","device__attribute_gpu_pci_ext_downstream_link_rate","device__attribute_gpu_pci_ext_downstream_link_width","device__attribute_gpu_pci_ext_gen","device__attribute_gpu_pci_ext_gpu_gen","device__attribute_gpu_pci_ext_gpu_link_rate","device__attribute_gpu_pci_ext_gpu_link_width","device__attribute_gpu_pci_revision_id","device__attribute_gpu_pci_sub_system_id","device__attribute_handle_type_posix_file_descriptor_supported","device__attribute_handle_type_win32_handle_supported","device__attribute_handle_type_win32_kmt_handle_supported","device__attribute_host_native_atomic_supported","device__attribute_host_register_supported","device__attribute_implementation","device__attribute_integrated","device__attribute_kernel_exec_timeout","device__attribute_l2_cache_size","device__attribute_l2s_count","device__attribute_limits_max_cta_per_sm","device__attribute_local_l1_cache_supported","device__attribute_managed_memory","device__attribute_max_access_policy_window_size","device__attribute_max_block_dim_x","device__attribute_max_block_dim_y","device__attribute_max_block_dim_z","device__attribute_max_blocks_per_multiprocessor","device__attribute_max_gpu_frequency_khz","device__attribute_max_grid_dim_x","device__attribute_max_grid_dim_y","device__attribute_max_grid_dim_z","device__attribute_max_ipc_per_multiprocessor","device__attribute_max_ipc_per_scheduler","device__attribute_max_mem_frequency_khz","device__attribute_max_persisting_l2_cache_size","device__attribute_max_pitch","device__attribute_max_registers_per_block","device__attribute_max_registers_per_multiprocessor","device__attribute_max_registers_per_thread","device__attribute_max_shared_memory_per_block","device__attribute_max_shared_memory_per_block_optin","device__attribute_max_shared_memory_per_multiprocessor","device__attribute_max_threads_per_block","device__attribute_max_threads_per_multiprocessor","device__attribute_max_warps_per_multiprocessor","device__attribute_max_warps_per_scheduler","device__attribute_maximum_surface1d_layered_layers","device__attribute_maximum_surface1d_layered_width","device__attribute_maximum_surface1d_width","device__attribute_maximum_surface2d_height","device__attribute_maximum_surface2d_layered_height","device__attribute_maximum_surface2d_layered_layers","device__attribute_maximum_surface2d_layered_width","device__attribute_maximum_surface2d_width","device__attribute_maximum_surface3d_depth","device__attribute_maximum_surface3d_height","device__attribute_maximum_surface3d_width","device__attribute_maximum_surfacecubemap_layered_layers","device__attribute_maximum_surfacecubemap_layered_width","device__attribute_maximum_surfacecubemap_width","device__attribute_maximum_texture1d_layered_layers","device__attribute_maximum_texture1d_layered_width","device__attribute_maximum_texture1d_linear_width","device__attribute_maximum_texture1d_mipmapped_width","device__attribute_maximum_texture1d_width","device__attribute_maximum_texture2d_gather_height","device__attribute_maximum_texture2d_gather_width","device__attribute_maximum_texture2d_height","device__attribute_maximum_texture2d_layered_height","device__attribute_maximum_texture2d_layered_layers","device__attribute_maximum_texture2d_layered_width","device__attribute_maximum_texture2d_linear_height","device__attribute_maximum_texture2d_linear_pitch","device__attribute_maximum_texture2d_linear_width","device__attribute_maximum_texture2d_mipmapped_height","device__attribute_maximum_texture2d_mipmapped_width","device__attribute_maximum_texture2d_width","device__attribute_maximum_texture3d_depth","device__attribute_maximum_texture3d_depth_alternate","device__attribute_maximum_texture3d_height","device__attribute_maximum_texture3d_height_alternate","device__attribute_maximum_texture3d_width","device__attribute_maximum_texture3d_width_alternate","device__attribute_maximum_texturecubemap_layered_layers","device__attribute_maximum_texturecubemap_layered_width","device__attribute_maximum_texturecubemap_width","device__attribute_memory_clock_rate","device__attribute_memory_pools_supported","device__attribute_mempool_supported_handle_types","device__attribute_multi_gpu_board","device__attribute_multi_gpu_board_group_id","device__attribute_multiprocessor_count","device__attribute_num_l2s_per_fbp","device__attribute_num_schedulers_per_multiprocessor","device__attribute_num_tex_per_multiprocessor","device__attribute_pageable_memory_access","device__attribute_pageable_memory_access_uses_host_page_tables","device__attribute_pci_bus_id","device__attribute_pci_device_id","device__attribute_pci_domain_id","device__attribute_ram_location","device__attribute_ram_type","device__attribute_reserved_shared_memory_per_block","device__attribute_sass_level","device__attribute_single_to_double_precision_perf_ratio","device__attribute_sparse_cuda_array_supported","device__attribute_stream_priorities_supported","device__attribute_surface_alignment","device__attribute_tcc_driver","device__attribute_texture_alignment","device__attribute_texture_pitch_alignment","device__attribute_total_constant_memory","device__attribute_total_memory","device__attribute_unified_addressing","device__attribute_virtual_address_management_supported","device__attribute_warp_size","dram__bytes_read.sum","dram__bytes_write.sum","dram__throughput.avg.pct_of_peak_sustained_elapsed","gpu__time_duration.sum","l1tex__data_bank_conflicts_pipe_lsu_mem_shared_op_ld.sum","l1tex__data_bank_conflicts_pipe_lsu_mem_shared_op_st.sum","l1tex__t_sector_hit_rate.pct","launch__block_dim_x","launch__block_dim_y","launch__block_dim_z","launch__block_size","launch__context_id","launch__device_id","launch__func_cache_config","launch__function_pcs","launch__grid_dim_x","launch__grid_dim_y","launch__grid_dim_z","launch__grid_size","launch__occupancy_limit_blocks","launch__occupancy_limit_registers","launch__occupancy_limit_shared_mem","launch__occupancy_limit_warps","launch__occupancy_per_block_size","launch__occupancy_per_register_count","launch__occupancy_per_shared_mem_size","launch__registers_per_thread","launch__registers_per_thread_allocated","launch__shared_mem_config_size","launch__shared_mem_per_block","launch__shared_mem_per_block_allocated","launch__shared_mem_per_block_driver","launch__shared_mem_per_block_dynamic","launch__shared_mem_per_block_static","launch__stream_id","launch__thread_count","launch__waves_per_multiprocessor","lts__t_sector_hit_rate.pct","nvlink__bandwidth","nvlink__count_logical","nvlink__count_physical","nvlink__destination_ports","nvlink__dev0Id","nvlink__dev0type","nvlink__dev1Id","nvlink__dev1type","nvlink__dev_display_name_all","nvlink__enabled_mask","nvlink__is_direct_link","nvlink__is_nvswitch_connected","nvlink__max_count","nvlink__peer_access","nvlink__peer_atomic","nvlink__source_ports","nvlink__system_access","nvlink__system_atomic","profiler__perfworks_session_reuse","profiler__replayer_bytes_mem_accessible.avg","profiler__replayer_bytes_mem_accessible.max","profiler__replayer_bytes_mem_accessible.min","profiler__replayer_bytes_mem_accessible.sum","profiler__replayer_bytes_mem_backed_up.avg","profiler__replayer_bytes_mem_backed_up.max","profiler__replayer_bytes_mem_backed_up.min","profiler__replayer_bytes_mem_backed_up.sum","profiler__replayer_passes","profiler__replayer_passes_type_warmup","sm__maximum_warps_avg_per_active_cycle","sm__maximum_warps_per_active_cycle_pct","sm__warps_active.avg.pct_of_peak_sustained_active","smsp__inst_executed.sum","smsp__maximum_warps_avg_per_active_cycle","smsp__sass_thread_inst_executed_op_fp32_pred_on.sum","smsp__warp_issue_stalled_barrier_per_warp_active.pct","smsp__warp_issue_stalled_long_scoreboard_per_warp_active.pct" +"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","byte","byte","%","nsecond","","","%","block","block","block","","","","","","","","","","block","block","block","block","","","","register/thread","register/thread","byte","byte/block","byte/block","byte/block","byte/block","byte/block","","thread","","%","","","","","","","","","","","","","","","","","","","","byte","byte","byte","byte","byte","byte","byte","byte","","","warp","%","%","inst","warp","inst","%","%" +"0","781407","cubutterfly_bench","127.0.0.1","void vector_fft<(unsigned int)4096, (unsigned int)16, (unsigned int)1, (unsigned int)5, (padding_t)6, (twiddle_t)0, (loadstore_modifier_t)2, (layout_t)0, unsigned int, float>(kernel_arguments_t)","2026-Jul-23 21:22:21","1","7","320","2","0","1","1","0","1","1","0","0","1","320","1,530,000","7","0","0","1","1","1","1","1","0","0","Tesla V100-SXM2-16GB","0","4,096","8","0","1","4,096","1","1","1","0","1","498,143,454","7,601","32,000","16","2","2","8,000","16","161","303,173,854","1","0","0","0","1","320","0","1","6,291,456","64","32","1","1","0","1,024","1,024","64","32","1,530,000","2,147,483,647","65,535","65,535","4","1","877,000","0","2,147,483,647","65,536","65,536","255","49,152","98,304","98,304","1,024","2,048","64","16","2,048","32,768","32,768","65,536","32,768","2,048","32,768","131,072","16,384","16,384","16,384","2,046","32,768","32,768","2,048","32,768","268,435,456","32,768","131,072","32,768","32,768","65,536","32,768","2,048","32,768","65,000","2,097,120","131,072","32,768","32,768","131,072","16,384","32,768","16,384","8,192","16,384","8,192","2,046","32,768","32,768","877,000","1","9","0","0","80","8","4","1","0","0","168","0","0","1","15","0","7","2","1","1","512","0","512","32","65,536","16,928,342,016","1","1","32","33,556,864","33,335,584","79.88","93,248","34,072","271,492","2.82","256","1","1","256","1","0","cudaFuncCachePreferNone","129,192,065,086,720","1,024","1","1","1,024","32","5","5","8","1,845","4,648","2,776","48","12,288","98,304","16,896","16,896","0","16,896","0","7","262,144","2.56","50.85","0","0","0","no data","0","0","0","0","","0","0","0","6","0","0","no data","0","0","0","77,929,040","77,929,040","77,929,040","311,716,160","77,929,040","77,929,040","77,929,040","311,716,160","4","0","40","62.50","57.20","8,290,304","10","207,355,904","8.43","24.60" diff --git a/results/ncu_fft_resident/direct_512_logN12.csv b/results/ncu_fft_resident/direct_512_logN12.csv new file mode 100644 index 0000000..f9f9a9a --- /dev/null +++ b/results/ncu_fft_resident/direct_512_logN12.csv @@ -0,0 +1,6 @@ +==WARNING== Note: Running with uncontrolled GPU caches. Profiling results may be inconsistent. +==PROF== Connected to process 779725 (/home/wt/git/Hermes/cuNTT/build/cubutterfly_bench) +==PROF== Disconnected from process 779725 +"ID","Process ID","Process Name","Host Name","Kernel Name","Kernel Time","Context","Stream","device__attribute_architecture","device__attribute_async_engine_count","device__attribute_can_flush_remote_writes","device__attribute_can_map_host_memory","device__attribute_can_tex2d_gather","device__attribute_can_use_64_bit_stream_mem_ops","device__attribute_can_use_64_bit_stream_mem_ops_v2","device__attribute_can_use_host_pointer_for_registered_mem","device__attribute_can_use_stream_mem_ops","device__attribute_can_use_stream_wait_value_nor","device__attribute_can_use_stream_wait_value_nor_v2","device__attribute_chip","device__attribute_clock_rate","device__attribute_compute_capability_major","device__attribute_compute_capability_minor","device__attribute_compute_mode","device__attribute_compute_preemption_supported","device__attribute_concurrent_kernels","device__attribute_concurrent_managed_access","device__attribute_cooperative_launch","device__attribute_cooperative_multi_device_launch","device__attribute_device_index","device__attribute_direct_managed_mem_access_from_host","device__attribute_display_name","device__attribute_ecc_enabled","device__attribute_fb_bus_width","device__attribute_fbp_count","device__attribute_generic_compression_supported","device__attribute_global_l1_cache_supported","device__attribute_global_memory_bus_width","device__attribute_gpu_direct_rdma_flush_writes_options","device__attribute_gpu_direct_rdma_supported","device__attribute_gpu_direct_rdma_with_cuda_vmm_supported","device__attribute_gpu_direct_rdma_writes_ordering","device__attribute_gpu_overlap","device__attribute_gpu_pci_device_id","device__attribute_gpu_pci_ext_device_id","device__attribute_gpu_pci_ext_downstream_link_rate","device__attribute_gpu_pci_ext_downstream_link_width","device__attribute_gpu_pci_ext_gen","device__attribute_gpu_pci_ext_gpu_gen","device__attribute_gpu_pci_ext_gpu_link_rate","device__attribute_gpu_pci_ext_gpu_link_width","device__attribute_gpu_pci_revision_id","device__attribute_gpu_pci_sub_system_id","device__attribute_handle_type_posix_file_descriptor_supported","device__attribute_handle_type_win32_handle_supported","device__attribute_handle_type_win32_kmt_handle_supported","device__attribute_host_native_atomic_supported","device__attribute_host_register_supported","device__attribute_implementation","device__attribute_integrated","device__attribute_kernel_exec_timeout","device__attribute_l2_cache_size","device__attribute_l2s_count","device__attribute_limits_max_cta_per_sm","device__attribute_local_l1_cache_supported","device__attribute_managed_memory","device__attribute_max_access_policy_window_size","device__attribute_max_block_dim_x","device__attribute_max_block_dim_y","device__attribute_max_block_dim_z","device__attribute_max_blocks_per_multiprocessor","device__attribute_max_gpu_frequency_khz","device__attribute_max_grid_dim_x","device__attribute_max_grid_dim_y","device__attribute_max_grid_dim_z","device__attribute_max_ipc_per_multiprocessor","device__attribute_max_ipc_per_scheduler","device__attribute_max_mem_frequency_khz","device__attribute_max_persisting_l2_cache_size","device__attribute_max_pitch","device__attribute_max_registers_per_block","device__attribute_max_registers_per_multiprocessor","device__attribute_max_registers_per_thread","device__attribute_max_shared_memory_per_block","device__attribute_max_shared_memory_per_block_optin","device__attribute_max_shared_memory_per_multiprocessor","device__attribute_max_threads_per_block","device__attribute_max_threads_per_multiprocessor","device__attribute_max_warps_per_multiprocessor","device__attribute_max_warps_per_scheduler","device__attribute_maximum_surface1d_layered_layers","device__attribute_maximum_surface1d_layered_width","device__attribute_maximum_surface1d_width","device__attribute_maximum_surface2d_height","device__attribute_maximum_surface2d_layered_height","device__attribute_maximum_surface2d_layered_layers","device__attribute_maximum_surface2d_layered_width","device__attribute_maximum_surface2d_width","device__attribute_maximum_surface3d_depth","device__attribute_maximum_surface3d_height","device__attribute_maximum_surface3d_width","device__attribute_maximum_surfacecubemap_layered_layers","device__attribute_maximum_surfacecubemap_layered_width","device__attribute_maximum_surfacecubemap_width","device__attribute_maximum_texture1d_layered_layers","device__attribute_maximum_texture1d_layered_width","device__attribute_maximum_texture1d_linear_width","device__attribute_maximum_texture1d_mipmapped_width","device__attribute_maximum_texture1d_width","device__attribute_maximum_texture2d_gather_height","device__attribute_maximum_texture2d_gather_width","device__attribute_maximum_texture2d_height","device__attribute_maximum_texture2d_layered_height","device__attribute_maximum_texture2d_layered_layers","device__attribute_maximum_texture2d_layered_width","device__attribute_maximum_texture2d_linear_height","device__attribute_maximum_texture2d_linear_pitch","device__attribute_maximum_texture2d_linear_width","device__attribute_maximum_texture2d_mipmapped_height","device__attribute_maximum_texture2d_mipmapped_width","device__attribute_maximum_texture2d_width","device__attribute_maximum_texture3d_depth","device__attribute_maximum_texture3d_depth_alternate","device__attribute_maximum_texture3d_height","device__attribute_maximum_texture3d_height_alternate","device__attribute_maximum_texture3d_width","device__attribute_maximum_texture3d_width_alternate","device__attribute_maximum_texturecubemap_layered_layers","device__attribute_maximum_texturecubemap_layered_width","device__attribute_maximum_texturecubemap_width","device__attribute_memory_clock_rate","device__attribute_memory_pools_supported","device__attribute_mempool_supported_handle_types","device__attribute_multi_gpu_board","device__attribute_multi_gpu_board_group_id","device__attribute_multiprocessor_count","device__attribute_num_l2s_per_fbp","device__attribute_num_schedulers_per_multiprocessor","device__attribute_num_tex_per_multiprocessor","device__attribute_pageable_memory_access","device__attribute_pageable_memory_access_uses_host_page_tables","device__attribute_pci_bus_id","device__attribute_pci_device_id","device__attribute_pci_domain_id","device__attribute_ram_location","device__attribute_ram_type","device__attribute_reserved_shared_memory_per_block","device__attribute_sass_level","device__attribute_single_to_double_precision_perf_ratio","device__attribute_sparse_cuda_array_supported","device__attribute_stream_priorities_supported","device__attribute_surface_alignment","device__attribute_tcc_driver","device__attribute_texture_alignment","device__attribute_texture_pitch_alignment","device__attribute_total_constant_memory","device__attribute_total_memory","device__attribute_unified_addressing","device__attribute_virtual_address_management_supported","device__attribute_warp_size","dram__bytes_read.sum","dram__bytes_write.sum","dram__throughput.avg.pct_of_peak_sustained_elapsed","gpu__time_duration.sum","l1tex__data_bank_conflicts_pipe_lsu_mem_shared_op_ld.sum","l1tex__data_bank_conflicts_pipe_lsu_mem_shared_op_st.sum","l1tex__t_sector_hit_rate.pct","launch__block_dim_x","launch__block_dim_y","launch__block_dim_z","launch__block_size","launch__context_id","launch__device_id","launch__func_cache_config","launch__function_pcs","launch__grid_dim_x","launch__grid_dim_y","launch__grid_dim_z","launch__grid_size","launch__occupancy_limit_blocks","launch__occupancy_limit_registers","launch__occupancy_limit_shared_mem","launch__occupancy_limit_warps","launch__occupancy_per_block_size","launch__occupancy_per_register_count","launch__occupancy_per_shared_mem_size","launch__registers_per_thread","launch__registers_per_thread_allocated","launch__shared_mem_config_size","launch__shared_mem_per_block","launch__shared_mem_per_block_allocated","launch__shared_mem_per_block_driver","launch__shared_mem_per_block_dynamic","launch__shared_mem_per_block_static","launch__stream_id","launch__thread_count","launch__waves_per_multiprocessor","lts__t_sector_hit_rate.pct","nvlink__bandwidth","nvlink__count_logical","nvlink__count_physical","nvlink__destination_ports","nvlink__dev0Id","nvlink__dev0type","nvlink__dev1Id","nvlink__dev1type","nvlink__dev_display_name_all","nvlink__enabled_mask","nvlink__is_direct_link","nvlink__is_nvswitch_connected","nvlink__max_count","nvlink__peer_access","nvlink__peer_atomic","nvlink__source_ports","nvlink__system_access","nvlink__system_atomic","profiler__perfworks_session_reuse","profiler__replayer_bytes_mem_accessible.avg","profiler__replayer_bytes_mem_accessible.max","profiler__replayer_bytes_mem_accessible.min","profiler__replayer_bytes_mem_accessible.sum","profiler__replayer_bytes_mem_backed_up.avg","profiler__replayer_bytes_mem_backed_up.max","profiler__replayer_bytes_mem_backed_up.min","profiler__replayer_bytes_mem_backed_up.sum","profiler__replayer_passes","profiler__replayer_passes_type_warmup","sm__maximum_warps_avg_per_active_cycle","sm__maximum_warps_per_active_cycle_pct","sm__warps_active.avg.pct_of_peak_sustained_active","smsp__inst_executed.sum","smsp__maximum_warps_avg_per_active_cycle","smsp__sass_thread_inst_executed_op_fp32_pred_on.sum","smsp__warp_issue_stalled_barrier_per_warp_active.pct","smsp__warp_issue_stalled_long_scoreboard_per_warp_active.pct" +"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","byte","byte","%","nsecond","","","%","block","block","block","","","","","","","","","","block","block","block","block","","","","register/thread","register/thread","byte","byte/block","byte/block","byte/block","byte/block","byte/block","","thread","","%","","","","","","","","","","","","","","","","","","","","byte","byte","byte","byte","byte","byte","byte","byte","","","warp","%","%","inst","warp","inst","%","%" +"0","779725","cubutterfly_bench","127.0.0.1","void cuntt::detail::::cufftdx_block_kernel, cufftdx::Type<(cufftdx::fft_type)0>, cufftdx::Direction<(cufftdx::fft_direction)0>, cufftdx::Precision, cufftdx::ElementsPerThread<(unsigned int)8>, cufftdx::FFTsPerBlock<(unsigned int)1>, cufftdx::SM<(unsigned int)700>>>(const cuntt::Complex32 *, cuntt::Complex32 *, unsigned long, unsigned long, unsigned long, bool)","2026-Jul-23 21:22:20","1","7","320","2","0","1","1","0","1","1","0","0","1","320","1,530,000","7","0","0","1","1","1","1","1","0","0","Tesla V100-SXM2-16GB","0","4,096","8","0","1","4,096","1","1","1","0","1","498,143,454","7,601","32,000","16","2","2","8,000","16","161","303,173,854","1","0","0","0","1","320","0","1","6,291,456","64","32","1","1","0","1,024","1,024","64","32","1,530,000","2,147,483,647","65,535","65,535","4","1","877,000","0","2,147,483,647","65,536","65,536","255","49,152","98,304","98,304","1,024","2,048","64","16","2,048","32,768","32,768","65,536","32,768","2,048","32,768","131,072","16,384","16,384","16,384","2,046","32,768","32,768","2,048","32,768","268,435,456","32,768","131,072","32,768","32,768","65,536","32,768","2,048","32,768","65,000","2,097,120","131,072","32,768","32,768","131,072","16,384","32,768","16,384","8,192","16,384","8,192","2,046","32,768","32,768","877,000","1","9","0","0","80","8","4","1","0","0","168","0","0","1","15","0","7","2","1","1","512","0","512","32","65,536","16,928,342,016","1","1","32","33,573,248","33,090,688","78.69","94,304","16,940","1,048,576","6.35","512","1","1","512","1","0","cudaFuncCachePreferNone","135,267,027,891,456","1,024","1","1","1,024","32","2","2","4","1,400","3,104","2,592","50","28,672","65,536","32,768","32,768","0","32,768","0","7","524,288","6.40","50.53","0","0","0","no data","0","0","0","0","","0","0","0","6","0","0","no data","0","0","0","76,231,694","76,231,694","76,231,694","304,926,776","76,231,694","76,231,694","76,231,694","304,926,776","4","0","32","50","47.39","11,010,048","8","206,045,184","11.03","32.10" diff --git a/results/ncu_fft_resident/resident_1024_logN12.csv b/results/ncu_fft_resident/resident_1024_logN12.csv new file mode 100644 index 0000000..f41cc78 --- /dev/null +++ b/results/ncu_fft_resident/resident_1024_logN12.csv @@ -0,0 +1,6 @@ +==WARNING== Note: Running with uncontrolled GPU caches. Profiling results may be inconsistent. +==PROF== Connected to process 777977 (/home/wt/git/Hermes/cuNTT/build/cubutterfly_bench) +==PROF== Disconnected from process 777977 +"ID","Process ID","Process Name","Host Name","Kernel Name","Kernel Time","Context","Stream","device__attribute_architecture","device__attribute_async_engine_count","device__attribute_can_flush_remote_writes","device__attribute_can_map_host_memory","device__attribute_can_tex2d_gather","device__attribute_can_use_64_bit_stream_mem_ops","device__attribute_can_use_64_bit_stream_mem_ops_v2","device__attribute_can_use_host_pointer_for_registered_mem","device__attribute_can_use_stream_mem_ops","device__attribute_can_use_stream_wait_value_nor","device__attribute_can_use_stream_wait_value_nor_v2","device__attribute_chip","device__attribute_clock_rate","device__attribute_compute_capability_major","device__attribute_compute_capability_minor","device__attribute_compute_mode","device__attribute_compute_preemption_supported","device__attribute_concurrent_kernels","device__attribute_concurrent_managed_access","device__attribute_cooperative_launch","device__attribute_cooperative_multi_device_launch","device__attribute_device_index","device__attribute_direct_managed_mem_access_from_host","device__attribute_display_name","device__attribute_ecc_enabled","device__attribute_fb_bus_width","device__attribute_fbp_count","device__attribute_generic_compression_supported","device__attribute_global_l1_cache_supported","device__attribute_global_memory_bus_width","device__attribute_gpu_direct_rdma_flush_writes_options","device__attribute_gpu_direct_rdma_supported","device__attribute_gpu_direct_rdma_with_cuda_vmm_supported","device__attribute_gpu_direct_rdma_writes_ordering","device__attribute_gpu_overlap","device__attribute_gpu_pci_device_id","device__attribute_gpu_pci_ext_device_id","device__attribute_gpu_pci_ext_downstream_link_rate","device__attribute_gpu_pci_ext_downstream_link_width","device__attribute_gpu_pci_ext_gen","device__attribute_gpu_pci_ext_gpu_gen","device__attribute_gpu_pci_ext_gpu_link_rate","device__attribute_gpu_pci_ext_gpu_link_width","device__attribute_gpu_pci_revision_id","device__attribute_gpu_pci_sub_system_id","device__attribute_handle_type_posix_file_descriptor_supported","device__attribute_handle_type_win32_handle_supported","device__attribute_handle_type_win32_kmt_handle_supported","device__attribute_host_native_atomic_supported","device__attribute_host_register_supported","device__attribute_implementation","device__attribute_integrated","device__attribute_kernel_exec_timeout","device__attribute_l2_cache_size","device__attribute_l2s_count","device__attribute_limits_max_cta_per_sm","device__attribute_local_l1_cache_supported","device__attribute_managed_memory","device__attribute_max_access_policy_window_size","device__attribute_max_block_dim_x","device__attribute_max_block_dim_y","device__attribute_max_block_dim_z","device__attribute_max_blocks_per_multiprocessor","device__attribute_max_gpu_frequency_khz","device__attribute_max_grid_dim_x","device__attribute_max_grid_dim_y","device__attribute_max_grid_dim_z","device__attribute_max_ipc_per_multiprocessor","device__attribute_max_ipc_per_scheduler","device__attribute_max_mem_frequency_khz","device__attribute_max_persisting_l2_cache_size","device__attribute_max_pitch","device__attribute_max_registers_per_block","device__attribute_max_registers_per_multiprocessor","device__attribute_max_registers_per_thread","device__attribute_max_shared_memory_per_block","device__attribute_max_shared_memory_per_block_optin","device__attribute_max_shared_memory_per_multiprocessor","device__attribute_max_threads_per_block","device__attribute_max_threads_per_multiprocessor","device__attribute_max_warps_per_multiprocessor","device__attribute_max_warps_per_scheduler","device__attribute_maximum_surface1d_layered_layers","device__attribute_maximum_surface1d_layered_width","device__attribute_maximum_surface1d_width","device__attribute_maximum_surface2d_height","device__attribute_maximum_surface2d_layered_height","device__attribute_maximum_surface2d_layered_layers","device__attribute_maximum_surface2d_layered_width","device__attribute_maximum_surface2d_width","device__attribute_maximum_surface3d_depth","device__attribute_maximum_surface3d_height","device__attribute_maximum_surface3d_width","device__attribute_maximum_surfacecubemap_layered_layers","device__attribute_maximum_surfacecubemap_layered_width","device__attribute_maximum_surfacecubemap_width","device__attribute_maximum_texture1d_layered_layers","device__attribute_maximum_texture1d_layered_width","device__attribute_maximum_texture1d_linear_width","device__attribute_maximum_texture1d_mipmapped_width","device__attribute_maximum_texture1d_width","device__attribute_maximum_texture2d_gather_height","device__attribute_maximum_texture2d_gather_width","device__attribute_maximum_texture2d_height","device__attribute_maximum_texture2d_layered_height","device__attribute_maximum_texture2d_layered_layers","device__attribute_maximum_texture2d_layered_width","device__attribute_maximum_texture2d_linear_height","device__attribute_maximum_texture2d_linear_pitch","device__attribute_maximum_texture2d_linear_width","device__attribute_maximum_texture2d_mipmapped_height","device__attribute_maximum_texture2d_mipmapped_width","device__attribute_maximum_texture2d_width","device__attribute_maximum_texture3d_depth","device__attribute_maximum_texture3d_depth_alternate","device__attribute_maximum_texture3d_height","device__attribute_maximum_texture3d_height_alternate","device__attribute_maximum_texture3d_width","device__attribute_maximum_texture3d_width_alternate","device__attribute_maximum_texturecubemap_layered_layers","device__attribute_maximum_texturecubemap_layered_width","device__attribute_maximum_texturecubemap_width","device__attribute_memory_clock_rate","device__attribute_memory_pools_supported","device__attribute_mempool_supported_handle_types","device__attribute_multi_gpu_board","device__attribute_multi_gpu_board_group_id","device__attribute_multiprocessor_count","device__attribute_num_l2s_per_fbp","device__attribute_num_schedulers_per_multiprocessor","device__attribute_num_tex_per_multiprocessor","device__attribute_pageable_memory_access","device__attribute_pageable_memory_access_uses_host_page_tables","device__attribute_pci_bus_id","device__attribute_pci_device_id","device__attribute_pci_domain_id","device__attribute_ram_location","device__attribute_ram_type","device__attribute_reserved_shared_memory_per_block","device__attribute_sass_level","device__attribute_single_to_double_precision_perf_ratio","device__attribute_sparse_cuda_array_supported","device__attribute_stream_priorities_supported","device__attribute_surface_alignment","device__attribute_tcc_driver","device__attribute_texture_alignment","device__attribute_texture_pitch_alignment","device__attribute_total_constant_memory","device__attribute_total_memory","device__attribute_unified_addressing","device__attribute_virtual_address_management_supported","device__attribute_warp_size","dram__bytes_read.sum","dram__bytes_write.sum","dram__throughput.avg.pct_of_peak_sustained_elapsed","gpu__time_duration.sum","l1tex__data_bank_conflicts_pipe_lsu_mem_shared_op_ld.sum","l1tex__data_bank_conflicts_pipe_lsu_mem_shared_op_st.sum","l1tex__t_sector_hit_rate.pct","launch__block_dim_x","launch__block_dim_y","launch__block_dim_z","launch__block_size","launch__context_id","launch__device_id","launch__func_cache_config","launch__function_pcs","launch__grid_dim_x","launch__grid_dim_y","launch__grid_dim_z","launch__grid_size","launch__occupancy_limit_blocks","launch__occupancy_limit_registers","launch__occupancy_limit_shared_mem","launch__occupancy_limit_warps","launch__occupancy_per_block_size","launch__occupancy_per_register_count","launch__occupancy_per_shared_mem_size","launch__registers_per_thread","launch__registers_per_thread_allocated","launch__shared_mem_config_size","launch__shared_mem_per_block","launch__shared_mem_per_block_allocated","launch__shared_mem_per_block_driver","launch__shared_mem_per_block_dynamic","launch__shared_mem_per_block_static","launch__stream_id","launch__thread_count","launch__waves_per_multiprocessor","lts__t_sector_hit_rate.pct","nvlink__bandwidth","nvlink__count_logical","nvlink__count_physical","nvlink__destination_ports","nvlink__dev0Id","nvlink__dev0type","nvlink__dev1Id","nvlink__dev1type","nvlink__dev_display_name_all","nvlink__enabled_mask","nvlink__is_direct_link","nvlink__is_nvswitch_connected","nvlink__max_count","nvlink__peer_access","nvlink__peer_atomic","nvlink__source_ports","nvlink__system_access","nvlink__system_atomic","profiler__perfworks_session_reuse","profiler__replayer_bytes_mem_accessible.avg","profiler__replayer_bytes_mem_accessible.max","profiler__replayer_bytes_mem_accessible.min","profiler__replayer_bytes_mem_accessible.sum","profiler__replayer_bytes_mem_backed_up.avg","profiler__replayer_bytes_mem_backed_up.max","profiler__replayer_bytes_mem_backed_up.min","profiler__replayer_bytes_mem_backed_up.sum","profiler__replayer_passes","profiler__replayer_passes_type_warmup","sm__maximum_warps_avg_per_active_cycle","sm__maximum_warps_per_active_cycle_pct","sm__warps_active.avg.pct_of_peak_sustained_active","smsp__inst_executed.sum","smsp__maximum_warps_avg_per_active_cycle","smsp__sass_thread_inst_executed_op_fp32_pred_on.sum","smsp__warp_issue_stalled_barrier_per_warp_active.pct","smsp__warp_issue_stalled_long_scoreboard_per_warp_active.pct" +"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","byte","byte","%","nsecond","","","%","block","block","block","","","","","","","","","","block","block","block","block","","","","register/thread","register/thread","byte","byte/block","byte/block","byte/block","byte/block","byte/block","","thread","","%","","","","","","","","","","","","","","","","","","","","byte","byte","byte","byte","byte","byte","byte","byte","","","warp","%","%","inst","warp","inst","%","%" +"0","777977","cubutterfly_bench","127.0.0.1","void cuntt::detail::::cufftdx_resident_4096_kernel, cufftdx::Type<(cufftdx::fft_type)0>, cufftdx::Direction<(cufftdx::fft_direction)0>, cufftdx::Precision, cufftdx::ElementsPerThread<(unsigned int)4>, cufftdx::FFTsPerBlock<(unsigned int)64>, cufftdx::SM<(unsigned int)700>>>(const cuntt::Complex32 *, cuntt::Complex32 *, const cuntt::Complex32 *, unsigned long, unsigned long, unsigned long, bool, bool)","2026-Jul-23 21:22:19","1","7","320","2","0","1","1","0","1","1","0","0","1","320","1,530,000","7","0","0","1","1","1","1","1","0","0","Tesla V100-SXM2-16GB","0","4,096","8","0","1","4,096","1","1","1","0","1","498,143,454","7,601","32,000","16","2","2","8,000","16","161","303,173,854","1","0","0","0","1","320","0","1","6,291,456","64","32","1","1","0","1,024","1,024","64","32","1,530,000","2,147,483,647","65,535","65,535","4","1","877,000","0","2,147,483,647","65,536","65,536","255","49,152","98,304","98,304","1,024","2,048","64","16","2,048","32,768","32,768","65,536","32,768","2,048","32,768","131,072","16,384","16,384","16,384","2,046","32,768","32,768","2,048","32,768","268,435,456","32,768","131,072","32,768","32,768","65,536","32,768","2,048","32,768","65,000","2,097,120","131,072","32,768","32,768","131,072","16,384","32,768","16,384","8,192","16,384","8,192","2,046","32,768","32,768","877,000","1","9","0","0","80","8","4","1","0","0","168","0","0","1","15","0","7","2","1","1","512","0","512","32","65,536","16,928,342,016","1","1","32","33,579,328","33,391,200","64.29","115,936","208,382","2,144,205","35.19","16","64","1","1,024","1","0","cudaFuncCachePreferNone","129,977,440,122,112","1,024","1","1","1,024","32","2","2","2","2,114","3,136","6,208","32","32,768","98,304","33,280","33,280","0","33,280","0","7","1,048,576","6.40","52.58","0","0","0","no data","0","0","0","0","","0","0","0","6","0","0","no data","0","0","0","109,786,126","109,786,126","109,786,126","439,144,504","109,786,126","109,786,126","109,786,126","439,144,504","4","0","64","100","95.55","16,121,856","16","223,346,688","15.37","30.13" diff --git a/results/ncu_fft_resident/summary_logN12.csv b/results/ncu_fft_resident/summary_logN12.csv new file mode 100644 index 0000000..9bb20da --- /dev/null +++ b/results/ncu_fft_resident/summary_logN12.csv @@ -0,0 +1,6 @@ +label,kernel_id,kernel_name,grid_size,block_size,time_us,dram_read_mib,dram_write_mib,dram_peak_pct,l2_hit_pct,l1_hit_pct,shared_load_bank_conflicts,shared_store_bank_conflicts,warp_instructions,integer_thread_instructions,fp32_thread_instructions,tensor_warp_instructions,tensor_active_pct,active_warps_pct,barrier_stall_pct,long_scoreboard_stall_pct,registers_per_thread,shared_mem_bytes,waves_per_sm,occupancy_register_block_limit,occupancy_shared_block_limit,occupancy_warp_block_limit +two_pass_logN12,0,"void cuntt::detail::::cufftdx_online_first_kernel::cufftdx_online_second_kernel::cufftdx_resident_4096_kernel::cufftdx_block_kernel::cufftdx_online_first_kernel, cufftdx::Type<(cufftdx::fft_type)0>, cufftdx::Direction<(cufftdx::fft_direction)0>, cufftdx::Precision, cufftdx::ElementsPerThread<(unsigned int)8>, cufftdx::FFTsPerBlock<(unsigned int)64>, cufftdx::SM<(unsigned int)700>>>(const cuntt::Complex32 *, cuntt::Complex32 *, const cuntt::Complex32 *, unsigned long, unsigned int, unsigned int, unsigned long, unsigned long, bool)","2026-Jul-23 21:22:19","1","7","320","2","0","1","1","0","1","1","0","0","1","320","1,530,000","7","0","0","1","1","1","1","1","0","0","Tesla V100-SXM2-16GB","0","4,096","8","0","1","4,096","1","1","1","0","1","498,143,454","7,601","32,000","16","2","2","8,000","16","161","303,173,854","1","0","0","0","1","320","0","1","6,291,456","64","32","1","1","0","1,024","1,024","64","32","1,530,000","2,147,483,647","65,535","65,535","4","1","877,000","0","2,147,483,647","65,536","65,536","255","49,152","98,304","98,304","1,024","2,048","64","16","2,048","32,768","32,768","65,536","32,768","2,048","32,768","131,072","16,384","16,384","16,384","2,046","32,768","32,768","2,048","32,768","268,435,456","32,768","131,072","32,768","32,768","65,536","32,768","2,048","32,768","65,000","2,097,120","131,072","32,768","32,768","131,072","16,384","32,768","16,384","8,192","16,384","8,192","2,046","32,768","32,768","877,000","1","9","0","0","80","8","4","1","0","0","168","0","0","1","15","0","7","2","1","1","512","0","512","32","65,536","16,928,342,016","1","1","32","33,569,152","33,415,904","57.80","129,024","2,238,143","2,638,459","16.35","8","64","1","512","1","0","cudaFuncCachePreferNone","132,075,464,537,344","1,024","1","1","1,024","32","3","3","4","1,931","3,760","4,144","40","20,480","98,304","32,768","32,768","0","32,768","0","7","524,288","4.27","51.34","0","0","0","no data","0","0","0","0","","0","0","0","6","0","0","no data","0","0","0","109,786,126","109,786,126","109,786,126","439,144,504","109,786,126","109,786,126","109,786,126","439,144,504","4","0","48","75","70.31","15,663,104","12","116,391,936","11.15","38.09" +"1","776190","cubutterfly_bench","127.0.0.1","void cuntt::detail::::cufftdx_online_second_kernel, cufftdx::Type<(cufftdx::fft_type)0>, cufftdx::Direction<(cufftdx::fft_direction)0>, cufftdx::Precision, cufftdx::ElementsPerThread<(unsigned int)8>, cufftdx::FFTsPerBlock<(unsigned int)64>, cufftdx::SM<(unsigned int)700>>>(const cuntt::Complex32 *, cuntt::Complex32 *, unsigned long, unsigned int, unsigned int, unsigned long, unsigned long, bool)","2026-Jul-23 21:22:19","1","7","320","2","0","1","1","0","1","1","0","0","1","320","1,530,000","7","0","0","1","1","1","1","1","0","0","Tesla V100-SXM2-16GB","0","4,096","8","0","1","4,096","1","1","1","0","1","498,143,454","7,601","32,000","16","2","2","8,000","16","161","303,173,854","1","0","0","0","1","320","0","1","6,291,456","64","32","1","1","0","1,024","1,024","64","32","1,530,000","2,147,483,647","65,535","65,535","4","1","877,000","0","2,147,483,647","65,536","65,536","255","49,152","98,304","98,304","1,024","2,048","64","16","2,048","32,768","32,768","65,536","32,768","2,048","32,768","131,072","16,384","16,384","16,384","2,046","32,768","32,768","2,048","32,768","268,435,456","32,768","131,072","32,768","32,768","65,536","32,768","2,048","32,768","65,000","2,097,120","131,072","32,768","32,768","131,072","16,384","32,768","16,384","8,192","16,384","8,192","2,046","32,768","32,768","877,000","1","9","0","0","80","8","4","1","0","0","168","0","0","1","15","0","7","2","1","1","512","0","512","32","65,536","16,928,342,016","1","1","32","33,554,816","33,352,672","76.39","97,536","389,665","2,621,440","1.53","8","64","1","512","1","0","cudaFuncCachePreferNone","132,075,465,119,488","1,024","1","1","1,024","32","2","2","4","1,478","3,104","2,592","48","24,576","65,536","32,768","32,768","0","32,768","0","7","524,288","6.40","50.07","0","0","0","no data","0","0","0","0","","0","0","0","6","0","0","no data","0","0","0","109,786,126","109,786,126","109,786,126","439,144,504","109,786,126","109,786,126","109,786,126","439,144,504","4","0","32","50","48.25","11,337,728","8","93,323,264","12.86","22.57" diff --git a/results/ncu_fft_resident_analysis.md b/results/ncu_fft_resident_analysis.md new file mode 100644 index 0000000..2162b29 --- /dev/null +++ b/results/ncu_fft_resident_analysis.md @@ -0,0 +1,57 @@ +# FFT Resident Mapping NCU Analysis + +## Protocol + +- Tesla V100-SXM2-16GB, FP32 forward C2C, `logN=12`, batch 1024. +- One profiled transform invocation, base profiling clocks, cache flush disabled. +- All implementations read and write the same `2^22` complex values. +- NCU reports 93.248 us for cuFFT; the independent repeated benchmark reports + 88.750 us. Counter runs are used for relative attribution, not replacement + of the five-trial timing table. + +## Kernel Counters + +| Mapping/kernel | Time us | DRAM R+W MiB | Warp inst. M | FP32 thread inst. M | Shared LD conflicts M | Shared ST conflicts M | Active warps | Barrier stall | Long scoreboard | +|:--|--:|--:|--:|--:|--:|--:|--:|--:|--:| +| two-pass first | 129.024 | 63.882 | 15.663 | 116.392 | 2.238 | 2.638 | 70.31% | 11.15% | 38.09% | +| two-pass second | 97.536 | 63.808 | 11.338 | 93.323 | 0.390 | 2.621 | 48.25% | 12.86% | 22.57% | +| resident 64x64 | 115.936 | 63.868 | 16.122 | 223.347 | 0.208 | 2.144 | 95.55% | 15.37% | 30.13% | +| direct 4096 | 94.304 | 63.576 | 11.010 | 206.045 | 0.017 | 1.049 | 47.39% | 11.03% | 32.10% | +| cuFFT | 93.248 | 63.794 | 8.290 | 207.356 | 0.034 | 0.271 | 57.20% | 8.43% | 24.60% | + +## Findings + +1. The two-pass boundary is physical, not merely logical. Summed over its two + kernels, it moves 127.69 MiB through DRAM, almost exactly twice the resident, + direct, and cuFFT paths. Removing that boundary explains the large first + recovery. +2. The resident 64x64 kernel has already reached the minimum external traffic. + Its 95.55% active-warp rate is the highest of all candidates, so occupancy is + not the limiting resource. +3. Resident versus direct isolates local organization. Both move about 64 MiB + externally and execute a similar number of FP32 thread instructions, but + resident executes 46.4% more warp instructions, has 2.0x the shared-store + conflicts, and spends 15.37% rather than 11.03% of eligible issue cycles on + barrier stalls. It is 22.9% slower in the counter run. +4. Long-scoreboard stall is not worse in resident than direct. The remaining + loss is therefore local exchange/control overhead, not an uncovered global + memory dependency. +5. Direct cuFFTDx and cuFFT have nearly identical FP32 instruction counts, + external traffic, DRAM utilization, and time. The independent timing sweep + places them within 0.3%, validating the direct 4096-point unit as the V100 + `logN=12` selected point. + +## Architecture Consequence + +The schedule should first choose the largest efficient resident equivalent +unit, then apply two-dimensional spatial/temporal composition only beyond that +unit's hardware boundary. For V100 FP32 this experiment selects a direct +4096-point unit at `logN=12`; forcing a 64x64 composition adds exchange and +barrier work even though it avoids global scratch. At `logN=14`, the measured +persistent one-CTA form also loses to the spatial two-pass form, so maximum +temporal expansion is not a universal objective. + +The next composed-kernel optimization target is shared exchange count and +layout, not occupancy: fuse cross-twiddle with the minimum required transpose, +use warp-register exchange where ownership permits, and avoid materializing +both cuFFTDx local-unit boundaries in shared memory. diff --git a/scripts/benchmark_fft_cubutterfly_selected.sh b/scripts/benchmark_fft_cubutterfly_selected.sh new file mode 100755 index 0000000..bda267e --- /dev/null +++ b/scripts/benchmark_fft_cubutterfly_selected.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) +BIN=${BIN:-"$ROOT/build/cubutterfly_bench"} +OUTPUT=${OUTPUT:-"$ROOT/results/fft_cubutterfly_selected_v100_raw.csv"} +WARMUP=${WARMUP:-20} +REPEAT=${REPEAT:-100} +TRIALS=${TRIALS:-5} + +if [[ ! -x "$BIN" ]]; then + printf 'Missing %s. Build cubutterfly_bench first.\n' "$BIN" >&2 + exit 1 +fi + +run_point() { + local log_n=$1 + local batch=$2 + shift 2 + "$BIN" --operator fft --precision fp32 --logN "$log_n" --batch "$batch" \ + --placement in-place --normalization none --warmup "$WARMUP" --repeat "$REPEAT" \ + --verify --csv "$@" +} + +mkdir -p "$(dirname "$OUTPUT")" +rm -f "$OUTPUT" +for trial in $(seq 1 "$TRIALS"); do + while IFS=' ' read -r log_n batch arguments; do + read -r -a extra <<<"$arguments" + csv=$(run_point "$log_n" "$batch" "${extra[@]}") + if [[ ! -s "$OUTPUT" ]]; then + printf 'trial,%s\n' "$(printf '%s\n' "$csv" | head -n 1)" >"$OUTPUT" + fi + printf '%s,%s\n' "$trial" "$(printf '%s\n' "$csv" | tail -n 1)" >>"$OUTPUT" + done <<'POINTS' +3 524288 --backend temporal-tile --compute-unit radix8 --fft-core cta-dft8 --tile-threads 32 +8 16384 --backend temporal-tile --compute-unit radix4 --tile-threads 128 +12 1024 --backend online-reorder --compute-unit radix4 --tile-threads 256 --local-stages 10 --reorder-columns 64 +16 64 --backend online-reorder --compute-unit radix4 --tile-threads 256 --local-stages 10 --reorder-columns 8 +20 4 --backend online-reorder --compute-unit radix4 --tile-threads 256 --local-stages 10 --reorder-columns 1 +POINTS +done + +printf 'Wrote %s\n' "$OUTPUT" diff --git a/scripts/benchmark_fft_cufftdx_long.sh b/scripts/benchmark_fft_cufftdx_long.sh new file mode 100755 index 0000000..cb493c2 --- /dev/null +++ b/scripts/benchmark_fft_cufftdx_long.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) +BINARY=${BINARY:-"$ROOT/build/cubutterfly_bench"} +RAW=${RAW:-"$ROOT/results/fft_cufftdx_long_v100_raw.csv"} +SUMMARY=${SUMMARY:-"$ROOT/results/fft_cufftdx_long_v100_summary.csv"} + +python3 "$ROOT/scripts/sweep_cubutterfly_designs.py" \ + --binary "$BINARY" --operators fft --precisions fp32 \ + --logNs 12 14 16 18 20 --directions forward --normalizations none \ + --placements out-of-place --backends online-reorder cufft \ + --compute-units radix4 --complex-multiplies four-mul \ + --cross-twiddles table recurrence --local-exchanges shared \ + --fft-cores scalar cufftdx-block --target-points 4194304 \ + --tile-thread-options 256 --hierarchical-local-stages 5 6 8 10 \ + --reorder-column-options 1 --warmup 20 --repeat 100 --trials 5 \ + --output "$RAW" + +python3 "$ROOT/scripts/summarize_cubutterfly_designs.py" "$RAW" --output "$SUMMARY" +printf 'Raw trials: %s\nSummary: %s\n' "$RAW" "$SUMMARY" diff --git a/scripts/benchmark_fft_direct_units.sh b/scripts/benchmark_fft_direct_units.sh new file mode 100755 index 0000000..871a230 --- /dev/null +++ b/scripts/benchmark_fft_direct_units.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) +BINARY=${BINARY:-"$ROOT/build/cubutterfly_bench"} +RAW=${RAW:-"$ROOT/results/fft_direct_units_v100_raw.csv"} +SUMMARY=${SUMMARY:-"$ROOT/results/fft_direct_units_v100_summary.csv"} + +python3 "$ROOT/scripts/sweep_cubutterfly_designs.py" \ + --binary "$BINARY" --operators fft --precisions fp32 \ + --logNs 11 12 13 14 --directions forward --normalizations none \ + --placements out-of-place --backends temporal-tile cufft \ + --complex-multiplies four-mul --cross-twiddles table \ + --local-exchanges shared --fft-cores scalar cufftdx-direct \ + --target-points 4194304 --tile-thread-options 256 \ + --resident-thread-options 256 512 1024 \ + --warmup 20 --repeat 100 --trials 5 --output "$RAW" + +python3 "$ROOT/scripts/summarize_cubutterfly_designs.py" "$RAW" --output "$SUMMARY" +printf 'Raw trials: %s\nSummary: %s\n' "$RAW" "$SUMMARY" diff --git a/scripts/benchmark_fft_libraries.sh b/scripts/benchmark_fft_libraries.sh new file mode 100755 index 0000000..c96df02 --- /dev/null +++ b/scripts/benchmark_fft_libraries.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) +BIN=${BIN:-"$ROOT/build/vkfft_bench"} +OUTPUT=${OUTPUT:-"$ROOT/results/fft_libraries_v100_raw.csv"} +LOG_NS=${LOG_NS:-"3 8 12 14 16 18 20"} +TOTAL_POINTS=${TOTAL_POINTS:-4194304} +WARMUP=${WARMUP:-20} +REPEAT=${REPEAT:-100} +TRIALS=${TRIALS:-5} + +if [[ ! -x "$BIN" ]]; then + printf 'Missing %s. Configure with -DCUBUTTERFLY_ENABLE_VKFFT=ON first.\n' "$BIN" >&2 + exit 1 +fi + +mkdir -p "$(dirname "$OUTPUT")" +rm -f "$OUTPUT" +for trial in $(seq 1 "$TRIALS"); do + for log_n in $LOG_NS; do + for library in cufft vkfft; do + csv=$( + "$BIN" --library "$library" --logN "$log_n" --total-points "$TOTAL_POINTS" \ + --warmup "$WARMUP" --repeat "$REPEAT" --verify --csv + ) + if [[ ! -s "$OUTPUT" ]]; then + printf 'trial,%s\n' "$(printf '%s\n' "$csv" | head -n 1)" >"$OUTPUT" + fi + printf '%s,%s\n' "$trial" "$(printf '%s\n' "$csv" | tail -n 1)" >>"$OUTPUT" + done + done +done + +printf 'Wrote %s\n' "$OUTPUT" diff --git a/scripts/benchmark_fft_persistent_logN14.sh b/scripts/benchmark_fft_persistent_logN14.sh new file mode 100755 index 0000000..1f3e222 --- /dev/null +++ b/scripts/benchmark_fft_persistent_logN14.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) +BINARY=${BINARY:-"$ROOT/build/cubutterfly_bench"} +RAW=${RAW:-"$ROOT/results/fft_persistent_logN14_v100_raw.csv"} +SUMMARY=${SUMMARY:-"$ROOT/results/fft_persistent_logN14_v100_summary.csv"} + +python3 "$ROOT/scripts/sweep_cubutterfly_designs.py" \ + --binary "$BINARY" --operators fft --precisions fp32 --logNs 14 \ + --directions forward --normalizations none --placements out-of-place \ + --backends online-reorder cufft --compute-units radix4 \ + --complex-multiplies four-mul --cross-twiddles table recurrence \ + --local-exchanges shared --fft-cores scalar cufftdx-block cufftdx-resident \ + --target-points 4194304 --tile-thread-options 256 \ + --resident-thread-options 256 512 1024 \ + --hierarchical-local-stages 5 7 9 --reorder-column-options 1 \ + --warmup 20 --repeat 100 --trials 5 --output "$RAW" + +python3 "$ROOT/scripts/summarize_cubutterfly_designs.py" "$RAW" --output "$SUMMARY" +printf 'Raw trials: %s\nSummary: %s\n' "$RAW" "$SUMMARY" diff --git a/scripts/benchmark_fft_processing_units.sh b/scripts/benchmark_fft_processing_units.sh new file mode 100755 index 0000000..28572f4 --- /dev/null +++ b/scripts/benchmark_fft_processing_units.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) +BINARY=${BINARY:-"$ROOT/build/cubutterfly_bench"} +RAW=${RAW:-"$ROOT/results/fft_processing_units_v100_raw.csv"} +SUMMARY=${SUMMARY:-"$ROOT/results/fft_processing_units_v100_summary.csv"} +TARGET_POINTS=${TARGET_POINTS:-4194304} +WARMUP=${WARMUP:-20} +REPEAT=${REPEAT:-100} +TRIALS=${TRIALS:-5} + +python3 "$ROOT/scripts/sweep_cubutterfly_designs.py" \ + --binary "$BINARY" \ + --operators fft \ + --precisions fp32 \ + --logNs 3 4 5 6 7 8 9 10 \ + --directions forward \ + --normalizations none \ + --placements out-of-place \ + --backends temporal-tile cufft \ + --compute-units radix8 \ + --complex-multiplies four-mul \ + --local-exchanges shared \ + --fft-cores scalar cta-dft8 cufftdx-block turbofft-generated \ + --target-points "$TARGET_POINTS" \ + --warmup "$WARMUP" \ + --repeat "$REPEAT" \ + --trials "$TRIALS" \ + --output "$RAW" + +python3 "$ROOT/scripts/summarize_fft_processing_units.py" "$RAW" --output "$SUMMARY" +printf 'Raw trials: %s\nSummary: %s\n' "$RAW" "$SUMMARY" diff --git a/scripts/benchmark_fft_resident_logN12.sh b/scripts/benchmark_fft_resident_logN12.sh new file mode 100755 index 0000000..dc28ced --- /dev/null +++ b/scripts/benchmark_fft_resident_logN12.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) +BINARY=${BINARY:-"$ROOT/build/cubutterfly_bench"} +RAW=${RAW:-"$ROOT/results/fft_resident_logN12_v100_raw.csv"} +SUMMARY=${SUMMARY:-"$ROOT/results/fft_resident_logN12_v100_summary.csv"} + +python3 "$ROOT/scripts/sweep_cubutterfly_designs.py" \ + --binary "$BINARY" --operators fft --precisions fp32 --logNs 12 \ + --directions forward --normalizations none --placements out-of-place \ + --backends temporal-tile online-reorder cufft --compute-units radix4 \ + --complex-multiplies four-mul --cross-twiddles table recurrence \ + --local-exchanges shared --fft-cores scalar cufftdx-block cufftdx-direct cufftdx-resident \ + --target-points 4194304 --tile-thread-options 256 \ + --resident-thread-options 256 512 1024 \ + --hierarchical-local-stages 6 --reorder-column-options 1 \ + --warmup 20 --repeat 100 --trials 5 --output "$RAW" + +python3 "$ROOT/scripts/summarize_cubutterfly_designs.py" "$RAW" --output "$SUMMARY" +printf 'Raw trials: %s\nSummary: %s\n' "$RAW" "$SUMMARY" diff --git a/scripts/butterfly_design_space.py b/scripts/butterfly_design_space.py new file mode 100755 index 0000000..d6d4234 --- /dev/null +++ b/scripts/butterfly_design_space.py @@ -0,0 +1,470 @@ +#!/usr/bin/env python3 +import argparse +import csv +import itertools +import json +import math +import pathlib + + +REQUIRED_OBJECTS = { + "G_graph_semantics", "A_architecture", "P_processing_unit", "L_layout", + "F_realization", "Q_generation_selection", "H_hardware", +} +REQUIRED_OPERATORS = {"fft", "ntt", "fwht", "xor-zeta", "subset-mobius", "structured-butterfly"} + + +def load_space(path): + document = json.loads(path.read_text()) + if document.get("schema_version") != 1: + raise ValueError("unsupported butterfly architecture-space schema") + missing_objects = REQUIRED_OBJECTS - set(document.get("objects", {})) + if missing_objects: + raise ValueError(f"missing architecture objects: {sorted(missing_objects)}") + projections = set(document.get("operator_projections", {})) + missing_operators = REQUIRED_OPERATORS - projections + if missing_operators: + raise ValueError(f"missing operator projections: {sorted(missing_operators)}") + if not document.get("implementation_families") or not document.get("invariants"): + raise ValueError("architecture space must define implementation families and invariants") + architecture = document["objects"]["A_architecture"] + for axis in ("batch_space_Ub", "batch_time_Tb", "hierarchical_unfolding", "coefficient_supply"): + if axis not in architecture: + raise ValueError(f"architecture space lacks required axis: {axis}") + dimension_fields = { + "stage_count", "stage_space_Us", "stage_time_Ts", "data_space_Ud", "data_time_Td", + "stage_handoff_Hs", "stage_time_residence_Rs", "data_time_residence_Rd", + "processing_unit", "local_layout", "realization", + } + missing_dimension_fields = dimension_fields - set(architecture["per_dimension_mapping"]) + if missing_dimension_fields: + raise ValueError(f"per-dimension mapping lacks fields: {sorted(missing_dimension_fields)}") + semantic_operators = set(document["objects"]["G_graph_semantics"]["operator"]) + if semantic_operators != projections: + raise ValueError("graph operator enumeration and operator projections differ") + hierarchy_levels = set(architecture["hierarchical_unfolding"]["levels"]) + hardware_levels = set(document["objects"]["H_hardware"]["hierarchy"]) + if hierarchy_levels != hardware_levels: + raise ValueError("architecture and hardware hierarchy levels differ") + processing = document["objects"]["P_processing_unit"] + coefficient_forms = set(processing["coefficient_form"]) + for name, projection in document["operator_projections"].items(): + unknown = set(projection["coefficient"]) - coefficient_forms + if unknown: + raise ValueError(f"operator {name} uses unknown coefficient forms: {sorted(unknown)}") + if not projection.get("traits") or not projection.get("cores"): + raise ValueError(f"operator {name} lacks traits or cores") + core_bindings = document.get("processing_core_bindings", {}) + if set(core_bindings) != projections: + raise ValueError("processing-core bindings must cover every operator projection") + for operator, bindings in core_bindings.items(): + projection = document["operator_projections"][operator] + if set(bindings) != set(projection["cores"]): + raise ValueError(f"processing-core bindings differ from {operator} core projection") + for core, binding in bindings.items(): + if binding["stage_group"] not in processing["stage_group"]: + raise ValueError(f"core {operator}/{core} uses unknown stage group") + if binding["arithmetic_core"] not in processing["arithmetic_core"]: + raise ValueError(f"core {operator}/{core} uses unknown arithmetic core") + if not set(binding.get("precision", projection["precision"])) <= set(projection["precision"]): + raise ValueError(f"core {operator}/{core} uses invalid precision") + if not set(binding["coefficient"]) <= set(projection["coefficient"]): + raise ValueError(f"core {operator}/{core} uses invalid coefficients") + if not set(binding["exchange"]) <= set(processing["local_exchange"]): + raise ValueError(f"core {operator}/{core} uses invalid local exchange") + precision_bindings = document.get("precision_bindings", {}) + if set(precision_bindings) != projections: + raise ValueError("precision bindings must cover every operator projection") + for operator, bindings in precision_bindings.items(): + if set(bindings) != set(document["operator_projections"][operator]["precision"]): + raise ValueError(f"precision bindings differ from {operator} projection") + for precision, binding in bindings.items(): + if not set(binding["word_bits"]) <= set(processing["word_bits"]): + raise ValueError(f"precision {operator}/{precision} uses invalid word width") + if not set(binding["accumulator_bits"]) <= set(processing["accumulator_bits"]): + raise ValueError(f"precision {operator}/{precision} uses invalid accumulator width") + families = set(document["implementation_families"]) + kernel_forms = set(document["objects"]["F_realization"]["kernel_form"]) + if not families <= kernel_forms: + raise ValueError(f"implementation families lack realization forms: {sorted(families - kernel_forms)}") + runtime_bindings = document.get("runtime_bindings", {}) + if set(runtime_bindings) != {"ntt_backends", "butterfly_backends"}: + raise ValueError("runtime bindings must cover NTT and common butterfly APIs") + for binding_group, bindings in runtime_bindings.items(): + unknown = set(bindings.values()) - families + if unknown: + raise ValueError(f"runtime binding {binding_group} uses unknown families: {sorted(unknown)}") + return document + + +def validate_fft_projection(general, fft): + projection = general["operator_projections"]["fft"] + axes = fft["axes"] + checks = { + "precision": (set(axes["precision"]), set(projection["precision"])), + "direction": (set(axes["direction"]), set(general["objects"]["G_graph_semantics"]["direction"])), + "placement": (set(axes["placement"]), set(general["objects"]["G_graph_semantics"]["placement"])), + "boundary": (set(axes["boundary"]), set(general["objects"]["A_architecture"]["dimension_boundary"])), + "reorder": (set(axes["reorder"]), set(general["objects"]["L_layout"]["intermediate_permutation"])), + "core": (set(axes["dimension"]["core"]), set(projection["cores"])), + "exchange": (set(axes["dimension"]["exchange"]), set(general["objects"]["P_processing_unit"]["local_exchange"])), + } + twiddle_map = {"table": "native-table", "recurrence": "recurrence", "fused-core": "generated", "generated": "generated"} + checks["cross_twiddle"] = ({twiddle_map[value] for value in axes["cross_twiddle"]}, set(projection["coefficient"])) + failures = [name for name, (selected, allowed) in checks.items() if not selected <= allowed] + if failures: + raise ValueError(f"FFT space is not a valid general-space projection: {failures}") + return True + + +def derive_architecture_point(space, operator, log_n, us, ud, word_bytes, stage_residence, data_residence, + batch=1, ub=1, batch_residence="global"): + if operator not in space["operator_projections"]: + raise ValueError(f"unknown operator: {operator}") + if log_n < 1 or us < 1 or ud < 1 or word_bytes < 1 or batch < 1 or ub < 1: + raise ValueError("logN, Us, Ud, Ub, batch, and word bytes must be positive") + n = 1 << log_n + butterflies = n // 2 + ts = math.ceil(log_n / us) + td = math.ceil(butterflies / ud) + tb = math.ceil(batch / ub) + traits = space["operator_projections"][operator]["traits"] + coefficient_streams = us * ud * ub if "stage-coefficient" in traits else 0 + stage_feedback_folds = max(0, ts - 1) + data_stream_folds = max(0, td - 1) + on_chip = {"register", "shared", "cluster-shared"} + stage_feedback_bytes = 0 if stage_residence in on_chip else 2 * n * batch * word_bytes * stage_feedback_folds + data_feedback_bytes = 0 if data_residence in on_chip else 2 * n * batch * word_bytes * data_stream_folds + return { + "operator": operator, + "logN": log_n, + "N": n, + "storage_word_bytes": word_bytes, + "butterflies_per_stage": butterflies, + "Us": us, + "Ts": ts, + "Ud": ud, + "Td": td, + "batch": batch, + "Ub": ub, + "Tb": tb, + "stage_utilization": log_n / (us * ts), + "data_utilization": butterflies / (ud * td), + "batch_utilization": batch / (ub * tb), + "total_utilization": (log_n / (us * ts)) * (butterflies / (ud * td)) * (batch / (ub * tb)), + "spatial_butterfly_cells": us * ud * ub, + "ideal_body_cycles": ts * td * tb, + "boundary_coefficient_words_per_cycle": 2 * ud * ub, + "interstage_coefficient_words_per_cycle": 2 * ud * max(0, us - 1) * ub, + "coefficient_streams_upper_bound": coefficient_streams, + "stage_feedback_folds": stage_feedback_folds, + "data_stream_folds": data_stream_folds, + "stage_feedback_bytes_above_residence": stage_feedback_bytes, + "data_feedback_bytes_above_residence": data_feedback_bytes, + "stage_residence": stage_residence, + "data_residence": data_residence, + "batch_residence": batch_residence, + "status": "abstract" + } + + +def derive_dimension_point(stage_count, independent_work, us, ud): + if min(stage_count, independent_work, us, ud) < 1: + raise ValueError("dimension stage count, work, Us, and Ud must be positive") + ts = math.ceil(stage_count / us) + td = math.ceil(independent_work / ud) + return { + "stage_count": stage_count, + "independent_work": independent_work, + "Us": us, + "Ts": ts, + "Ud": ud, + "Td": td, + "stage_utilization": stage_count / (us * ts), + "data_utilization": independent_work / (ud * td), + } + + +def validate_hierarchy_factors(us, ud, ub, level_factors): + products = {"Us": 1, "Ud": 1, "Ub": 1} + for level, factors in level_factors.items(): + for axis in products: + value = factors.get(axis, 1) + if not isinstance(value, int) or value < 1: + raise ValueError(f"invalid {axis} factor at hierarchy level {level}") + products[axis] *= value + expected = {"Us": us, "Ud": ud, "Ub": ub} + if products != expected: + raise ValueError(f"hierarchy products {products} do not match logical factors {expected}") + return True + + +def derive_multidimensional_point(log_n, partition, mappings): + if sum(partition) != log_n or len(partition) != len(mappings) or any(value < 1 for value in partition): + raise ValueError("ordered dimension partition and mappings must cover logN exactly") + dimensions = [] + for stage_count, mapping in zip(partition, mappings): + local_work = 1 << max(0, stage_count - 1) + dimensions.append(derive_dimension_point(stage_count, local_work, mapping["Us"], mapping["Ud"])) + return { + "logN": log_n, + "factorization_rank": len(partition), + "dimension_stage_counts": list(partition), + "dimensions": dimensions, + "dimension_boundaries": max(0, len(partition) - 1), + } + + +def expand_design_choices(space, operator, selections): + projection = space["operator_projections"][operator] + graph = space["objects"]["G_graph_semantics"] + architecture = space["objects"]["A_architecture"] + processing = space["objects"]["P_processing_unit"] + layout = space["objects"]["L_layout"] + realization = space["objects"]["F_realization"] + generation = space["objects"]["Q_generation_selection"] + axes = { + "direction": graph["direction"], + "normalization": graph["normalization"], + "placement": graph["placement"], + "input_order": graph["input_order"], + "output_order": graph["output_order"], + "schedule": architecture["schedule"], + "tail_policy": architecture["tail_policy"], + "coefficient_residence": architecture["coefficient_supply"]["residence"], + "coefficient_sharing_scope": architecture["coefficient_supply"]["sharing_scope"], + "coefficient_schedule": architecture["coefficient_supply"]["schedule"], + "elements_per_thread": processing["elements_per_thread"], + "units_per_cta": processing["units_per_cta"], + "dimension_boundary": architecture["dimension_boundary"], + "global_order": layout["global_order"], + "intermediate_permutation": layout["intermediate_permutation"], + "bank_mapping": layout["bank_mapping"], + "shared_padding": layout["shared_padding"], + "vector_width_bytes": layout["vector_width_bytes"], + "alignment_bytes": layout["alignment_bytes"], + "kernel_form": realization["kernel_form"], + "threads_per_cta": realization["threads_per_cta"], + "warps_per_cta": realization["warps_per_cta"], + "ctas_per_work_unit": realization["ctas_per_work_unit"], + "pipeline_buffers": realization["pipeline_buffers"], + "async_copy": realization["async_copy"], + "synchronization": realization["synchronization"], + "specialization": generation["specialization"], + "selection_method": generation["selection"], + "candidate_status": generation["status"], + "objective": generation["objectives"], + } + positive_axes = ("element_stride", "batch_stride", "pipeline_initiation_interval", "pipeline_depth") + known_selections = set(axes) | set(positive_axes) | { + "precision", "word_bits", "accumulator_bits", "operator_core", "stage_group", + "arithmetic_core", "coefficient_form", "local_exchange", + } + unknown_selections = set(selections) - known_selections + if unknown_selections: + raise ValueError(f"unknown design-choice axes: {sorted(unknown_selections)}") + selected = {} + for name, allowed in axes.items(): + values = selections.get(name) or [allowed[0]] + unknown = set(values) - set(allowed) + if unknown: + raise ValueError(f"unknown {name} choices for {operator}: {sorted(unknown, key=str)}") + selected[name] = values + for name in positive_axes: + values = selections.get(name) or [1] + if any(not isinstance(value, int) or value < 1 for value in values): + raise ValueError(f"{name} choices must be positive integers") + selected[name] = values + cores = selections.get("operator_core") or [projection["cores"][0]] + unknown_cores = set(cores) - set(projection["cores"]) + if unknown_cores: + raise ValueError(f"unknown operator_core choices for {operator}: {sorted(unknown_cores)}") + requested_stage_groups = selections.get("stage_group") + requested_arithmetic = selections.get("arithmetic_core") + requested_coefficients = selections.get("coefficient_form") + requested_exchanges = selections.get("local_exchange") + requested_precisions = selections.get("precision") + requested_word_bits = selections.get("word_bits") + requested_accumulator_bits = selections.get("accumulator_bits") + for name, values, allowed in ( + ("precision", requested_precisions, projection["precision"]), + ("word_bits", requested_word_bits, processing["word_bits"]), + ("accumulator_bits", requested_accumulator_bits, processing["accumulator_bits"]), + ("stage_group", requested_stage_groups, processing["stage_group"]), + ("arithmetic_core", requested_arithmetic, processing["arithmetic_core"]), + ("coefficient_form", requested_coefficients, projection["coefficient"]), + ("local_exchange", requested_exchanges, processing["local_exchange"]), + ): + unknown = set(values or ()) - set(allowed) + if unknown: + raise ValueError(f"unknown {name} choices for {operator}: {sorted(unknown)}") + names = list(selected) + independent = [dict(zip(names, values)) for values in itertools.product(*(selected[name] for name in names))] + points = [] + bindings = space["processing_core_bindings"][operator] + precision_bindings = space["precision_bindings"][operator] + for core in cores: + binding = bindings[core] + if requested_stage_groups and binding["stage_group"] not in requested_stage_groups: + continue + if requested_arithmetic and binding["arithmetic_core"] not in requested_arithmetic: + continue + coefficients = requested_coefficients or [binding["coefficient"][0]] + exchanges = requested_exchanges or [binding["exchange"][0]] + precisions = requested_precisions or [binding.get("precision", projection["precision"])[0]] + precisions = [value for value in precisions if value in binding.get("precision", projection["precision"])] + coefficients = [value for value in coefficients if value in binding["coefficient"]] + exchanges = [value for value in exchanges if value in binding["exchange"]] + for precision in precisions: + precision_binding = precision_bindings[precision] + word_bits = requested_word_bits or [precision_binding["word_bits"][0]] + accumulator_bits = requested_accumulator_bits or [precision_binding["accumulator_bits"][0]] + word_bits = [value for value in word_bits if value in precision_binding["word_bits"]] + accumulator_bits = [value for value in accumulator_bits if value in precision_binding["accumulator_bits"]] + for coefficient, exchange, word_bit, accumulator_bit, point in itertools.product( + coefficients, exchanges, word_bits, accumulator_bits, independent): + points.append({ + "precision": precision, + "word_bits": word_bit, + "accumulator_bits": accumulator_bit, + "operator_core": core, + "stage_group": binding["stage_group"], + "arithmetic_core": binding["arithmetic_core"], + "coefficient_form": coefficient, + "local_exchange": exchange, + **point, + }) + if not points: + raise ValueError(f"processing-unit filters produce no legal choices for {operator}") + return points + + +def powers_up_to(limit): + values = [] + value = 1 + while value <= limit: + values.append(value) + value *= 2 + if limit not in values: + values.append(limit) + return values + + +def stage_partitions(total, rank): + if rank < 1 or total < rank: + return [] + if rank == 1: + return [(total,)] + return [ + (first, *suffix) + for first in range(1, total - rank + 2) + for suffix in stage_partitions(total - first, rank - 1) + ] + + +def write_csv(path, rows): + path.parent.mkdir(parents=True, exist_ok=True) + with path.open("w", newline="") as destination: + writer = csv.DictWriter(destination, fieldnames=rows[0].keys(), lineterminator="\n") + writer.writeheader() + writer.writerows(rows) + + +def main(): + parser = argparse.ArgumentParser(description="Validate and enumerate operator-independent butterfly architecture points.") + parser.add_argument("--spec", type=pathlib.Path, default=pathlib.Path("config/butterfly_architecture_space.json")) + parser.add_argument("--fft-spec", type=pathlib.Path, default=pathlib.Path("config/fft_architecture_space.json")) + parser.add_argument("--validate-only", action="store_true") + parser.add_argument("--operator", choices=sorted(REQUIRED_OPERATORS), default="fft") + parser.add_argument("--logN", type=int, default=16) + parser.add_argument("--Us", nargs="+", type=int) + parser.add_argument("--Ud", nargs="+", type=int) + parser.add_argument("--fixed-spatial-cells", type=int, + help="Enumerate Us*Ud=C factorizations instead of the Us/Ud Cartesian product.") + parser.add_argument("--factorization-rank", type=int, default=2) + parser.add_argument("--word-bytes", type=int, + help="Override storage bytes; otherwise derive from each candidate's word_bits.") + parser.add_argument("--batch", type=int, default=1) + parser.add_argument("--Ub", nargs="+", type=int, default=(1,)) + parser.add_argument("--stage-residence", nargs="+", default=("shared", "global")) + parser.add_argument("--data-residence", nargs="+", default=("shared", "global")) + parser.add_argument("--operator-core", nargs="+") + parser.add_argument("--stage-group", nargs="+") + parser.add_argument("--arithmetic-core", nargs="+") + parser.add_argument("--coefficient-form", nargs="+") + parser.add_argument("--local-exchange", nargs="+") + parser.add_argument("--boundary", nargs="+") + parser.add_argument("--permutation", nargs="+") + parser.add_argument("--kernel-form", nargs="+") + parser.add_argument("--threads", nargs="+", type=int) + parser.add_argument("--pipeline-buffers", nargs="+", type=int) + parser.add_argument("--synchronization", nargs="+") + parser.add_argument("--specialization", nargs="+") + parser.add_argument("--objective", nargs="+") + parser.add_argument("--choices", type=pathlib.Path, + help="JSON object of additional axis lists; explicit CLI lists take precedence.") + parser.add_argument("--max-candidates", type=int, default=100000) + parser.add_argument("--output", type=pathlib.Path) + args = parser.parse_args() + + space = load_space(args.spec) + fft = json.loads(args.fft_spec.read_text()) + validate_fft_projection(space, fft) + if args.validate_only: + return + us_values = args.Us or powers_up_to(args.logN) + ud_values = args.Ud or powers_up_to(min((1 << args.logN) // 2, 1024)) + if args.fixed_spatial_cells: + architecture_pairs = [(us, args.fixed_spatial_cells // us) for us in us_values + if args.fixed_spatial_cells % us == 0] + else: + architecture_pairs = [(us, ud) for us in us_values for ud in ud_values] + choice_selections = json.loads(args.choices.read_text()) if args.choices else {} + explicit_choices = { + "operator_core": args.operator_core, + "stage_group": args.stage_group, + "arithmetic_core": args.arithmetic_core, + "coefficient_form": args.coefficient_form, + "local_exchange": args.local_exchange, + "dimension_boundary": args.boundary, + "intermediate_permutation": args.permutation, + "kernel_form": args.kernel_form, + "threads_per_cta": args.threads, + "pipeline_buffers": args.pipeline_buffers, + "synchronization": args.synchronization, + "specialization": args.specialization, + "objective": args.objective, + } + choice_selections.update({name: values for name, values in explicit_choices.items() if values is not None}) + choices = expand_design_choices(space, args.operator, choice_selections) + candidate_count = (len(stage_partitions(args.logN, args.factorization_rank)) * + len(architecture_pairs) * len(args.Ub) * len(args.stage_residence) * + len(args.data_residence) * len(choices)) + if candidate_count > args.max_candidates: + raise ValueError(f"candidate product {candidate_count} exceeds --max-candidates={args.max_candidates}") + rows = [] + for partition in stage_partitions(args.logN, args.factorization_rank): + for us, ud in architecture_pairs: + for ub in args.Ub: + for rs in args.stage_residence: + for rd in args.data_residence: + for choice in choices: + if args.word_bytes is not None: + word_bytes = args.word_bytes + elif isinstance(choice["word_bits"], int): + word_bytes = math.ceil(choice["word_bits"] / 8) + else: + raise ValueError("--word-bytes is required for operator-defined word width") + point = derive_architecture_point(space, args.operator, args.logN, us, ud, + word_bytes, rs, rd, args.batch, ub) + point["factorization_rank"] = args.factorization_rank + point["dimension_stage_counts"] = "+".join(str(value) for value in partition) + rows.append({**point, **choice}) + if args.output: + write_csv(args.output, rows) + else: + print(json.dumps(rows, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/scripts/explore_fft_architecture.py b/scripts/explore_fft_architecture.py new file mode 100755 index 0000000..f00c9e7 --- /dev/null +++ b/scripts/explore_fft_architecture.py @@ -0,0 +1,158 @@ +#!/usr/bin/env python3 +import argparse +import csv +import pathlib +import statistics +import subprocess + +from fft_design_space import load_codegen_points, load_space + + +def run(binary, log_n, batch, local_stages=None, twiddle="table", prefix_threads=0, + suffix_threads=0, warmup=10, repeat=30): + command = [ + str(binary), "--operator", "fft", "--precision", "fp32", "--logN", str(log_n), + "--batch", str(batch), "--placement", "out-of-place", "--normalization", "none", + "--warmup", str(warmup), "--repeat", str(repeat), "--csv", + ] + if local_stages is None: + command += ["--backend", "cufft"] + else: + command += [ + "--backend", "online-reorder", "--fft-core", "cufftdx-block", + "--local-stages", str(local_stages), "--reorder-columns", "1", + "--cross-twiddle", twiddle, "--tile-threads", "32", + "--prefix-threads", str(prefix_threads), "--suffix-threads", str(suffix_threads), + ] + result = subprocess.run(command, check=True, capture_output=True, text=True) + rows = list(csv.DictReader(result.stdout.splitlines())) + if len(rows) != 1: + raise RuntimeError(f"unexpected output from {' '.join(command)}") + return rows[0] + + +def config_key(row): + return (row["logN"], row["backend"], row["local_stages"], row["cross_twiddle"], + row["prefix_threads"], row["suffix_threads"], row.get("prefix_ept", "8"), + row.get("suffix_ept", "8")) + + +def write_csv(path, rows): + path.parent.mkdir(parents=True, exist_ok=True) + with path.open("w", newline="") as destination: + writer = csv.DictWriter(destination, fieldnames=rows[0].keys(), lineterminator="\n") + writer.writeheader() + writer.writerows(rows) + + +def main(): + parser = argparse.ArgumentParser(description="Hierarchical search of the two-dimensional FFT architecture mapping.") + parser.add_argument("--binary", type=pathlib.Path, default=pathlib.Path("build/cubutterfly_bench")) + parser.add_argument("--space-spec", type=pathlib.Path, + default=pathlib.Path("config/fft_architecture_space.json")) + parser.add_argument("--codegen-spec", type=pathlib.Path, + default=pathlib.Path("config/v100_fft_codegen.json")) + parser.add_argument("--logNs", nargs="+", type=int, default=(16, 18, 20)) + parser.add_argument("--local-stages", nargs="+", type=int) + parser.add_argument("--thread-options", nargs="+", type=int, choices=(128, 256, 512, 1024), + default=None) + parser.add_argument("--target-points", type=int, default=1 << 22) + parser.add_argument("--split-finalists", type=int, default=2) + parser.add_argument("--finalists", type=int, default=3) + parser.add_argument("--warmup", type=int, default=10) + parser.add_argument("--repeat", type=int, default=30) + parser.add_argument("--confirm-trials", type=int, default=5) + parser.add_argument("--output-prefix", type=pathlib.Path, + default=pathlib.Path("results/fft_architecture_explore_v100")) + args = parser.parse_args() + + if not args.binary.is_file(): + raise FileNotFoundError(f"benchmark binary not found: {args.binary}") + space = load_space(args.space_spec) + family = next(family for family in space["families"] if family["name"] == "cufftdx-online") + compiled_points = load_codegen_points(args.codegen_spec) + thread_options = args.thread_options or sorted({threads for _, threads, ept in compiled_points if ept == 8}) + dimension_range = family["dimension_log_n"] + local_stage_options = args.local_stages or range(dimension_range["min"], dimension_range["max"] + 1) + search_rows = [] + confirmation_rows = [] + summaries = [] + + for log_n in args.logNs: + batch = max(1, args.target_points // (1 << log_n)) + coarse = [] + for local_stages in local_stage_options: + remaining = log_n - local_stages + if not (3 <= local_stages <= 10 and 3 <= remaining <= 10): + continue + for twiddle in ("table", "recurrence"): + row = run(args.binary, log_n, batch, local_stages, twiddle, 512, 512, + args.warmup, args.repeat) + row = {"search_stage": "coarse", "trial": 1, **row} + coarse.append(row) + search_rows.append(row) + + coarse.sort(key=lambda row: float(row["kernel_ms"])) + fine = [] + for seed in coarse[:args.split_finalists]: + local_stages = int(seed["local_stages"]) + prefix_n = 1 << local_stages + suffix_n = 1 << (log_n - local_stages) + for prefix_threads in thread_options: + if prefix_threads * 8 < prefix_n: + continue + for suffix_threads in thread_options: + if suffix_threads * 8 < suffix_n: + continue + row = run(args.binary, log_n, batch, local_stages, seed["cross_twiddle"], + prefix_threads, suffix_threads, args.warmup, args.repeat) + row = {"search_stage": "fine", "trial": 1, **row} + fine.append(row) + search_rows.append(row) + + best_by_config = {} + for row in coarse + fine: + key = config_key(row) + if key not in best_by_config or float(row["kernel_ms"]) < float(best_by_config[key]["kernel_ms"]): + best_by_config[key] = row + finalists = sorted(best_by_config.values(), key=lambda row: float(row["kernel_ms"]))[:args.finalists] + + confirmed_configs = [(None, "table", 0, 0)] + [ + (int(row["local_stages"]), row["cross_twiddle"], int(row["prefix_threads"]), + int(row["suffix_threads"])) for row in finalists + ] + for local_stages, twiddle, prefix_threads, suffix_threads in confirmed_configs: + samples = [] + for trial in range(1, args.confirm_trials + 1): + row = run(args.binary, log_n, batch, local_stages, twiddle, prefix_threads, + suffix_threads, args.warmup, args.repeat) + row = {"search_stage": "confirm", "trial": trial, **row} + samples.append(row) + confirmation_rows.append(row) + representative = samples[0] + summaries.append({ + "logN": log_n, + "batch": batch, + "backend": representative["backend"], + "local_stages": representative["local_stages"], + "remaining_stages": 0 if local_stages is None else log_n - local_stages, + "cross_twiddle": representative["cross_twiddle"], + "prefix_threads": representative["prefix_threads"], + "suffix_threads": representative["suffix_threads"], + "prefix_ept": representative["prefix_ept"], + "suffix_ept": representative["suffix_ept"], + "prefix_units_per_cta": representative["prefix_units_per_cta"], + "suffix_units_per_cta": representative["suffix_units_per_cta"], + "trials": len(samples), + "median_kernel_ms": f"{statistics.median(float(row['kernel_ms']) for row in samples):.6f}", + "min_kernel_ms": f"{min(float(row['kernel_ms']) for row in samples):.6f}", + "max_kernel_ms": f"{max(float(row['kernel_ms']) for row in samples):.6f}", + }) + + write_csv(args.output_prefix.with_name(args.output_prefix.name + "_search.csv"), search_rows) + write_csv(args.output_prefix.with_name(args.output_prefix.name + "_confirm.csv"), confirmation_rows) + write_csv(args.output_prefix.with_name(args.output_prefix.name + "_summary.csv"), summaries) + + +if __name__ == "__main__": + main() diff --git a/scripts/fft_design_space.py b/scripts/fft_design_space.py new file mode 100755 index 0000000..ef2ace8 --- /dev/null +++ b/scripts/fft_design_space.py @@ -0,0 +1,165 @@ +#!/usr/bin/env python3 +import argparse +import csv +import itertools +import json +import pathlib +from collections import Counter + + +REQUIRED_AXES = { + "log_n", "decomposition", "precision", "direction", "placement", + "boundary", "reorder", "cross_twiddle", "dimension", +} + + +def load_space(path): + document = json.loads(path.read_text()) + if document.get("schema_version") != 1: + raise ValueError("unsupported FFT design-space schema") + missing = REQUIRED_AXES - set(document.get("axes", {})) + if missing: + raise ValueError(f"missing FFT design-space axes: {sorted(missing)}") + dimension = document["axes"]["dimension"] + for name in ("core", "spatial_scope", "stage_fusion", "temporal_reuse", "threads", + "elements_per_thread", "units_per_cta", "exchange", "shared_padding", "pipeline_buffers"): + if name not in dimension or not dimension[name]: + raise ValueError(f"missing dimension axis: {name}") + if not document.get("families"): + raise ValueError("FFT design space has no implementation families") + return document + + +def load_codegen_points(path): + selection = json.loads(path.read_text()) + family = selection.get("families", {}).get("cufftdx-online", {}) + return { + (log_n, threads, ept) + for log_n in family.get("dimension_log_n", []) + for threads, ept in family.get("thread_ept_pairs", []) + } + + +def classify_online_point(point, hardware, compiled_points=None): + prefix_n = 1 << point["prefix_log_n"] + suffix_n = 1 << point["suffix_log_n"] + reasons = [] + for label, size, threads, ept in ( + ("prefix", prefix_n, point["prefix_threads"], point["prefix_ept"]), + ("suffix", suffix_n, point["suffix_threads"], point["suffix_ept"]), + ): + if threads > hardware["max_threads_per_cta"]: + reasons.append(f"{label}-threads") + if ept > size or threads * ept < size or (threads * ept) % size: + reasons.append(f"{label}-coverage") + units = threads * ept // size if not reasons or not reasons[-1].startswith(label) else 0 + point[f"{label}_units_per_cta"] = units + shared = threads * ept * 8 + point[f"{label}_tile_shared_bytes"] = shared + if shared > hardware["max_shared_bytes_per_cta"]: + reasons.append(f"{label}-shared") + if reasons: + return "hardware-infeasible", ";".join(reasons) + if point["prefix_log_n"] < 3 or point["suffix_log_n"] < 3: + return "requires-new-kernel", "mixed-small-dimension-core" + if point["prefix_log_n"] > 10 or point["suffix_log_n"] > 10: + return "requires-new-kernel", "large-dimension-layout" + compiled_points = compiled_points or set() + prefix_key = (point["prefix_log_n"], point["prefix_threads"], point["prefix_ept"]) + suffix_key = (point["suffix_log_n"], point["suffix_threads"], point["suffix_ept"]) + if prefix_key in compiled_points and suffix_key in compiled_points: + return "compiled", "" + return "awaiting-codegen", "specialization-not-selected" + + +def enumerate_online(document, profile, log_ns, thread_values, ept_values, twiddles, compiled_points=None): + hardware = document["hardware_profiles"][profile] + for log_n in log_ns: + for prefix_log_n in range(1, log_n): + suffix_log_n = log_n - prefix_log_n + for prefix_threads, suffix_threads, prefix_ept, suffix_ept, twiddle in itertools.product( + thread_values, thread_values, ept_values, ept_values, twiddles): + point = { + "family": "cufftdx-online", + "logN": log_n, + "prefix_log_n": prefix_log_n, + "suffix_log_n": suffix_log_n, + "prefix_core": "cufftdx-block" if prefix_log_n <= 10 else "cufftdx-direct", + "suffix_core": "cufftdx-block" if suffix_log_n <= 10 else "cufftdx-direct", + "prefix_spatial_scope": "cta", + "suffix_spatial_scope": "cta", + "prefix_stage_fusion": "full-dimension", + "suffix_stage_fusion": "full-dimension", + "prefix_temporal_reuse": "resident-codelet", + "suffix_temporal_reuse": "resident-codelet", + "prefix_threads": prefix_threads, + "suffix_threads": suffix_threads, + "prefix_ept": prefix_ept, + "suffix_ept": suffix_ept, + "cross_twiddle": twiddle, + "boundary": "global-scratch", + "reorder": "online-tiled" if max(prefix_log_n, suffix_log_n) <= 10 else "direct-strided-or-transpose", + } + point["status"], point["reason"] = classify_online_point(point, hardware, compiled_points) + yield point + + +def write_csv(path, rows): + path.parent.mkdir(parents=True, exist_ok=True) + with path.open("w", newline="") as destination: + writer = csv.DictWriter(destination, fieldnames=rows[0].keys(), lineterminator="\n") + writer.writeheader() + writer.writerows(rows) + + +def main(): + parser = argparse.ArgumentParser(description="Validate and enumerate the canonical FFT architecture space.") + parser.add_argument("--spec", type=pathlib.Path, + default=pathlib.Path("config/fft_architecture_space.json")) + parser.add_argument("--profile", default="v100-sm70") + parser.add_argument("--codegen-spec", type=pathlib.Path, + default=pathlib.Path("config/v100_fft_codegen.json")) + parser.add_argument("--validate-only", action="store_true") + parser.add_argument("--logNs", nargs="+", type=int, default=(16, 18, 20)) + parser.add_argument("--threads", nargs="+", type=int) + parser.add_argument("--ept", nargs="+", type=int) + parser.add_argument("--twiddles", nargs="+", choices=("table", "recurrence"), default=("table", "recurrence")) + parser.add_argument("--status", nargs="+", choices=("compiled", "awaiting-codegen", "requires-new-kernel", "hardware-infeasible")) + parser.add_argument("--output", type=pathlib.Path) + parser.add_argument("--summary", type=pathlib.Path) + args = parser.parse_args() + + document = load_space(args.spec) + if args.profile not in document["hardware_profiles"]: + raise ValueError(f"unknown hardware profile: {args.profile}") + if args.validate_only: + return + dimension = document["axes"]["dimension"] + compiled_points = load_codegen_points(args.codegen_spec) + threads = args.threads or dimension["threads"] + ept = args.ept or dimension["elements_per_thread"] + rows = list(enumerate_online(document, args.profile, args.logNs, threads, ept, args.twiddles, compiled_points)) + if args.status: + rows = [row for row in rows if row["status"] in args.status] + if not rows: + raise ValueError("FFT design-space selection is empty") + if args.output: + write_csv(args.output, rows) + counts = Counter(row["status"] for row in rows) + summary = { + "schema_version": document["schema_version"], + "model": document["model"], + "profile": args.profile, + "selected_points": len(rows), + "status_counts": dict(sorted(counts.items())), + "axes": {"logNs": args.logNs, "threads": threads, "ept": ept, "twiddles": args.twiddles}, + } + if args.summary: + args.summary.parent.mkdir(parents=True, exist_ok=True) + args.summary.write_text(json.dumps(summary, indent=2) + "\n") + else: + print(json.dumps(summary, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/scripts/generate_fft_codegen.py b/scripts/generate_fft_codegen.py new file mode 100755 index 0000000..1fe11d2 --- /dev/null +++ b/scripts/generate_fft_codegen.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python3 +import argparse +import json +import pathlib + +from fft_design_space import load_space + + +def load_selection(path, space): + selection = json.loads(path.read_text()) + if selection.get("schema_version") != 1: + raise ValueError("unsupported FFT codegen schema") + target = selection.get("target") + if target not in space["hardware_profiles"]: + raise ValueError(f"unknown FFT codegen target: {target}") + family = selection.get("families", {}).get("cufftdx-online") + if not family: + raise ValueError("FFT codegen selection has no cufftdx-online family") + canonical = next(item for item in space["families"] if item["name"] == "cufftdx-online") + log_ns = sorted(set(family.get("dimension_log_n", []))) + pairs = sorted({tuple(pair) for pair in family.get("thread_ept_pairs", [])}) + axis = space["axes"]["dimension"] + hardware = space["hardware_profiles"][target] + if not log_ns or not pairs: + raise ValueError("FFT codegen selection is empty") + for log_n in log_ns: + if not canonical["dimension_log_n"]["min"] <= log_n <= canonical["dimension_log_n"]["max"]: + raise ValueError(f"cuFFTDx online logN={log_n} is outside the canonical family") + for threads, ept in pairs: + if threads not in axis["threads"] or ept not in axis["elements_per_thread"]: + raise ValueError(f"thread/EPT pair is outside the canonical axes: {threads}/{ept}") + if threads > hardware["max_threads_per_cta"]: + raise ValueError(f"thread/EPT pair exceeds CTA threads: {threads}/{ept}") + if threads * ept * 8 > hardware["max_shared_bytes_per_cta"]: + raise ValueError(f"thread/EPT pair exceeds tiled shared memory: {threads}/{ept}") + return target, log_ns, pairs + + +def generate_header(path, target, log_ns, pairs): + conditions = [] + for log_n in log_ns: + size = 1 << log_n + for threads, ept in pairs: + if ept <= size and threads * ept >= size and (threads * ept) % size == 0: + conditions.append(f"(log_n == {log_n} && threads == {threads} && ept == {ept})") + expression = " ||\n ".join(conditions) or "false" + path.write_text(f'''// Generated by scripts/generate_fft_codegen.py for {target}. Do not edit. +#pragma once +#include + +namespace cuntt::detail {{ +inline bool generated_cufftdx_online_available(std::uint32_t log_n, std::uint32_t threads, + std::uint32_t ept) noexcept {{ + return {expression}; +}} +}} // namespace cuntt::detail +''') + + +def generate_dispatch(path, target, pairs): + cases = "\n".join( + f"case ({ept}U << 16) | {threads}U: CUNTT_CUFFTDX_ONLINE_LAUNCH({threads}, {ept}); return;" + for threads, ept in pairs) + path.write_text(f'''// Generated by scripts/generate_fft_codegen.py for {target}. Do not edit. +{cases} +''') + + +def main(): + parser = argparse.ArgumentParser(description="Generate selected cuFFTDx online template dispatch points.") + parser.add_argument("--space-spec", required=True, type=pathlib.Path) + parser.add_argument("--selection", required=True, type=pathlib.Path) + parser.add_argument("--output-dir", required=True, type=pathlib.Path) + args = parser.parse_args() + space = load_space(args.space_spec) + target, log_ns, pairs = load_selection(args.selection, space) + args.output_dir.mkdir(parents=True, exist_ok=True) + generate_header(args.output_dir / "generated_cufftdx_online_config.cuh", target, log_ns, pairs) + generate_dispatch(args.output_dir / "generated_cufftdx_online_dispatch.inc", target, pairs) + (args.output_dir / "fft_codegen_manifest.json").write_text(json.dumps({ + "schema_version": 1, + "target": target, + "family": "cufftdx-online", + "dimension_log_n": log_ns, + "thread_ept_pairs": [list(pair) for pair in pairs], + }, indent=2) + "\n") + + +if __name__ == "__main__": + main() diff --git a/scripts/install_cufftdx.sh b/scripts/install_cufftdx.sh new file mode 100755 index 0000000..9c15a98 --- /dev/null +++ b/scripts/install_cufftdx.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) +DESTINATION=${MATHDX_ROOT:-"$ROOT/external/mathdx"} +MATHDX_VERSION=${MATHDX_VERSION:-24.4.0} + +python3 -m pip install --upgrade --target "$DESTINATION" "nvidia-mathdx==$MATHDX_VERSION" +test -f "$DESTINATION/nvidia/mathdx/include/cufftdx.hpp" +printf 'MathDx %s installed at %s\n' "$MATHDX_VERSION" "$DESTINATION" diff --git a/scripts/install_turbofft.sh b/scripts/install_turbofft.sh new file mode 100755 index 0000000..a6b6ca1 --- /dev/null +++ b/scripts/install_turbofft.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) +DESTINATION=${TURBOFFT_ROOT:-"$ROOT/external/TurboFFT"} +TURBOFFT_REPOSITORY=${TURBOFFT_REPOSITORY:-https://github.com/shixun404/TurboFFT.git} +TURBOFFT_COMMIT=${TURBOFFT_COMMIT:-918179c826f332967097fb977094ae7f54d36ab6} + +if [[ ! -d "$DESTINATION/.git" ]]; then + git clone --filter=blob:none "$TURBOFFT_REPOSITORY" "$DESTINATION" +fi + +git -C "$DESTINATION" fetch --depth 1 origin "$TURBOFFT_COMMIT" +git -C "$DESTINATION" checkout --detach "$TURBOFFT_COMMIT" +printf 'TurboFFT installed at %s (%s)\n' "$DESTINATION" "$(git -C "$DESTINATION" rev-parse HEAD)" diff --git a/scripts/install_vkfft.sh b/scripts/install_vkfft.sh new file mode 100755 index 0000000..14c76a0 --- /dev/null +++ b/scripts/install_vkfft.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) +DESTINATION=${VKFFT_ROOT:-"$ROOT/external/VkFFT"} +VKFFT_REPOSITORY=${VKFFT_REPOSITORY:-https://github.com/DTolm/VkFFT.git} +VKFFT_COMMIT=${VKFFT_COMMIT:-066a17c17068c0f11c9298d848c2976c71fad1c1} + +if [[ ! -d "$DESTINATION/.git" ]]; then + git clone --filter=blob:none "$VKFFT_REPOSITORY" "$DESTINATION" +fi + +git -C "$DESTINATION" fetch --depth 1 origin "$VKFFT_COMMIT" +git -C "$DESTINATION" checkout --detach "$VKFFT_COMMIT" +printf 'VkFFT installed at %s (%s)\n' "$DESTINATION" "$(git -C "$DESTINATION" rev-parse HEAD)" diff --git a/scripts/profile_fft_architecture_ncu.sh b/scripts/profile_fft_architecture_ncu.sh new file mode 100755 index 0000000..de63814 --- /dev/null +++ b/scripts/profile_fft_architecture_ncu.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) +NCU=${NCU:-/usr/local/cuda-11.8/bin/ncu} +BIN=${BIN:-"$ROOT/build/cubutterfly_bench"} +OUTPUT_DIR=${OUTPUT_DIR:-"$ROOT/results/ncu_fft_architecture"} +LOG_N=${LOG_N:-18} +BATCH=${BATCH:-16} +LOCAL_STAGES=${LOCAL_STAGES:-9} + +if [[ ! -x "$NCU" || ! -x "$BIN" ]]; then + echo "missing profiler or benchmark: NCU=$NCU BIN=$BIN" >&2 + exit 1 +fi +mkdir -p "$OUTPUT_DIR" + +METRICS=${METRICS:-gpu__time_duration.sum,dram__bytes_read.sum,dram__bytes_write.sum,dram__throughput.avg.pct_of_peak_sustained_elapsed,lts__t_sector_hit_rate.pct,l1tex__data_bank_conflicts_pipe_lsu_mem_shared_op_ld.sum,l1tex__data_bank_conflicts_pipe_lsu_mem_shared_op_st.sum,smsp__inst_executed.sum,sm__warps_active.avg.pct_of_peak_sustained_active,smsp__warp_issue_stalled_barrier_per_warp_active.pct,smsp__warp_issue_stalled_long_scoreboard_per_warp_active.pct,launch__registers_per_thread,launch__shared_mem_per_block} +COMMON=(--operator fft --precision fp32 --logN "$LOG_N" --batch "$BATCH" --placement out-of-place + --normalization none --warmup 0 --repeat 1 --csv) +ONLINE=(--backend online-reorder --fft-core cufftdx-block --local-stages "$LOCAL_STAGES" + --cross-twiddle recurrence --tile-threads 32 --reorder-columns 1) + +profile() { + local label=$1 + shift + "$NCU" --target-processes all --replay-mode kernel --cache-control none --clock-control base \ + --launch-count 2 --metrics "$METRICS" --page raw --csv --force-overwrite \ + --log-file "$OUTPUT_DIR/${label}_logN${LOG_N}.csv" "$@" +} + +profile tuned_256_256 "$BIN" "${COMMON[@]}" "${ONLINE[@]}" --prefix-threads 256 --suffix-threads 256 +profile fixed_512_512 "$BIN" "${COMMON[@]}" "${ONLINE[@]}" --prefix-threads 512 --suffix-threads 512 +profile asymmetric_256_512 "$BIN" "${COMMON[@]}" "${ONLINE[@]}" --prefix-threads 256 --suffix-threads 512 +profile cufft "$BIN" "${COMMON[@]}" --backend cufft + +python3 "$ROOT/scripts/summarize_ncu.py" "$OUTPUT_DIR"/*_logN"$LOG_N".csv \ + --output "$OUTPUT_DIR/summary_logN${LOG_N}.csv" +printf 'NCU summary: %s\n' "$OUTPUT_DIR/summary_logN${LOG_N}.csv" diff --git a/scripts/profile_fft_direct14_ncu.sh b/scripts/profile_fft_direct14_ncu.sh new file mode 100755 index 0000000..2bc4c62 --- /dev/null +++ b/scripts/profile_fft_direct14_ncu.sh @@ -0,0 +1,57 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) +NCU=${NCU:-/usr/local/cuda-11.8/bin/ncu} +BIN=${BIN:-"$ROOT/build/cubutterfly_bench"} +OUTPUT_DIR=${OUTPUT_DIR:-"$ROOT/results/ncu_fft_direct14"} +BATCH=${BATCH:-256} + +if [[ ! -x "$NCU" ]]; then + echo "ncu not found: $NCU" >&2 + exit 1 +fi +if [[ ! -x "$BIN" ]]; then + echo "cuButterfly benchmark not found: $BIN" >&2 + exit 1 +fi +mkdir -p "$OUTPUT_DIR" + +NCU_METRICS=( + gpu__time_duration.sum + dram__bytes_read.sum + dram__bytes_write.sum + dram__throughput.avg.pct_of_peak_sustained_elapsed + lts__t_sector_hit_rate.pct + l1tex__t_sector_hit_rate.pct + l1tex__data_bank_conflicts_pipe_lsu_mem_shared_op_ld.sum + l1tex__data_bank_conflicts_pipe_lsu_mem_shared_op_st.sum + smsp__inst_executed.sum + smsp__sass_thread_inst_executed_op_fp32_pred_on.sum + sm__warps_active.avg.pct_of_peak_sustained_active + smsp__warp_issue_stalled_barrier_per_warp_active.pct + smsp__warp_issue_stalled_long_scoreboard_per_warp_active.pct + launch__registers_per_thread + launch__shared_mem_per_block +) +METRICS=$(IFS=,; echo "${NCU_METRICS[*]}") +COMMON=(--operator fft --precision fp32 --logN 14 --batch "$BATCH" --placement out-of-place + --normalization none --warmup 0 --repeat 1 --csv) + +profile() { + local label=$1 + shift + "$NCU" --target-processes all --replay-mode kernel --cache-control none \ + --clock-control base --launch-count 2 --metrics "$METRICS" --page raw --csv \ + --force-overwrite --log-file "$OUTPUT_DIR/${label}_logN14.csv" "$@" +} + +profile direct_1024 "$BIN" "${COMMON[@]}" --backend temporal-tile \ + --fft-core cufftdx-direct --tile-threads 1024 +profile cufft "$BIN" "${COMMON[@]}" --backend cufft + +python3 "$ROOT/scripts/summarize_ncu.py" \ + "$OUTPUT_DIR/direct_1024_logN14.csv" \ + "$OUTPUT_DIR/cufft_logN14.csv" \ + --output "$OUTPUT_DIR/summary_logN14.csv" +printf 'NCU summary: %s\n' "$OUTPUT_DIR/summary_logN14.csv" diff --git a/scripts/profile_fft_resident_ncu.sh b/scripts/profile_fft_resident_ncu.sh new file mode 100755 index 0000000..a990af1 --- /dev/null +++ b/scripts/profile_fft_resident_ncu.sh @@ -0,0 +1,64 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) +NCU=${NCU:-/usr/local/cuda-11.8/bin/ncu} +BIN=${BIN:-"$ROOT/build/cubutterfly_bench"} +OUTPUT_DIR=${OUTPUT_DIR:-"$ROOT/results/ncu_fft_resident"} +BATCH=${BATCH:-1024} + +if [[ ! -x "$NCU" ]]; then + echo "ncu not found: $NCU" >&2 + exit 1 +fi +if [[ ! -x "$BIN" ]]; then + echo "cuButterfly benchmark not found: $BIN" >&2 + exit 1 +fi +mkdir -p "$OUTPUT_DIR" + +NCU_METRICS=( + gpu__time_duration.sum + dram__bytes_read.sum + dram__bytes_write.sum + dram__throughput.avg.pct_of_peak_sustained_elapsed + lts__t_sector_hit_rate.pct + l1tex__t_sector_hit_rate.pct + l1tex__data_bank_conflicts_pipe_lsu_mem_shared_op_ld.sum + l1tex__data_bank_conflicts_pipe_lsu_mem_shared_op_st.sum + smsp__inst_executed.sum + smsp__sass_thread_inst_executed_op_fp32_pred_on.sum + sm__warps_active.avg.pct_of_peak_sustained_active + smsp__warp_issue_stalled_barrier_per_warp_active.pct + smsp__warp_issue_stalled_long_scoreboard_per_warp_active.pct + launch__registers_per_thread + launch__shared_mem_per_block +) +METRICS=$(IFS=,; echo "${NCU_METRICS[*]}") + +profile() { + local label=$1 + shift + "$NCU" --target-processes all --replay-mode kernel --cache-control none \ + --clock-control base --launch-count 2 --metrics "$METRICS" --page raw --csv \ + --force-overwrite --log-file "$OUTPUT_DIR/${label}_logN12.csv" "$@" +} + +COMMON=(--operator fft --precision fp32 --logN 12 --batch "$BATCH" --placement out-of-place \ + --normalization none --warmup 0 --repeat 1 --csv) + +profile two_pass "$BIN" "${COMMON[@]}" --backend online-reorder --fft-core cufftdx-block \ + --local-stages 6 --cross-twiddle recurrence --tile-threads 32 --reorder-columns 1 +profile resident_1024 "$BIN" "${COMMON[@]}" --backend online-reorder --fft-core cufftdx-resident \ + --local-stages 6 --cross-twiddle recurrence --tile-threads 1024 --reorder-columns 1 +profile direct_512 "$BIN" "${COMMON[@]}" --backend temporal-tile --fft-core cufftdx-direct \ + --tile-threads 512 +profile cufft "$BIN" "${COMMON[@]}" --backend cufft + +python3 "$ROOT/scripts/summarize_ncu.py" \ + "$OUTPUT_DIR/two_pass_logN12.csv" \ + "$OUTPUT_DIR/resident_1024_logN12.csv" \ + "$OUTPUT_DIR/direct_512_logN12.csv" \ + "$OUTPUT_DIR/cufft_logN12.csv" \ + --output "$OUTPUT_DIR/summary_logN12.csv" +printf 'NCU summary: %s\n' "$OUTPUT_DIR/summary_logN12.csv" diff --git a/scripts/run_comprehensive_suite.py b/scripts/run_comprehensive_suite.py new file mode 100644 index 0000000..92dc1b9 --- /dev/null +++ b/scripts/run_comprehensive_suite.py @@ -0,0 +1,298 @@ +#!/usr/bin/env python3 +import argparse +import csv +import io +import json +import math +import pathlib +import random +import shlex +import subprocess +import sys + + +MILLER_RABIN_BASES = (2, 325, 9375, 28178, 450775, 9780504, 1795265022) +METADATA_FIELDS = ( + "suite_case_id", "suite_group", "suite_tier", "suite_runner", "implementation", + "reference", "trial", "performance_batch", "preflight_correct", "preflight_max_error", +) + + +def is_prime(value): + if value < 2: + return False + for prime in (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37): + if value % prime == 0: + return value == prime + odd_part = value - 1 + power = 0 + while odd_part % 2 == 0: + odd_part //= 2 + power += 1 + for base in MILLER_RABIN_BASES: + if base % value == 0: + continue + result = pow(base, odd_part, value) + if result in (1, value - 1): + continue + for _ in range(1, power): + result = result * result % value + if result == value - 1: + break + else: + return False + return True + + +def ntt_prime(bits, log_n): + step = 1 << log_n + multiplier = ((1 << bits) - 2) // step + while multiplier > 0: + candidate = multiplier * step + 1 + if candidate.bit_length() != bits: + break + if is_prime(candidate): + return candidate + multiplier -= 1 + raise ValueError(f"could not find a {bits}-bit prime for logN={log_n}") + + +def argument_value(arguments, option, default=""): + if option not in arguments: + return default + index = arguments.index(option) + if index + 1 >= len(arguments): + raise ValueError(f"missing value after {option}") + return str(arguments[index + 1]) + + +def expected_semantics(case, batch=None): + arguments = case["args"] + runner = case["runner"] + log_n = int(case["logN"]) + element_stride = int(case.get("element_stride", 1)) + if runner == "fft-library": + placement = "in-place" + normalization = "none" + elif runner == "butterfly": + placement = argument_value(arguments, "--placement", "out-of-place") + normalization = argument_value(arguments, "--normalization", "inverse") + if case["operator"] == "xor-zeta": + normalization = "none" + else: + placement = "" + normalization = "" + semantics = { + "operator": case["operator"], + "precision": case["precision"], + "direction": "inverse" if "--inverse" in arguments else case.get("direction", "forward"), + "normalization": normalization, + "placement": placement, + "logN": str(log_n), + "N": str(1 << log_n), + "element_stride": str(element_stride), + "output_order": argument_value(arguments, "--output-order", ""), + } + if batch is not None: + semantics["batch"] = str(batch) + transform_extent = ((1 << log_n) - 1) * element_stride + 1 + semantics["batch_stride"] = str(transform_extent + int(case.get("batch_padding", 0))) + return semantics + + +def load_manifest(path): + document = json.loads(path.read_text()) + if document.get("schema_version") != 1: + raise ValueError("unsupported comprehensive-suite schema") + for mode in ("quick", "full"): + protocol = document.get("protocols", {}).get(mode, {}) + required = {"target_points", "warmup", "repeat", "trials", "verify_batch"} + if required - set(protocol): + raise ValueError(f"protocol {mode} is incomplete") + case_ids = [case["id"] for case in document.get("cases", [])] + if len(case_ids) != len(set(case_ids)) or not case_ids: + raise ValueError("suite case ids must be nonempty and unique") + valid_runners = set(document.get("binaries", {})) + for case in document["cases"]: + missing = {"id", "tier", "group", "runner", "implementation", "operator", "precision", "logN", "args"} - set(case) + if missing: + raise ValueError(f"case {case.get('id', '')} lacks {sorted(missing)}") + if case["tier"] not in ("quick", "full") or case["runner"] not in valid_runners: + raise ValueError(f"case {case['id']} has an invalid tier or runner") + if not 1 <= int(case["logN"]) <= 30: + raise ValueError(f"case {case['id']} has invalid logN") + groups = {} + for case in document["cases"]: + groups.setdefault(case["group"], []).append(case) + comparable_fields = ("operator", "precision", "direction", "normalization", "placement", "logN", "element_stride", "output_order") + for group, cases in groups.items(): + contracts = {tuple(expected_semantics(case)[field] for field in comparable_fields) for case in cases} + if len(contracts) != 1: + raise ValueError(f"comparison group {group} mixes semantic contracts") + return document + + +def selected_cases(document, mode, filters): + tiers = {"quick"} if mode == "quick" else {"quick", "full"} + cases = [case for case in document["cases"] if case["tier"] in tiers] + if filters: + cases = [case for case in cases if any(token in case["id"] or token in case["group"] for token in filters)] + if not cases: + raise ValueError("case selection is empty") + return cases + + +def case_batch(case, protocol): + return int(case.get("batch", max(1, int(protocol["target_points"]) // (1 << int(case["logN"]))))) + + +def build_command(root, document, case, protocol, batch, verify): + binary = root / document["binaries"][case["runner"]] + if not binary.is_file(): + raise FileNotFoundError(f"benchmark binary not found: {binary}") + command = [str(binary), *[str(value) for value in case["args"]], "--logN", str(case["logN"]), "--batch", str(batch)] + if case["runner"] == "butterfly": + element_stride = int(case.get("element_stride", 1)) + transform_extent = ((1 << int(case["logN"])) - 1) * element_stride + 1 + batch_stride = transform_extent + int(case.get("batch_padding", 0)) + command += ["--element-stride", str(element_stride), "--batch-stride", str(batch_stride)] + if case["runner"] == "ntt": + command += ["--modulus", str(ntt_prime(int(case["modulus_bits"]), int(case["logN"])))] + if verify: + command += ["--warmup", "0", "--repeat", "1", "--verify", "--csv"] + else: + command += ["--warmup", str(protocol["warmup"]), "--repeat", str(protocol["repeat"]), "--csv"] + return command + + +def parse_csv_record(output): + lines = [line for line in output.splitlines() if line.strip()] + for index, line in enumerate(lines[:-1]): + if "kernel_ms" not in line or "," not in line: + continue + rows = list(csv.DictReader(io.StringIO(f"{line}\n{lines[index + 1]}\n"))) + if len(rows) == 1 and rows[0].get("kernel_ms"): + return rows[0] + raise RuntimeError(f"benchmark did not produce one CSV record:\n{output}") + + +def execute(command): + completed = subprocess.run(command, check=False, capture_output=True, text=True) + if completed.returncode: + raise RuntimeError( + f"command failed with exit code {completed.returncode}: {shlex.join(command)}\n" + f"stdout:\n{completed.stdout}\nstderr:\n{completed.stderr}") + return parse_csv_record(completed.stdout) + + +def validate_record(case, batch, record): + expected = expected_semantics(case, batch) + aliases = {"performance_batch": "batch"} + for expected_field, expected_value in expected.items(): + record_field = aliases.get(expected_field, expected_field) + observed = record.get(record_field, "") + if observed and observed != expected_value: + raise RuntimeError( + f"semantic contract mismatch for {case['id']}: {record_field}={observed}, expected {expected_value}") + return expected + + +def write_csv(path, records): + path.parent.mkdir(parents=True, exist_ok=True) + fields = list(METADATA_FIELDS) + for record in records: + for field in record: + if field not in fields: + fields.append(field) + with path.open("w", newline="") as destination: + writer = csv.DictWriter( + destination, fieldnames=fields, extrasaction="ignore", lineterminator="\n") + writer.writeheader() + writer.writerows(records) + + +def read_existing(path): + if not path.is_file(): + return [] + with path.open(newline="") as source: + return list(csv.DictReader(source)) + + +def main(): + parser = argparse.ArgumentParser(description="Run the reproducible single-GPU comprehensive comparison suite.") + parser.add_argument("--manifest", type=pathlib.Path, default=pathlib.Path("config/v100_comprehensive_suite.json")) + parser.add_argument("--mode", choices=("quick", "full"), default="quick") + parser.add_argument("--only", nargs="+", help="Run case ids/groups containing any supplied token.") + parser.add_argument("--output", "-o", type=pathlib.Path, default=pathlib.Path("results/comprehensive_v100_quick_raw.csv")) + parser.add_argument("--resume", action="store_true") + parser.add_argument("--skip-verify", action="store_true") + parser.add_argument("--dry-run", action="store_true") + args = parser.parse_args() + + root = pathlib.Path(__file__).resolve().parents[1] + manifest_path = args.manifest if args.manifest.is_absolute() else root / args.manifest + output_path = args.output if args.output.is_absolute() else root / args.output + document = load_manifest(manifest_path) + protocol = document["protocols"][args.mode] + cases = selected_cases(document, args.mode, args.only) + existing = read_existing(output_path) if args.resume else [] + complete = {(row["suite_case_id"], int(row["trial"])) for row in existing if row.get("trial", "").isdigit()} + records = list(existing) + + pending = [(case, trial) for trial in range(1, int(protocol["trials"]) + 1) for case in cases + if (case["id"], trial) not in complete] + random.Random(0xC0B17 + (0 if args.mode == "quick" else 1)).shuffle(pending) + if args.dry_run: + for case, trial in pending: + command = build_command(root, document, case, protocol, case_batch(case, protocol), False) + print(f"trial={trial} case={case['id']} {shlex.join(command)}") + print(f"cases={len(cases)} pending_runs={len(pending)}") + return + + preflights = {} + for case, _ in pending: + if case["id"] in preflights: + continue + if args.skip_verify: + preflights[case["id"]] = {"correct": "-1", "max_error": ""} + continue + verify_batch = min(case_batch(case, protocol), int(protocol["verify_batch"])) + command = build_command(root, document, case, protocol, verify_batch, True) + print(f"verify case={case['id']} batch={verify_batch}", flush=True) + record = execute(command) + validate_record(case, verify_batch, record) + if record.get("correct") != "1": + raise RuntimeError(f"correctness preflight failed for {case['id']}: {record}") + preflights[case["id"]] = record + + for run_index, (case, trial) in enumerate(pending, 1): + batch = case_batch(case, protocol) + command = build_command(root, document, case, protocol, batch, False) + print(f"run={run_index}/{len(pending)} trial={trial} case={case['id']} batch={batch}", flush=True) + measured = execute(command) + semantics = validate_record(case, batch, measured) + preflight = preflights[case["id"]] + records.append({ + "suite_case_id": case["id"], + "suite_group": case["group"], + "suite_tier": case["tier"], + "suite_runner": case["runner"], + "implementation": case["implementation"], + "reference": int(bool(case.get("reference"))), + "trial": trial, + "performance_batch": batch, + "preflight_correct": preflight.get("correct", ""), + "preflight_max_error": preflight.get("max_error", preflight.get("max_roundtrip_error", "")), + **measured, + **semantics, + }) + write_csv(output_path, records) + print(f"wrote {len(records)} samples to {output_path}") + + +if __name__ == "__main__": + try: + main() + except (OSError, ValueError, RuntimeError) as error: + print(f"error: {error}", file=sys.stderr) + raise SystemExit(1) diff --git a/scripts/summarize_comprehensive_suite.py b/scripts/summarize_comprehensive_suite.py new file mode 100644 index 0000000..1ca58e4 --- /dev/null +++ b/scripts/summarize_comprehensive_suite.py @@ -0,0 +1,221 @@ +#!/usr/bin/env python3 +import argparse +import csv +import json +import pathlib +import statistics + + +SEMANTIC_FIELDS = ( + "operator", "precision", "direction", "normalization", "placement", "logN", "N", + "performance_batch", "element_stride", "batch_stride", "word_bits", "modulus_bits", + "inverse", "output_order", +) + +CONFIG_FIELDS = ( + "backend", "compute_unit", "fft_core", "local_exchange", "cross_twiddle", +) + + +def read_rows(path): + with path.open(newline="") as source: + return list(csv.DictReader(source)) + + +def classify(ratio): + if ratio >= 1.03: + return "faster" + if ratio >= 0.97: + return "parity" + return "slower" + + +def summarize(rows, max_relative_range=0.03): + if not rows: + raise ValueError("comprehensive-suite input is empty") + invalid = [row["suite_case_id"] for row in rows if row.get("preflight_correct") not in ("1", "-1")] + if invalid: + raise ValueError(f"correctness preflight failed or is missing: {sorted(set(invalid))}") + by_case = {} + for row in rows: + by_case.setdefault(row["suite_case_id"], []).append(row) + cases = [] + for case_id, samples in by_case.items(): + times = [float(sample["kernel_ms"]) for sample in samples] + ordered_times = sorted(times) + central_times = ordered_times[1:-1] if len(ordered_times) >= 5 else ordered_times + median_time = statistics.median(times) + transform_count = int(first_value(samples, "performance_batch", "0")) + point_count = int(first_value(samples, "N", "0")) * transform_count + relative_range = (max(times) - min(times)) / median_time + central_relative_range = (max(central_times) - min(central_times)) / median_time + if central_relative_range > max_relative_range: + stability_class = "unstable" + elif relative_range > max_relative_range: + stability_class = "stable-with-outlier" + else: + stability_class = "stable" + first = samples[0] + cases.append({ + "case_id": case_id, + "group": first["suite_group"], + "implementation": first["implementation"], + "reference": int(first["reference"]), + "trials": len(samples), + "median_kernel_ms": median_time, + "min_kernel_ms": min(times), + "max_kernel_ms": max(times), + "relative_range": relative_range, + "central_relative_range": central_relative_range, + "stability_class": stability_class, + "correct": int(all(sample.get("preflight_correct") == "1" for sample in samples)), + **{field: first.get(field, "") for field in SEMANTIC_FIELDS}, + **{field: first.get(field, "") for field in CONFIG_FIELDS}, + "million_transforms_s": transform_count / (median_time * 1000.0), + "billion_points_s": point_count / (median_time * 1.0e6), + }) + by_group = {} + for case in cases: + by_group.setdefault(case["group"], []).append(case) + output = [] + for group, group_cases in sorted(by_group.items()): + references = [case for case in group_cases if case["reference"]] + if len(references) > 1: + raise ValueError(f"group {group} has multiple references") + basis = references[0] if references else min(group_cases, key=lambda case: case["median_kernel_ms"]) + basis_kind = "declared-reference" if references else "group-fastest" + for case in sorted(group_cases, key=lambda item: item["median_kernel_ms"]): + ratio = basis["median_kernel_ms"] / case["median_kernel_ms"] + output.append({ + **case, + "comparison_basis": basis_kind, + "basis_implementation": basis["implementation"], + "basis_kernel_ms": basis["median_kernel_ms"], + "throughput_vs_basis": ratio, + "performance_class": classify(ratio), + }) + return output + + +def write_csv(path, rows): + path.parent.mkdir(parents=True, exist_ok=True) + with path.open("w", newline="") as destination: + writer = csv.DictWriter(destination, fieldnames=rows[0].keys(), lineterminator="\n") + writer.writeheader() + for row in rows: + formatted = dict(row) + for field in ("median_kernel_ms", "min_kernel_ms", "max_kernel_ms", "basis_kernel_ms"): + formatted[field] = f"{row[field]:.9f}" + for field in ( + "relative_range", "central_relative_range", "throughput_vs_basis", + "million_transforms_s", "billion_points_s", + ): + formatted[field] = f"{row[field]:.6f}" + writer.writerow(formatted) + + +def first_value(rows, field, default=""): + for row in rows: + value = row.get(field, "") + if value != "": + return value + return default + + +def layout_label(row): + stride = row.get("element_stride") or "1" + batch_stride = row.get("batch_stride") or "n/a" + placement = row.get("placement") or "n/a" + order = row.get("output_order") + suffix = f", {order}" if order else "" + return f"{placement}, es={stride}, bs={batch_stride}{suffix}" + + +def numeric_label(row): + modulus_bits = row.get("modulus_bits") + if modulus_bits: + return f"{row['precision']}/{modulus_bits}-bit" + return row["precision"] + + +def semantic_label(row): + normalization = row.get("normalization") + if normalization and normalization != "none": + return f"{row['direction']}, norm={normalization}" + return row["direction"] + + +def design_label(row): + parts = [] + for field in ("backend", "fft_core", "local_exchange", "compute_unit"): + value = row.get(field) + if value and value not in parts and value not in ("auto", "scalar", "shared"): + parts.append(value) + return " / ".join(parts) if parts else "library" + + +def write_markdown(path, rows, external_evidence): + groups = {} + for row in rows: + groups.setdefault(row["group"], []).append(row) + lines = [ + "# Single-GPU Comprehensive Summary", "", + "Every row uses the listed transform length and batch. `Mtransform/s` and", + "`Gpoint/s` are derived from the median resident kernel time. Ratios above one", + "mean higher throughput than `Basis`; groups without a declared reference use", + "their fastest internal implementation as the basis.", "", + ] + operator_order = ("fft", "ntt", "fwht", "xor-zeta") + for operator in operator_order: + operator_rows = [row for row in rows if row["operator"] == operator] + if not operator_rows: + continue + lines += [f"## {operator.upper()} Results", "", + "| Numeric | Semantics | logN | N | Batch | Layout | Implementation | Design point | Median ms | Mtransform/s | Gpoint/s | vs basis | Basis | Stability |", + "|:--|:--|--:|--:|--:|:--|:--|:--|--:|--:|--:|--:|:--|:--|"] + for row in sorted(operator_rows, key=lambda item: (int(item["logN"]), item["group"], item["median_kernel_ms"])): + lines.append( + f"| {numeric_label(row)} | {semantic_label(row)} | {row['logN']} | " + f"{int(row['N']):,} | {int(row['performance_batch']):,} | {layout_label(row)} | " + f"{row['implementation']} | {design_label(row)} | {row['median_kernel_ms']:.6f} | " + f"{row['million_transforms_s']:.3f} | {row['billion_points_s']:.3f} | " + f"{row['throughput_vs_basis']:.3f}x | {row['basis_implementation']} | " + f"{row['stability_class']} |") + lines.append("") + lines += ["## External Coverage Gaps", ""] + if external_evidence: + for item in external_evidence: + lines.append( + f"- **{item['operator']} / {item['implementation']}**: {item['status']}; " + f"{item['reason']}. Existing evidence: `{item['existing_result']}`.") + else: + lines.append("- None recorded.") + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text("\n".join(lines) + "\n") + + +def main(): + parser = argparse.ArgumentParser(description="Summarize the single-GPU comprehensive comparison suite.") + parser.add_argument("inputs", nargs="+", type=pathlib.Path) + parser.add_argument("--manifest", type=pathlib.Path, default=pathlib.Path("config/v100_comprehensive_suite.json")) + parser.add_argument("--output", "-o", required=True, type=pathlib.Path) + parser.add_argument("--markdown", type=pathlib.Path) + parser.add_argument("--max-relative-range", type=float, default=0.03) + parser.add_argument("--require-stable", action="store_true") + args = parser.parse_args() + + rows = [] + for path in args.inputs: + rows.extend(read_rows(path)) + summary = summarize(rows, args.max_relative_range) + write_csv(args.output, summary) + if args.markdown: + manifest = json.loads(args.manifest.read_text()) + write_markdown(args.markdown, summary, manifest.get("external_evidence", [])) + unstable = [row["case_id"] for row in summary if row["stability_class"] == "unstable"] + if args.require_stable and unstable: + raise ValueError(f"unstable benchmark cases exceed relative range {args.max_relative_range}: {unstable}") + + +if __name__ == "__main__": + main() diff --git a/scripts/summarize_cubutterfly_designs.py b/scripts/summarize_cubutterfly_designs.py index ff508ee..29d4ceb 100644 --- a/scripts/summarize_cubutterfly_designs.py +++ b/scripts/summarize_cubutterfly_designs.py @@ -5,7 +5,7 @@ import statistics -CONFIG_FIELDS = ("backend", "compute_unit", "complex_multiply", "local_exchange", "fft_core", "stage_space", "tile_threads", "local_stages", "reorder_columns", "warp_stages", "pipeline_warps", "stage_handoff") +CONFIG_FIELDS = ("backend", "compute_unit", "complex_multiply", "cross_twiddle", "local_exchange", "fft_core", "stage_space", "tile_threads", "prefix_threads", "suffix_threads", "prefix_ept", "suffix_ept", "prefix_units_per_cta", "suffix_units_per_cta", "local_stages", "reorder_columns", "warp_stages", "pipeline_warps", "stage_handoff") GROUP_FIELDS = ("operator", "precision", "direction", "normalization", "placement", "logN", "N", "batch", "element_stride", "batch_stride") @@ -55,7 +55,7 @@ def main(): fields = list(output[0]) args.output.parent.mkdir(parents=True, exist_ok=True) with args.output.open("w", newline="") as destination: - writer = csv.DictWriter(destination, fieldnames=fields) + writer = csv.DictWriter(destination, fieldnames=fields, lineterminator="\n") writer.writeheader() for row in output: formatted = dict(row) diff --git a/scripts/summarize_fft_libraries.py b/scripts/summarize_fft_libraries.py new file mode 100755 index 0000000..a312ca6 --- /dev/null +++ b/scripts/summarize_fft_libraries.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python3 +import argparse +import csv +import pathlib +import statistics + + +def read_rows(path): + with path.open(newline="") as source: + return list(csv.DictReader(source)) + + +def median(rows, field): + return statistics.median(float(row[field]) for row in rows) + + +def main(): + parser = argparse.ArgumentParser(description="Combine the selected cuButterfly FFT and external-library trials.") + parser.add_argument("--libraries", type=pathlib.Path, default=pathlib.Path("results/fft_libraries_v100_raw.csv")) + parser.add_argument("--cubutterfly", type=pathlib.Path, + default=pathlib.Path("results/fft_cubutterfly_selected_v100_raw.csv")) + parser.add_argument("--output", "-o", type=pathlib.Path, + default=pathlib.Path("results/fft_library_comparison_v100_summary.csv")) + args = parser.parse_args() + + library_rows = read_rows(args.libraries) + cubutterfly_rows = read_rows(args.cubutterfly) + records = [] + for log_n in sorted({int(row["logN"]) for row in cubutterfly_rows}): + selected = [row for row in cubutterfly_rows if int(row["logN"]) == log_n] + cufft = [row for row in library_rows if int(row["logN"]) == log_n and row["library"] == "cufft"] + vkfft = [row for row in library_rows if int(row["logN"]) == log_n and row["library"] == "vkfft"] + if not cufft or not vkfft: + raise ValueError(f"missing library trials for logN={log_n}") + cub_ms = median(selected, "kernel_ms") + cufft_ms = median(cufft, "kernel_ms") + vkfft_ms = median(vkfft, "kernel_ms") + records.append({ + "logN": log_n, + "N": selected[0]["N"], + "batch": selected[0]["batch"], + "cubutterfly_backend": selected[0]["backend"], + "cubutterfly_median_ms": f"{cub_ms:.9f}", + "cufft_median_ms": f"{cufft_ms:.9f}", + "vkfft_median_ms": f"{vkfft_ms:.9f}", + "cubutterfly_vs_cufft_throughput": f"{cufft_ms / cub_ms:.6f}", + "cubutterfly_vs_vkfft_throughput": f"{vkfft_ms / cub_ms:.6f}", + "vkfft_vs_cufft_throughput": f"{cufft_ms / vkfft_ms:.6f}", + "trials": min(len(selected), len(cufft), len(vkfft)), + "correct": int(all(row["correct"] == "1" for row in selected + cufft + vkfft)), + }) + + args.output.parent.mkdir(parents=True, exist_ok=True) + with args.output.open("w", newline="") as destination: + writer = csv.DictWriter(destination, fieldnames=records[0].keys(), lineterminator="\n") + writer.writeheader() + writer.writerows(records) + + +if __name__ == "__main__": + main() diff --git a/scripts/summarize_fft_processing_units.py b/scripts/summarize_fft_processing_units.py new file mode 100755 index 0000000..c52e1bc --- /dev/null +++ b/scripts/summarize_fft_processing_units.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python3 +import argparse +import csv +import pathlib +import statistics + + +CONFIG_FIELDS = ("backend", "compute_unit", "fft_core", "tile_threads") + + +def main(): + parser = argparse.ArgumentParser(description="Select the best mapping of each FFT processing unit and compare it with cuFFT.") + parser.add_argument("input", type=pathlib.Path) + parser.add_argument("--output", "-o", required=True, type=pathlib.Path) + args = parser.parse_args() + + with args.input.open(newline="") as source: + rows = list(csv.DictReader(source)) + if not rows: + raise ValueError("FFT processing-unit sweep is empty") + + configurations = {} + for row in rows: + key = (row["logN"], row["N"], row["batch"], *(row[field] for field in CONFIG_FIELDS)) + configurations.setdefault(key, []).append(float(row["kernel_ms"])) + + candidates = [] + for key, samples in configurations.items(): + log_n, n, batch, backend, compute_unit, fft_core, tile_threads = key + candidates.append({ + "logN": int(log_n), + "N": int(n), + "batch": int(batch), + "backend": backend, + "compute_unit": compute_unit, + "fft_core": "cufft" if backend == "cufft" else fft_core, + "tile_threads": int(tile_threads), + "trials": len(samples), + "median_kernel_ms": statistics.median(samples), + "min_kernel_ms": min(samples), + "max_kernel_ms": max(samples), + }) + + selected = [] + for log_n in sorted({row["logN"] for row in candidates}): + length_rows = [row for row in candidates if row["logN"] == log_n] + cufft_rows = [row for row in length_rows if row["fft_core"] == "cufft"] + if len(cufft_rows) != 1: + raise ValueError(f"expected exactly one cuFFT configuration for logN={log_n}") + cufft_ms = cufft_rows[0]["median_kernel_ms"] + for core in sorted({row["fft_core"] for row in length_rows}): + best = min((row for row in length_rows if row["fft_core"] == core), key=lambda row: row["median_kernel_ms"]) + selected.append({ + **best, + "throughput_vs_cufft": cufft_ms / best["median_kernel_ms"], + }) + + args.output.parent.mkdir(parents=True, exist_ok=True) + with args.output.open("w", newline="") as destination: + writer = csv.DictWriter(destination, fieldnames=selected[0].keys(), lineterminator="\n") + writer.writeheader() + for row in selected: + formatted = dict(row) + for field in ("median_kernel_ms", "min_kernel_ms", "max_kernel_ms"): + formatted[field] = f"{row[field]:.6f}" + formatted["throughput_vs_cufft"] = f"{row['throughput_vs_cufft']:.6f}" + writer.writerow(formatted) + + +if __name__ == "__main__": + main() diff --git a/scripts/summarize_ncu.py b/scripts/summarize_ncu.py index c69871f..9dd705e 100755 --- a/scripts/summarize_ncu.py +++ b/scripts/summarize_ncu.py @@ -13,6 +13,8 @@ "dram__throughput.avg.pct_of_peak_sustained_elapsed": ("dram_peak_pct", 1.0), "lts__t_sector_hit_rate.pct": ("l2_hit_pct", 1.0), "l1tex__t_sector_hit_rate.pct": ("l1_hit_pct", 1.0), + "l1tex__data_bank_conflicts_pipe_lsu_mem_shared_op_ld.sum": ("shared_load_bank_conflicts", 1.0), + "l1tex__data_bank_conflicts_pipe_lsu_mem_shared_op_st.sum": ("shared_store_bank_conflicts", 1.0), "smsp__inst_executed.sum": ("warp_instructions", 1.0), "smsp__sass_thread_inst_executed_op_integer_pred_on.sum": ("integer_thread_instructions", 1.0), "smsp__sass_thread_inst_executed_op_fp32_pred_on.sum": ("fp32_thread_instructions", 1.0), @@ -23,6 +25,10 @@ "smsp__warp_issue_stalled_long_scoreboard_per_warp_active.pct": ("long_scoreboard_stall_pct", 1.0), "launch__registers_per_thread": ("registers_per_thread", 1.0), "launch__shared_mem_per_block": ("shared_mem_bytes", 1.0), + "launch__waves_per_multiprocessor": ("waves_per_sm", 1.0), + "launch__occupancy_limit_registers": ("occupancy_register_block_limit", 1.0), + "launch__occupancy_limit_shared_mem": ("occupancy_shared_block_limit", 1.0), + "launch__occupancy_limit_warps": ("occupancy_warp_block_limit", 1.0), } @@ -118,7 +124,8 @@ def main(): fields = ["label", "kernel_id", "kernel_name", "grid_size", "block_size"] + [value[0] for value in METRICS.values()] output = args.output.open("w", newline="") if args.output else sys.stdout try: - writer = csv.DictWriter(output, fieldnames=fields, extrasaction="ignore") + writer = csv.DictWriter( + output, fieldnames=fields, extrasaction="ignore", lineterminator="\n") writer.writeheader() writer.writerows(records) finally: diff --git a/scripts/sweep_cubutterfly_designs.py b/scripts/sweep_cubutterfly_designs.py index 9521808..c5e595e 100644 --- a/scripts/sweep_cubutterfly_designs.py +++ b/scripts/sweep_cubutterfly_designs.py @@ -4,6 +4,8 @@ import pathlib import subprocess +from fft_design_space import load_codegen_points + def base_configurations(operator, precision, log_n, tile_threads, hierarchical_local_stages, reorder_column_options): if log_n <= 10: @@ -83,7 +85,9 @@ def base_configurations(operator, precision, log_n, tile_threads, hierarchical_l } -def configurations(operator, precision, log_n, tile_threads, hierarchical_local_stages, reorder_column_options): +def configurations(operator, precision, log_n, tile_threads, hierarchical_local_stages, reorder_column_options, + resident_thread_options, prefix_thread_options, suffix_thread_options, + prefix_ept_options, suffix_ept_options): if precision == "fp16-fp32": if operator == "fft" and log_n == 3: yield { @@ -117,6 +121,61 @@ def configurations(operator, precision, log_n, tile_threads, hierarchical_local_ "fft_core": fft_core, "tile_threads": threads, "local_stages": 0, "reorder_columns": 0, "warp_stages": 0, "pipeline_warps": 0, "stage_space": 0, } + if 3 <= log_n <= 10: + yield { + "backend": "temporal-tile", "compute_unit": "auto", "complex_multiply": "four-mul", "local_exchange": "shared", + "fft_core": "cufftdx-block", "tile_threads": 32, "local_stages": 0, "reorder_columns": 0, "warp_stages": 0, + "pipeline_warps": 0, "stage_space": 0, + } + if 11 <= log_n <= 14: + direct_threads = tuple(t for t in resident_thread_options if log_n != 14 or t != 256) + for threads in direct_threads: + yield { + "backend": "temporal-tile", "compute_unit": "auto", "complex_multiply": "four-mul", + "cross_twiddle": "table", "local_exchange": "shared", "fft_core": "cufftdx-direct", + "tile_threads": threads, "local_stages": 0, "reorder_columns": 0, "warp_stages": 0, + "pipeline_warps": 0, "stage_space": 0, + } + for local_stages in hierarchical_local_stages: + remaining_stages = log_n - local_stages + if 3 <= local_stages <= 10 and 3 <= remaining_stages <= 10: + for cross_twiddle in ("table", "recurrence"): + prefix_n = 1 << local_stages + suffix_n = 1 << remaining_stages + for prefix_threads in prefix_thread_options: + for prefix_ept in prefix_ept_options: + if prefix_ept > prefix_n or prefix_threads * prefix_ept < prefix_n or \ + (prefix_threads * prefix_ept) % prefix_n: + continue + for suffix_threads in suffix_thread_options: + for suffix_ept in suffix_ept_options: + if suffix_ept > suffix_n or suffix_threads * suffix_ept < suffix_n or \ + (suffix_threads * suffix_ept) % suffix_n: + continue + yield { + "backend": "online-reorder", "compute_unit": "auto", "complex_multiply": "four-mul", + "cross_twiddle": cross_twiddle, "local_exchange": "shared", "fft_core": "cufftdx-block", + "tile_threads": 32, "prefix_threads": prefix_threads, "suffix_threads": suffix_threads, + "prefix_ept": prefix_ept, "suffix_ept": suffix_ept, + "local_stages": local_stages, "reorder_columns": 1, "warp_stages": 0, + "pipeline_warps": 0, "stage_space": 0, + } + resident_local_stages = {12: 6, 14: 7}.get(log_n) + if resident_local_stages is not None and resident_local_stages in hierarchical_local_stages: + for threads in resident_thread_options: + for cross_twiddle in ("table", "recurrence"): + yield { + "backend": "online-reorder", "compute_unit": "auto", "complex_multiply": "four-mul", + "cross_twiddle": cross_twiddle, "local_exchange": "shared", "fft_core": "cufftdx-resident", + "tile_threads": threads, "local_stages": resident_local_stages, "reorder_columns": 1, "warp_stages": 0, + "pipeline_warps": 0, "stage_space": 0, + } + if 7 <= log_n <= 10: + yield { + "backend": "temporal-tile", "compute_unit": "auto", "complex_multiply": "four-mul", "local_exchange": "shared", + "fft_core": "turbofft-generated", "tile_threads": 32, "local_stages": 0, "reorder_columns": 0, "warp_stages": 0, + "pipeline_warps": 0, "stage_space": 0, + } def run(binary, operator, precision, config, log_n, direction, normalization, placement, batch, element_stride, batch_stride, warmup, repeat): @@ -124,6 +183,7 @@ def run(binary, operator, precision, config, log_n, direction, normalization, pl str(binary), "--operator", operator, "--backend", config["backend"], "--compute-unit", config["compute_unit"], "--precision", precision, "--logN", str(log_n), "--complex-multiply", config["complex_multiply"], + "--cross-twiddle", config.get("cross_twiddle", "table"), "--local-exchange", config["local_exchange"], "--fft-core", config["fft_core"], "--normalization", normalization, "--placement", placement, @@ -139,6 +199,14 @@ def run(binary, operator, precision, config, log_n, direction, normalization, pl command += ["--tile-threads", str(config["tile_threads"]), "--local-stages", str(config["local_stages"])] if config["backend"] == "online-reorder": command += ["--reorder-columns", str(config["reorder_columns"])] + if config.get("prefix_threads"): + command += ["--prefix-threads", str(config["prefix_threads"])] + if config.get("suffix_threads"): + command += ["--suffix-threads", str(config["suffix_threads"])] + if config.get("prefix_ept"): + command += ["--prefix-ept", str(config["prefix_ept"])] + if config.get("suffix_ept"): + command += ["--suffix-ept", str(config["suffix_ept"])] elif config["backend"] == "warp-hybrid": command += ["--warp-stages", str(config["warp_stages"])] elif config["backend"] == "stage-pipeline": @@ -157,13 +225,17 @@ def run(binary, operator, precision, config, log_n, direction, normalization, pl def main(): parser = argparse.ArgumentParser(description="Sweep cuButterfly kernel forms and mapping parameters.") parser.add_argument("--binary", type=pathlib.Path, default=pathlib.Path("build/cubutterfly_bench")) + parser.add_argument("--fft-codegen-spec", type=pathlib.Path, + default=pathlib.Path("config/v100_fft_codegen.json")) parser.add_argument("--operators", nargs="+", choices=("fwht", "fft", "xor-zeta"), default=("fwht", "fft", "xor-zeta")) parser.add_argument("--backends", nargs="+", choices=("temporal-tile", "hierarchical", "online-reorder", "warp-hybrid", "stage-pipeline", "cufft"), default=("temporal-tile", "hierarchical", "online-reorder", "warp-hybrid", "stage-pipeline", "cufft")) parser.add_argument("--compute-units", nargs="+", choices=("radix2", "radix4", "radix8"), default=("radix2", "radix4", "radix8")) parser.add_argument("--complex-multiplies", nargs="+", choices=("four-mul", "gauss3"), default=("four-mul", "gauss3")) + parser.add_argument("--cross-twiddles", nargs="+", choices=("table", "recurrence"), default=("table",)) parser.add_argument("--local-exchanges", nargs="+", choices=("shared", "warp-register"), default=("shared", "warp-register")) - parser.add_argument("--fft-cores", nargs="+", choices=("scalar", "thread-dft8", "cta-dft8", "wmma-dft8"), + parser.add_argument("--fft-cores", nargs="+", + choices=("scalar", "thread-dft8", "cta-dft8", "wmma-dft8", "cufftdx-block", "cufftdx-direct", "cufftdx-resident", "turbofft-generated"), default=("scalar", "thread-dft8", "cta-dft8", "wmma-dft8")) parser.add_argument("--logNs", nargs="+", type=int, default=(8,)) parser.add_argument("--directions", nargs="+", choices=("forward", "inverse"), default=("forward",)) @@ -175,6 +247,11 @@ def main(): parser.add_argument("--batch-padding", type=int, default=0, help="Add this many elements between adjacent transforms.") parser.add_argument("--element-stride", type=int, default=1) parser.add_argument("--tile-thread-options", nargs="+", type=int, choices=(32, 64, 128, 256), default=(32, 64, 128, 256)) + parser.add_argument("--resident-thread-options", nargs="+", type=int, choices=(256, 512, 1024), default=(512,)) + parser.add_argument("--prefix-thread-options", nargs="+", type=int, choices=(128, 256, 512, 1024), default=(512,)) + parser.add_argument("--suffix-thread-options", nargs="+", type=int, choices=(128, 256, 512, 1024), default=(512,)) + parser.add_argument("--prefix-ept-options", nargs="+", type=int, choices=(1, 2, 4, 8, 16, 32, 64), default=(8,)) + parser.add_argument("--suffix-ept-options", nargs="+", type=int, choices=(1, 2, 4, 8, 16, 32, 64), default=(8,)) parser.add_argument("--hierarchical-local-stages", nargs="+", type=int, choices=range(5, 11), default=(5, 6, 8, 10)) parser.add_argument("--reorder-column-options", nargs="+", type=int, choices=(0, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024), default=(1,)) @@ -186,6 +263,7 @@ def main(): if not args.binary.is_file(): raise FileNotFoundError(f"benchmark binary not found: {args.binary}") + compiled_fft_points = load_codegen_points(args.fft_codegen_spec) records = [] for operator in args.operators: precisions = ("uint32",) if operator == "xor-zeta" else args.precisions @@ -201,17 +279,27 @@ def main(): for normalization in normalizations: for placement in args.placements: for config in configurations(operator, precision, log_n, args.tile_thread_options, - args.hierarchical_local_stages, args.reorder_column_options): + args.hierarchical_local_stages, args.reorder_column_options, + args.resident_thread_options, args.prefix_thread_options, + args.suffix_thread_options, args.prefix_ept_options, + args.suffix_ept_options): if config["backend"] not in args.backends: continue if config["compute_unit"] != "auto" and config["compute_unit"] not in args.compute_units: continue if operator == "fft" and config["complex_multiply"] not in args.complex_multiplies: continue + if config.get("cross_twiddle", "table") not in args.cross_twiddles: + continue if config["local_exchange"] not in args.local_exchanges: continue if config["fft_core"] not in args.fft_cores: continue + if config["fft_core"] == "cufftdx-block" and config["backend"] == "online-reorder": + prefix_key = (config["local_stages"], config["prefix_threads"], config["prefix_ept"]) + suffix_key = (log_n - config["local_stages"], config["suffix_threads"], config["suffix_ept"]) + if prefix_key not in compiled_fft_points or suffix_key not in compiled_fft_points: + continue for trial in range(1, args.trials + 1): row = run(args.binary, operator, precision, config, log_n, direction, normalization, placement, batch, args.element_stride, batch_stride, args.warmup, args.repeat) @@ -220,7 +308,7 @@ def main(): args.output.parent.mkdir(parents=True, exist_ok=True) with args.output.open("w", newline="") as destination: - writer = csv.DictWriter(destination, fieldnames=records[0].keys()) + writer = csv.DictWriter(destination, fieldnames=records[0].keys(), lineterminator="\n") writer.writeheader() writer.writerows(records) diff --git a/src/butterfly.cu b/src/butterfly.cu index 65587e5..c905caa 100644 --- a/src/butterfly.cu +++ b/src/butterfly.cu @@ -10,6 +10,7 @@ #include #include "cuntt/butterfly.hpp" +#include "external_fft_units.cuh" #include "generated_unit_api.cuh" #include "stage_pipeline.cuh" @@ -463,7 +464,8 @@ class ButterflyPlan::Impl { if (config_.log_n == 0 || config_.log_n > 20) { throw std::invalid_argument("butterfly log_n must be in [1, 20]"); } - if (config_.backend == ButterflyBackend::TemporalTile && config_.local_exchange == LocalExchange::SharedMemory && config_.log_n > 10) { + if (config_.backend == ButterflyBackend::TemporalTile && config_.local_exchange == LocalExchange::SharedMemory && + config_.log_n > 10 && config_.fft_core != FftCore::CufftDxDirect) { throw std::invalid_argument("temporal-tile requires log_n in [1, 10]"); } if (config_.local_exchange == LocalExchange::WarpRegister) { @@ -493,6 +495,33 @@ class ButterflyPlan::Impl { throw std::invalid_argument("online-reorder columns must be a power of two and retain at most 1024 values per CTA"); } } + if (config_.fft_core == FftCore::CufftDxBlock && config_.backend == ButterflyBackend::OnlineReorder) { + if (config_.prefix_threads == 0) + config_.prefix_threads = 512; + if (config_.suffix_threads == 0) + config_.suffix_threads = 512; + const auto valid_threads = [](std::uint32_t threads) { + return threads == 128 || threads == 256 || threads == 512 || threads == 1024; + }; + const std::uint32_t prefix_n = 1U << config_.local_stages; + const std::uint32_t suffix_n = 1U << (config_.log_n - config_.local_stages); + if (!valid_threads(config_.prefix_threads) || !valid_threads(config_.suffix_threads) || + config_.prefix_threads * config_.prefix_ept < prefix_n || + config_.suffix_threads * config_.suffix_ept < suffix_n || + (config_.prefix_threads * config_.prefix_ept) % prefix_n != 0 || + (config_.suffix_threads * config_.suffix_ept) % suffix_n != 0) { + throw std::invalid_argument( + "online cuFFTDx thread/EPT products must cover an integer number of local FFTs"); + } + if (!detail::cufftdx_online_available(config_.local_stages, config_.prefix_threads, config_.prefix_ept) || + !detail::cufftdx_online_available(config_.log_n - config_.local_stages, + config_.suffix_threads, config_.suffix_ept)) { + throw std::invalid_argument( + "requested online cuFFTDx thread/EPT point is hardware-feasible but was not selected for this build"); + } + config_.prefix_units_per_cta = config_.prefix_threads * config_.prefix_ept / prefix_n; + config_.suffix_units_per_cta = config_.suffix_threads * config_.suffix_ept / suffix_n; + } if (config_.batch == 0) { throw std::invalid_argument("butterfly batch must be positive"); } @@ -503,11 +532,17 @@ class ButterflyPlan::Impl { config_.stage_space != 8) { throw std::invalid_argument("butterfly stage_space must be 1, 2, 4, or 8"); } + const bool standard_tile_threads = config_.tile_threads == 32 || config_.tile_threads == 64 || + config_.tile_threads == 128 || config_.tile_threads == 256; + const bool resident_tile_threads = (config_.fft_core == FftCore::CufftDxResident || + config_.fft_core == FftCore::CufftDxDirect) && + (config_.tile_threads == 256 || config_.tile_threads == 512 || + config_.tile_threads == 1024); if (config_.local_exchange == LocalExchange::SharedMemory && (config_.backend == ButterflyBackend::TemporalTile || config_.backend == ButterflyBackend::Hierarchical || config_.backend == ButterflyBackend::OnlineReorder) && - config_.tile_threads != 32 && config_.tile_threads != 64 && config_.tile_threads != 128 && config_.tile_threads != 256) { - throw std::invalid_argument("butterfly tile_threads must be 32, 64, 128, or 256"); + !standard_tile_threads && !resident_tile_threads) { + throw std::invalid_argument("butterfly tile_threads must be 32, 64, 128, or 256; cufftdx-resident also supports 512 or 1024"); } if (config_.backend == ButterflyBackend::WarpHybrid && config_.warp_stages > 5) { throw std::invalid_argument("butterfly warp_stages must be in [0, 5]"); @@ -528,9 +563,12 @@ class ButterflyPlan::Impl { throw std::invalid_argument("uint32 precision requires xor-zeta"); } if (config_.fft_core != FftCore::Scalar) { - if (config_.op != ButterflyOperator::Fft || config_.backend != ButterflyBackend::TemporalTile || - config_.local_exchange != LocalExchange::SharedMemory) { - throw std::invalid_argument("generated FFT codelets require temporal-tile FFT with shared exchange"); + const bool cufftdx_online = (config_.fft_core == FftCore::CufftDxBlock || + config_.fft_core == FftCore::CufftDxResident) && + config_.backend == ButterflyBackend::OnlineReorder; + if (config_.op != ButterflyOperator::Fft || config_.local_exchange != LocalExchange::SharedMemory || + (config_.backend != ButterflyBackend::TemporalTile && !cufftdx_online)) { + throw std::invalid_argument("FFT codelets require temporal-tile or supported online-reorder FFT with shared exchange"); } if (config_.fft_core == FftCore::ThreadDft8) { if (config_.precision != ButterflyPrecision::Fp32 || !detail::generated_thread_dft8_available(config_.log_n)) { @@ -542,11 +580,39 @@ class ButterflyPlan::Impl { !detail::generated_cta_dft8_available(config_.log_n, config_.tile_threads)) { throw std::invalid_argument("cta-dft8 requires a generated FP32 design point"); } - } else { + } else if (config_.fft_core == FftCore::WmmaDft8) { if (config_.precision != ButterflyPrecision::Fp16Fp32 || !detail::generated_wmma_dft8_available(config_.log_n)) { throw std::invalid_argument("wmma-dft8 requires a generated fp16-fp32 log_n=3 design point"); } config_.tile_threads = 256; + } else if (config_.fft_core == FftCore::CufftDxBlock) { + const bool supported = config_.backend == ButterflyBackend::TemporalTile + ? detail::cufftdx_block_available(config_.log_n) + : detail::cufftdx_block_available(config_.local_stages) && + detail::cufftdx_block_available(config_.log_n - config_.local_stages); + if (config_.precision != ButterflyPrecision::Fp32 || !supported) { + throw std::invalid_argument( + "cufftdx-block requires FP32 and local FFT dimensions in logN=3..10"); + } + } else if (config_.fft_core == FftCore::CufftDxDirect) { + if (config_.precision != ButterflyPrecision::Fp32 || !detail::cufftdx_direct_available(config_.log_n) || + !resident_tile_threads || (config_.log_n == 14 && config_.tile_threads == 256)) { + throw std::invalid_argument( + "cufftdx-direct requires FP32 logN=11..13 with 256/512/1024 threads, or logN=14 with 512/1024 threads"); + } + } else if (config_.fft_core == FftCore::CufftDxResident) { + if (config_.precision != ButterflyPrecision::Fp32 || + !detail::cufftdx_resident_available(config_.log_n, config_.local_stages) || + !resident_tile_threads) { + throw std::invalid_argument("cufftdx-resident requires FP32 logN=12/6+6 or logN=14/7+7 and 256, 512, or 1024 threads"); + } + } else { + if (config_.precision != ButterflyPrecision::Fp32 || config_.inverse || + config_.placement != ButterflyPlacement::OutOfPlace || config_.element_stride != 1 || + !detail::turbofft_generated_available(config_.log_n)) { + throw std::invalid_argument( + "turbofft-generated requires an enabled FP32 forward, out-of-place, contiguous logN=7..10 build"); + } } } else if (config_.precision == ButterflyPrecision::Fp16Fp32) { throw std::invalid_argument("fp16-fp32 precision requires the wmma-dft8 FFT core"); @@ -561,8 +627,11 @@ class ButterflyPlan::Impl { if (config_.compute_unit == ComputeUnit::Auto) { config_.compute_unit = config_.backend == ButterflyBackend::CuFft ? ComputeUnit::Auto : ComputeUnit::Radix2; } - if (config_.fft_core != FftCore::Scalar) { + if (config_.fft_core == FftCore::ThreadDft8 || config_.fft_core == FftCore::CtaDft8 || config_.fft_core == FftCore::WmmaDft8) { config_.compute_unit = ComputeUnit::Radix8; + } else if (config_.fft_core == FftCore::CufftDxBlock || config_.fft_core == FftCore::CufftDxDirect || + config_.fft_core == FftCore::CufftDxResident || config_.fft_core == FftCore::TurboFftGenerated) { + config_.compute_unit = ComputeUnit::Auto; } if (config_.local_exchange == LocalExchange::WarpRegister && config_.compute_unit != ComputeUnit::Radix2) { throw std::invalid_argument("warp-register exchange currently provides the radix2 arithmetic unit"); @@ -580,6 +649,11 @@ class ButterflyPlan::Impl { (config_.op != ButterflyOperator::Fft || config_.backend == ButterflyBackend::CuFft)) { throw std::invalid_argument("Gauss complex multiplication requires a self-kernel FFT backend"); } + if (config_.cross_twiddle == CrossTwiddleMode::Recurrence && + (config_.op != ButterflyOperator::Fft || config_.backend != ButterflyBackend::OnlineReorder || + (config_.fft_core != FftCore::CufftDxBlock && config_.fft_core != FftCore::CufftDxResident))) { + throw std::invalid_argument("cross-twiddle recurrence currently requires an online-reorder cuFFTDx FFT"); + } if (config_.batch > static_cast(std::numeric_limits::max())) { throw std::invalid_argument("butterfly batch exceeds backend integer limits"); } @@ -614,6 +688,9 @@ class ButterflyPlan::Impl { if (config_.batch_stride < transform_extent) { throw std::invalid_argument("butterfly batch_stride is smaller than one strided transform"); } + if (config_.fft_core == FftCore::TurboFftGenerated && config_.batch_stride != points_) { + throw std::invalid_argument("turbofft-generated requires contiguous batches"); + } if (config_.batch > 1 && config_.batch_stride > (kMaxSize - transform_extent) / (config_.batch - 1)) { throw std::invalid_argument("butterfly batch extent overflows size_t"); } @@ -810,6 +887,45 @@ class ButterflyPlan::Impl { CUB_CUDA_CHECK(cudaGetLastError()); return; } + if (config_.fft_core == FftCore::CufftDxBlock) { + if (config_.backend == ButterflyBackend::OnlineReorder) { + detail::launch_cufftdx_online_reorder( + config_.log_n, config_.local_stages, device_input_.as(), result_buffer(), + device_scratch_.as(), device_twiddles_.as(), config_.batch, + config_.batch_stride, config_.element_stride, config_.inverse, + config_.inverse && config_.normalize_inverse, config_.cross_twiddle, + config_.prefix_threads, config_.suffix_threads, config_.prefix_ept, config_.suffix_ept); + } else { + detail::launch_cufftdx_block(config_.log_n, device_input_.as(), result_buffer(), config_.batch, + config_.batch_stride, config_.element_stride, config_.inverse, + config_.inverse && config_.normalize_inverse); + } + CUB_CUDA_CHECK(cudaGetLastError()); + return; + } + if (config_.fft_core == FftCore::CufftDxDirect) { + detail::launch_cufftdx_direct(config_.log_n, device_input_.as(), result_buffer(), + config_.batch, config_.batch_stride, config_.element_stride, config_.inverse, + config_.inverse && config_.normalize_inverse, config_.tile_threads); + CUB_CUDA_CHECK(cudaGetLastError()); + return; + } + if (config_.fft_core == FftCore::CufftDxResident) { + detail::launch_cufftdx_resident( + config_.log_n, config_.local_stages, device_input_.as(), result_buffer(), + device_scratch_.as(), device_twiddles_.as(), config_.batch, + config_.batch_stride, config_.element_stride, + config_.inverse, config_.inverse && config_.normalize_inverse, config_.cross_twiddle, + config_.tile_threads); + CUB_CUDA_CHECK(cudaGetLastError()); + return; + } + if (config_.fft_core == FftCore::TurboFftGenerated) { + detail::launch_turbofft_generated(config_.log_n, device_input_.as(), result_buffer(), config_.batch, + config_.batch_stride, config_.element_stride); + CUB_CUDA_CHECK(cudaGetLastError()); + return; + } if (config_.precision == ButterflyPrecision::Fp64) { const FftOperator op{device_twiddles_.as(), config_.inverse, config_.normalize_inverse, config_.complex_multiply}; diff --git a/src/butterfly_reference.cpp b/src/butterfly_reference.cpp index 2f138da..b97483f 100644 --- a/src/butterfly_reference.cpp +++ b/src/butterfly_reference.cpp @@ -47,7 +47,7 @@ ButterflyPlacement parse_butterfly_placement(const std::string& name) { std::vector butterfly_capabilities() { return { {ButterflyBackend::TemporalTile, 1, 15, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, - "generated FWHT register and FFT thread/CTA/WMMA codelets have design-point-specific ranges"}, + "generated and optional cuFFTDx/TurboFFT FFT cores have design-point-specific ranges"}, {ButterflyBackend::Hierarchical, 6, 20, true, true, true, false, false, false, false, true, true, true, true, false, true, true, true, "local_stages=5..10 and local_stages +#include + +#include + +#include "external_fft_units.cuh" +#include "generated_cufftdx_online_config.cuh" + +namespace cuntt::detail { +namespace { + +template +using BlockFft = decltype(cufftdx::Block() + cufftdx::Size() + cufftdx::Type() + + cufftdx::Direction() + cufftdx::Precision() + cufftdx::ElementsPerThread<8>() + + cufftdx::FFTsPerBlock<1024 / Size>() + cufftdx::SM<700>()); + +template +using OnlineBlockFft = decltype(cufftdx::Block() + cufftdx::Size() + cufftdx::Type() + + cufftdx::Direction() + cufftdx::Precision() + cufftdx::ElementsPerThread() + + cufftdx::FFTsPerBlock<(Threads * Ept) / Size>() + cufftdx::SM<700>()); + +template +using Resident4096Fft = decltype(cufftdx::Block() + cufftdx::Size<64>() + cufftdx::Type() + + cufftdx::Direction() + cufftdx::Precision() + + cufftdx::ElementsPerThread() + cufftdx::FFTsPerBlock<64>() + cufftdx::SM<700>()); + +template +using DirectFft = decltype(cufftdx::Block() + cufftdx::Size() + cufftdx::Type() + + cufftdx::Direction() + cufftdx::Precision() + + cufftdx::ElementsPerThread() + cufftdx::FFTsPerBlock<1>() + cufftdx::SM<700>()); + +template +using Persistent16384Fft = decltype(cufftdx::Block() + cufftdx::Size<128>() + cufftdx::Type() + + cufftdx::Direction() + cufftdx::Precision() + + cufftdx::ElementsPerThread() + cufftdx::FFTsPerBlock<32>() + cufftdx::SM<700>()); + +template +__launch_bounds__(FFT::max_threads_per_block) __global__ void cufftdx_block_kernel( + const Complex32* input, Complex32* output, std::uint64_t transforms, std::uint64_t batch_distance, + std::uint64_t element_stride, bool normalize) { + using Value = typename FFT::value_type; + const std::uint64_t transform = static_cast(blockIdx.x) * FFT::ffts_per_block + threadIdx.y; + const bool active = transform < transforms; + Value thread_data[FFT::storage_size]; + const std::uint64_t base = transform * batch_distance; + unsigned int index = threadIdx.x; +#pragma unroll + for (unsigned int item = 0; item < FFT::storage_size; ++item) { + if (active && index < FFT::input_length) { + const Complex32 value = input[base + static_cast(index) * element_stride]; + thread_data[item] = Value{value.real, value.imag}; + } else { + thread_data[item] = Value{0.0F, 0.0F}; + } + index += FFT::stride; + } + extern __shared__ __align__(16) unsigned char storage[]; + FFT().execute(thread_data, storage); + const float scale = normalize ? 1.0F / static_cast(FFT::input_length) : 1.0F; + index = threadIdx.x; +#pragma unroll + for (unsigned int item = 0; item < FFT::storage_size; ++item) { + if (active && index < FFT::output_length) { + const Value value = thread_data[item]; + output[base + static_cast(index) * element_stride] = {value.x * scale, value.y * scale}; + } + index += FFT::stride; + } +} + +template +__launch_bounds__(FFT::max_threads_per_block) __global__ void cufftdx_contiguous_block_kernel( + const Complex32* input, Complex32* output) { + using Value = typename FFT::value_type; + const std::uint64_t base = static_cast(blockIdx.x) * FFT::input_length; + Value thread_data[FFT::storage_size]; + unsigned int index = threadIdx.x; +#pragma unroll + for (unsigned int item = 0; item < FFT::storage_size; ++item) { + const Complex32 value = input[base + index]; + thread_data[item] = Value{value.real, value.imag}; + index += FFT::stride; + } + extern __shared__ __align__(16) unsigned char storage[]; + FFT().execute(thread_data, storage); + constexpr float scale = Normalize ? 1.0F / static_cast(FFT::input_length) : 1.0F; + index = threadIdx.x; +#pragma unroll + for (unsigned int item = 0; item < FFT::storage_size; ++item) { + const Value value = thread_data[item]; + output[base + index] = {value.x * scale, value.y * scale}; + index += FFT::stride; + } +} + +__device__ __forceinline__ Complex32 cross_root(const Complex32* twiddles, std::uint32_t log_n, + std::uint64_t exponent) { + const std::uint32_t n = 1U << log_n; + const std::uint32_t half = n >> 1; + const std::uint32_t power = static_cast(exponent) & (n - 1); + const bool negate = power >= half; + const Complex32 root = twiddles[half - 1 + (negate ? power - half : power)]; + return negate ? Complex32{-root.real, -root.imag} : root; +} + +template +__launch_bounds__(FFT::max_threads_per_block) __global__ void cufftdx_online_first_kernel( + const Complex32* input, Complex32* scratch, const Complex32* twiddles, std::uint64_t transforms, + std::uint32_t log_n, std::uint32_t local_log_n, std::uint64_t batch_distance, + std::uint64_t element_stride, bool recurrence_twiddle) { + using Value = typename FFT::value_type; + const std::uint32_t remaining_log_n = log_n - local_log_n; + const std::uint32_t remaining_n = 1U << remaining_log_n; + const std::uint64_t local_transform = static_cast(blockIdx.x) * FFT::ffts_per_block + threadIdx.y; + const std::uint64_t total_local = transforms * remaining_n; + const bool active = local_transform < total_local; + const std::uint32_t n2 = static_cast(local_transform) & (remaining_n - 1); + extern __shared__ __align__(16) unsigned char storage[]; + Value* tile = reinterpret_cast(storage); + + const std::uint32_t flat_thread = threadIdx.y * blockDim.x + threadIdx.x; + const std::uint32_t flat_threads = blockDim.x * blockDim.y; + constexpr std::uint32_t tile_values = FFT::input_length * FFT::ffts_per_block; + for (std::uint32_t work = flat_thread; work < tile_values; work += flat_threads) { + const std::uint32_t element = work / FFT::ffts_per_block; + const std::uint32_t slot = work - element * FFT::ffts_per_block; + const std::uint64_t staged_transform = static_cast(blockIdx.x) * FFT::ffts_per_block + slot; + const bool staged_active = staged_transform < total_local; + if (staged_active) { + const std::uint64_t staged_batch = staged_transform >> remaining_log_n; + const std::uint32_t staged_n2 = static_cast(staged_transform) & (remaining_n - 1); + const std::uint64_t logical = static_cast(element) * remaining_n + staged_n2; + const Complex32 value = input[staged_batch * batch_distance + logical * element_stride]; + tile[work] = Value{value.real, value.imag}; + } else { + tile[work] = Value{0.0F, 0.0F}; + } + } + __syncthreads(); + + Value thread_data[FFT::storage_size]; + unsigned int n1 = threadIdx.x; +#pragma unroll + for (unsigned int item = 0; item < FFT::storage_size; ++item) { + if (active && n1 < FFT::input_length) { + thread_data[item] = tile[n1 * FFT::ffts_per_block + threadIdx.y]; + } else { + thread_data[item] = Value{0.0F, 0.0F}; + } + n1 += FFT::stride; + } + __syncthreads(); + FFT().execute(thread_data, storage); + __syncthreads(); + + Complex32 running_root = {1.0F, 0.0F}; + Complex32 root_step = {1.0F, 0.0F}; + if (active && recurrence_twiddle) { + running_root = cross_root(twiddles, log_n, static_cast(threadIdx.x) * n2); + root_step = cross_root(twiddles, log_n, static_cast(FFT::stride) * n2); + } + std::uint32_t k1 = threadIdx.x; +#pragma unroll + for (unsigned int item = 0; item < FFT::storage_size; ++item) { + if (active && k1 < FFT::output_length) { + const Value value = thread_data[item]; + const Complex32 root = recurrence_twiddle + ? running_root + : cross_root(twiddles, log_n, static_cast(k1) * n2); + const Complex32 crossed = {value.x * root.real - value.y * root.imag, + value.x * root.imag + value.y * root.real}; + tile[k1 * FFT::ffts_per_block + threadIdx.y] = Value{crossed.real, crossed.imag}; + } + if (recurrence_twiddle) { + running_root = {running_root.real * root_step.real - running_root.imag * root_step.imag, + running_root.real * root_step.imag + running_root.imag * root_step.real}; + } + k1 += FFT::stride; + } + __syncthreads(); + for (std::uint32_t work = flat_thread; work < tile_values; work += flat_threads) { + const std::uint32_t element = work / FFT::ffts_per_block; + const std::uint32_t slot = work - element * FFT::ffts_per_block; + const std::uint64_t staged_transform = static_cast(blockIdx.x) * FFT::ffts_per_block + slot; + if (staged_transform < total_local) { + const std::uint64_t staged_batch = staged_transform >> remaining_log_n; + const std::uint32_t staged_n2 = static_cast(staged_transform) & (remaining_n - 1); + const std::uint64_t reordered = static_cast(element) * remaining_n + staged_n2; + const Value value = tile[work]; + scratch[staged_batch * batch_distance + reordered * element_stride] = {value.x, value.y}; + } + } +} + +template +__launch_bounds__(FFT::max_threads_per_block) __global__ void cufftdx_online_second_kernel( + const Complex32* scratch, Complex32* output, std::uint64_t transforms, std::uint32_t log_n, + std::uint32_t local_log_n, std::uint64_t batch_distance, std::uint64_t element_stride, + bool normalize) { + using Value = typename FFT::value_type; + const std::uint32_t local_n = 1U << local_log_n; + const std::uint32_t remaining_log_n = log_n - local_log_n; + const std::uint32_t remaining_n = 1U << remaining_log_n; + const std::uint64_t local_transform = static_cast(blockIdx.x) * FFT::ffts_per_block + threadIdx.y; + const std::uint64_t total_local = transforms * local_n; + const bool active = local_transform < total_local; + const std::uint64_t transform = local_transform >> local_log_n; + const std::uint32_t k1 = static_cast(local_transform) & (local_n - 1); + const std::uint64_t base = transform * batch_distance; + + Value thread_data[FFT::storage_size]; + unsigned int n2 = threadIdx.x; +#pragma unroll + for (unsigned int item = 0; item < FFT::storage_size; ++item) { + if (active && n2 < FFT::input_length) { + const std::uint64_t reordered = static_cast(k1) * remaining_n + n2; + const Complex32 value = scratch[base + reordered * element_stride]; + thread_data[item] = Value{value.real, value.imag}; + } else { + thread_data[item] = Value{0.0F, 0.0F}; + } + n2 += FFT::stride; + } + + extern __shared__ __align__(16) unsigned char storage[]; + FFT().execute(thread_data, storage); + __syncthreads(); + const float scale = normalize ? 1.0F / static_cast(1U << log_n) : 1.0F; + Value* tile = reinterpret_cast(storage); + + std::uint32_t k2 = threadIdx.x; +#pragma unroll + for (unsigned int item = 0; item < FFT::storage_size; ++item) { + if (active && k2 < FFT::output_length) { + const Value value = thread_data[item]; + tile[k2 * FFT::ffts_per_block + threadIdx.y] = Value{value.x * scale, value.y * scale}; + } + k2 += FFT::stride; + } + __syncthreads(); + + const std::uint32_t flat_thread = threadIdx.y * blockDim.x + threadIdx.x; + const std::uint32_t flat_threads = blockDim.x * blockDim.y; + constexpr std::uint32_t tile_values = FFT::output_length * FFT::ffts_per_block; + for (std::uint32_t work = flat_thread; work < tile_values; work += flat_threads) { + const std::uint32_t element = work / FFT::ffts_per_block; + const std::uint32_t slot = work - element * FFT::ffts_per_block; + const std::uint64_t staged_transform = static_cast(blockIdx.x) * FFT::ffts_per_block + slot; + if (staged_transform < total_local) { + const std::uint64_t staged_batch = staged_transform >> local_log_n; + const std::uint32_t staged_k1 = static_cast(staged_transform) & (local_n - 1); + const std::uint64_t logical = static_cast(element) * local_n + staged_k1; + const Value value = tile[work]; + output[staged_batch * batch_distance + logical * element_stride] = {value.x, value.y}; + } + } +} + +template +__launch_bounds__(FFT::max_threads_per_block) __global__ void cufftdx_resident_4096_kernel( + const Complex32* input, Complex32* output, const Complex32* twiddles, std::uint64_t transforms, + std::uint64_t batch_distance, std::uint64_t element_stride, bool normalize, bool recurrence_twiddle) { + using Value = typename FFT::value_type; + constexpr std::uint32_t dimension = 64; + constexpr std::uint32_t tile_values = dimension * dimension; + constexpr std::uint32_t tile_pitch = dimension + 1; + static_assert(FFT::input_length == dimension); + static_assert(FFT::output_length == dimension); + static_assert(FFT::ffts_per_block == dimension); + + const std::uint64_t transform = blockIdx.x; + if (transform >= transforms) + return; + const std::uint64_t base = transform * batch_distance; + const std::uint32_t flat_thread = threadIdx.y * blockDim.x + threadIdx.x; + const std::uint32_t flat_threads = blockDim.x * blockDim.y; + extern __shared__ __align__(16) unsigned char storage[]; + Value* tile = reinterpret_cast(storage); + + for (std::uint32_t work = flat_thread; work < tile_values; work += flat_threads) { + const Complex32 value = input[base + static_cast(work) * element_stride]; + const std::uint32_t row = work / dimension; + const std::uint32_t column = work - row * dimension; + tile[row * tile_pitch + column] = Value{value.real, value.imag}; + } + __syncthreads(); + + Value first_dimension[FFT::storage_size]; + std::uint32_t n1 = threadIdx.x; +#pragma unroll + for (unsigned int item = 0; item < FFT::storage_size; ++item) { + first_dimension[item] = tile[n1 * tile_pitch + threadIdx.y]; + n1 += FFT::stride; + } + __syncthreads(); + FFT().execute(first_dimension, storage); + __syncthreads(); + + Complex32 running_root = {1.0F, 0.0F}; + Complex32 root_step = {1.0F, 0.0F}; + const std::uint32_t n2 = threadIdx.y; + if (recurrence_twiddle) { + running_root = cross_root(twiddles, 12, static_cast(threadIdx.x) * n2); + root_step = cross_root(twiddles, 12, static_cast(FFT::stride) * n2); + } + std::uint32_t k1 = threadIdx.x; +#pragma unroll + for (unsigned int item = 0; item < FFT::storage_size; ++item) { + const Value value = first_dimension[item]; + const Complex32 root = recurrence_twiddle + ? running_root + : cross_root(twiddles, 12, static_cast(k1) * n2); + tile[k1 * tile_pitch + n2] = Value{value.x * root.real - value.y * root.imag, + value.x * root.imag + value.y * root.real}; + if (recurrence_twiddle) { + running_root = {running_root.real * root_step.real - running_root.imag * root_step.imag, + running_root.real * root_step.imag + running_root.imag * root_step.real}; + } + k1 += FFT::stride; + } + __syncthreads(); + + Value second_dimension[FFT::storage_size]; + std::uint32_t second_n2 = threadIdx.x; +#pragma unroll + for (unsigned int item = 0; item < FFT::storage_size; ++item) { + second_dimension[item] = tile[threadIdx.y * tile_pitch + second_n2]; + second_n2 += FFT::stride; + } + __syncthreads(); + FFT().execute(second_dimension, storage); + __syncthreads(); + + const float scale = normalize ? 1.0F / static_cast(tile_values) : 1.0F; + std::uint32_t k2 = threadIdx.x; +#pragma unroll + for (unsigned int item = 0; item < FFT::storage_size; ++item) { + const Value value = second_dimension[item]; + tile[k2 * tile_pitch + threadIdx.y] = Value{value.x * scale, value.y * scale}; + k2 += FFT::stride; + } + __syncthreads(); + + for (std::uint32_t work = flat_thread; work < tile_values; work += flat_threads) { + const std::uint32_t row = work / dimension; + const std::uint32_t column = work - row * dimension; + const Value value = tile[row * tile_pitch + column]; + output[base + static_cast(work) * element_stride] = {value.x, value.y}; + } +} + +template +__launch_bounds__(FFT::max_threads_per_block) __global__ void cufftdx_persistent_16384_kernel( + const Complex32* input, Complex32* output, Complex32* scratch, const Complex32* twiddles, + std::uint64_t transforms, std::uint64_t batch_distance, std::uint64_t element_stride, + bool normalize, bool recurrence_twiddle) { + using Value = typename FFT::value_type; + constexpr std::uint32_t dimension = 128; + constexpr std::uint32_t wave_size = 32; + constexpr std::uint32_t waves = dimension / wave_size; + constexpr std::uint32_t tile_pitch = wave_size + 1; + constexpr std::uint32_t tile_values = dimension * wave_size; + static_assert(FFT::input_length == dimension); + static_assert(FFT::output_length == dimension); + static_assert(FFT::ffts_per_block == wave_size); + + const std::uint64_t transform = blockIdx.x; + if (transform >= transforms) + return; + const std::uint64_t base = transform * batch_distance; + const std::uint32_t flat_thread = threadIdx.y * blockDim.x + threadIdx.x; + const std::uint32_t flat_threads = blockDim.x * blockDim.y; + extern __shared__ __align__(16) unsigned char storage[]; + Value* tile = reinterpret_cast(storage); + + for (std::uint32_t wave = 0; wave < waves; ++wave) { + for (std::uint32_t work = flat_thread; work < tile_values; work += flat_threads) { + const std::uint32_t n1 = work / wave_size; + const std::uint32_t slot = work - n1 * wave_size; + const std::uint32_t n2 = wave * wave_size + slot; + const std::uint64_t logical = static_cast(n1) * dimension + n2; + const Complex32 value = input[base + logical * element_stride]; + tile[n1 * tile_pitch + slot] = Value{value.real, value.imag}; + } + __syncthreads(); + + Value values[FFT::storage_size]; + std::uint32_t n1 = threadIdx.x; +#pragma unroll + for (unsigned int item = 0; item < FFT::storage_size; ++item) { + values[item] = tile[n1 * tile_pitch + threadIdx.y]; + n1 += FFT::stride; + } + __syncthreads(); + FFT().execute(values, storage); + __syncthreads(); + + const std::uint32_t n2 = wave * wave_size + threadIdx.y; + Complex32 running_root = {1.0F, 0.0F}; + Complex32 root_step = {1.0F, 0.0F}; + if (recurrence_twiddle) { + running_root = cross_root(twiddles, 14, static_cast(threadIdx.x) * n2); + root_step = cross_root(twiddles, 14, static_cast(FFT::stride) * n2); + } + std::uint32_t k1 = threadIdx.x; +#pragma unroll + for (unsigned int item = 0; item < FFT::storage_size; ++item) { + const Value value = values[item]; + const Complex32 root = recurrence_twiddle + ? running_root + : cross_root(twiddles, 14, static_cast(k1) * n2); + tile[k1 * tile_pitch + threadIdx.y] = Value{value.x * root.real - value.y * root.imag, + value.x * root.imag + value.y * root.real}; + if (recurrence_twiddle) { + running_root = {running_root.real * root_step.real - running_root.imag * root_step.imag, + running_root.real * root_step.imag + running_root.imag * root_step.real}; + } + k1 += FFT::stride; + } + __syncthreads(); + + for (std::uint32_t work = flat_thread; work < tile_values; work += flat_threads) { + const std::uint32_t crossed_k1 = work / wave_size; + const std::uint32_t slot = work - crossed_k1 * wave_size; + const std::uint32_t crossed_n2 = wave * wave_size + slot; + const Value value = tile[crossed_k1 * tile_pitch + slot]; + const std::uint64_t logical = static_cast(crossed_k1) * dimension + crossed_n2; + scratch[base + logical * element_stride] = {value.x, value.y}; + } + __syncthreads(); + } + + for (std::uint32_t wave = 0; wave < waves; ++wave) { + for (std::uint32_t work = flat_thread; work < tile_values; work += flat_threads) { + const std::uint32_t n2 = work / wave_size; + const std::uint32_t slot = work - n2 * wave_size; + const std::uint32_t k1 = wave * wave_size + slot; + const std::uint64_t logical = static_cast(k1) * dimension + n2; + const Complex32 value = scratch[base + logical * element_stride]; + tile[n2 * tile_pitch + slot] = Value{value.real, value.imag}; + } + __syncthreads(); + + Value values[FFT::storage_size]; + std::uint32_t n2 = threadIdx.x; +#pragma unroll + for (unsigned int item = 0; item < FFT::storage_size; ++item) { + values[item] = tile[n2 * tile_pitch + threadIdx.y]; + n2 += FFT::stride; + } + __syncthreads(); + FFT().execute(values, storage); + __syncthreads(); + + const float scale = normalize ? 1.0F / static_cast(dimension * dimension) : 1.0F; + std::uint32_t k2 = threadIdx.x; +#pragma unroll + for (unsigned int item = 0; item < FFT::storage_size; ++item) { + const Value value = values[item]; + tile[k2 * tile_pitch + threadIdx.y] = Value{value.x * scale, value.y * scale}; + k2 += FFT::stride; + } + __syncthreads(); + + for (std::uint32_t work = flat_thread; work < tile_values; work += flat_threads) { + const std::uint32_t output_k2 = work / wave_size; + const std::uint32_t slot = work - output_k2 * wave_size; + const std::uint32_t output_k1 = wave * wave_size + slot; + const Value value = tile[output_k2 * tile_pitch + slot]; + const std::uint64_t logical = static_cast(output_k2) * dimension + output_k1; + output[base + logical * element_stride] = {value.x, value.y}; + } + __syncthreads(); + } +} + +template +void launch(const Complex32* input, Complex32* output, std::uint64_t transforms, std::uint64_t batch_distance, + std::uint64_t element_stride, bool normalize) { + using FFT = BlockFft; + if (FFT::shared_memory_size > 48U * 1024U) { + cudaFuncSetAttribute(cufftdx_block_kernel, cudaFuncAttributeMaxDynamicSharedMemorySize, FFT::shared_memory_size); + } + const auto blocks = static_cast((transforms + FFT::ffts_per_block - 1) / FFT::ffts_per_block); + cufftdx_block_kernel<<>>( + input, output, transforms, batch_distance, element_stride, normalize); +} + +template +void dispatch(std::uint32_t log_n, const Complex32* input, Complex32* output, std::uint64_t transforms, + std::uint64_t batch_distance, std::uint64_t element_stride, bool normalize) { + switch (log_n) { + case 3: launch<8, Direction>(input, output, transforms, batch_distance, element_stride, normalize); return; + case 4: launch<16, Direction>(input, output, transforms, batch_distance, element_stride, normalize); return; + case 5: launch<32, Direction>(input, output, transforms, batch_distance, element_stride, normalize); return; + case 6: launch<64, Direction>(input, output, transforms, batch_distance, element_stride, normalize); return; + case 7: launch<128, Direction>(input, output, transforms, batch_distance, element_stride, normalize); return; + case 8: launch<256, Direction>(input, output, transforms, batch_distance, element_stride, normalize); return; + case 9: launch<512, Direction>(input, output, transforms, batch_distance, element_stride, normalize); return; + case 10: launch<1024, Direction>(input, output, transforms, batch_distance, element_stride, normalize); return; + default: throw std::invalid_argument("cufftdx-block supports logN=3..10"); + } +} + +template +void launch_online_first(std::uint32_t log_n, std::uint32_t local_log_n, const Complex32* input, + Complex32* scratch, const Complex32* twiddles, std::uint64_t transforms, + std::uint64_t batch_distance, std::uint64_t element_stride, bool recurrence_twiddle) { + if constexpr (Ept <= Size && Threads * Ept >= Size && (Threads * Ept) % Size == 0) { + using FFT = OnlineBlockFft; + const std::uint64_t local_transforms = transforms << (log_n - local_log_n); + const auto blocks = static_cast((local_transforms + FFT::ffts_per_block - 1) / FFT::ffts_per_block); + constexpr std::size_t tile_bytes = Size * FFT::ffts_per_block * sizeof(typename FFT::value_type); + constexpr std::size_t shared_bytes = FFT::shared_memory_size > tile_bytes ? FFT::shared_memory_size : tile_bytes; + if constexpr (shared_bytes > 48U * 1024U) + cudaFuncSetAttribute(cufftdx_online_first_kernel, cudaFuncAttributeMaxDynamicSharedMemorySize, shared_bytes); + cufftdx_online_first_kernel<<>>( + input, scratch, twiddles, transforms, log_n, local_log_n, batch_distance, element_stride, recurrence_twiddle); + } else { + throw std::invalid_argument("cuFFTDx prefix thread/EPT point cannot cover an integer number of FFTs"); + } +} + +template +void launch_online_second(std::uint32_t log_n, std::uint32_t local_log_n, const Complex32* scratch, + Complex32* output, std::uint64_t transforms, std::uint64_t batch_distance, + std::uint64_t element_stride, bool normalize) { + if constexpr (Ept <= Size && Threads * Ept >= Size && (Threads * Ept) % Size == 0) { + using FFT = OnlineBlockFft; + const std::uint64_t local_transforms = transforms << local_log_n; + const auto blocks = static_cast((local_transforms + FFT::ffts_per_block - 1) / FFT::ffts_per_block); + constexpr std::size_t tile_bytes = Size * FFT::ffts_per_block * sizeof(typename FFT::value_type); + constexpr std::size_t shared_bytes = FFT::shared_memory_size > tile_bytes ? FFT::shared_memory_size : tile_bytes; + if constexpr (shared_bytes > 48U * 1024U) + cudaFuncSetAttribute(cufftdx_online_second_kernel, cudaFuncAttributeMaxDynamicSharedMemorySize, shared_bytes); + cufftdx_online_second_kernel<<>>( + scratch, output, transforms, log_n, local_log_n, batch_distance, element_stride, normalize); + } else { + throw std::invalid_argument("cuFFTDx suffix thread/EPT point cannot cover an integer number of FFTs"); + } +} + +template +void dispatch_online_first_threads(std::uint32_t threads, std::uint32_t ept, std::uint32_t log_n, std::uint32_t local_log_n, + const Complex32* input, Complex32* scratch, const Complex32* twiddles, + std::uint64_t transforms, std::uint64_t batch_distance, + std::uint64_t element_stride, bool recurrence_twiddle) { + switch ((ept << 16) | threads) { +#define CUNTT_CUFFTDX_ONLINE_LAUNCH(Threads, Ept) \ + launch_online_first(log_n, local_log_n, input, scratch, twiddles, transforms, batch_distance, element_stride, recurrence_twiddle) +#include "generated_cufftdx_online_dispatch.inc" +#undef CUNTT_CUFFTDX_ONLINE_LAUNCH + default: throw std::invalid_argument("requested cuFFTDx prefix thread/EPT point was not generated"); + } +} + +template +void dispatch_online_second_threads(std::uint32_t threads, std::uint32_t ept, std::uint32_t log_n, std::uint32_t local_log_n, + const Complex32* scratch, Complex32* output, std::uint64_t transforms, + std::uint64_t batch_distance, std::uint64_t element_stride, bool normalize) { + switch ((ept << 16) | threads) { +#define CUNTT_CUFFTDX_ONLINE_LAUNCH(Threads, Ept) \ + launch_online_second(log_n, local_log_n, scratch, output, transforms, batch_distance, element_stride, normalize) +#include "generated_cufftdx_online_dispatch.inc" +#undef CUNTT_CUFFTDX_ONLINE_LAUNCH + default: throw std::invalid_argument("requested cuFFTDx suffix thread/EPT point was not generated"); + } +} + +template +void dispatch_online_first(std::uint32_t log_n, std::uint32_t local_log_n, const Complex32* input, + Complex32* scratch, const Complex32* twiddles, std::uint64_t transforms, + std::uint64_t batch_distance, std::uint64_t element_stride, bool recurrence_twiddle, + std::uint32_t threads, std::uint32_t ept) { + switch (local_log_n) { + case 3: dispatch_online_first_threads<8, Direction>(threads, ept, log_n, local_log_n, input, scratch, twiddles, transforms, batch_distance, element_stride, recurrence_twiddle); return; + case 4: dispatch_online_first_threads<16, Direction>(threads, ept, log_n, local_log_n, input, scratch, twiddles, transforms, batch_distance, element_stride, recurrence_twiddle); return; + case 5: dispatch_online_first_threads<32, Direction>(threads, ept, log_n, local_log_n, input, scratch, twiddles, transforms, batch_distance, element_stride, recurrence_twiddle); return; + case 6: dispatch_online_first_threads<64, Direction>(threads, ept, log_n, local_log_n, input, scratch, twiddles, transforms, batch_distance, element_stride, recurrence_twiddle); return; + case 7: dispatch_online_first_threads<128, Direction>(threads, ept, log_n, local_log_n, input, scratch, twiddles, transforms, batch_distance, element_stride, recurrence_twiddle); return; + case 8: dispatch_online_first_threads<256, Direction>(threads, ept, log_n, local_log_n, input, scratch, twiddles, transforms, batch_distance, element_stride, recurrence_twiddle); return; + case 9: dispatch_online_first_threads<512, Direction>(threads, ept, log_n, local_log_n, input, scratch, twiddles, transforms, batch_distance, element_stride, recurrence_twiddle); return; + case 10: dispatch_online_first_threads<1024, Direction>(threads, ept, log_n, local_log_n, input, scratch, twiddles, transforms, batch_distance, element_stride, recurrence_twiddle); return; + default: throw std::invalid_argument("cufftdx online first pass supports logN=3..10"); + } +} + +template +void dispatch_online_second(std::uint32_t log_n, std::uint32_t local_log_n, const Complex32* scratch, + Complex32* output, std::uint64_t transforms, std::uint64_t batch_distance, + std::uint64_t element_stride, bool normalize, std::uint32_t threads, std::uint32_t ept) { + switch (log_n - local_log_n) { + case 3: dispatch_online_second_threads<8, Direction>(threads, ept, log_n, local_log_n, scratch, output, transforms, batch_distance, element_stride, normalize); return; + case 4: dispatch_online_second_threads<16, Direction>(threads, ept, log_n, local_log_n, scratch, output, transforms, batch_distance, element_stride, normalize); return; + case 5: dispatch_online_second_threads<32, Direction>(threads, ept, log_n, local_log_n, scratch, output, transforms, batch_distance, element_stride, normalize); return; + case 6: dispatch_online_second_threads<64, Direction>(threads, ept, log_n, local_log_n, scratch, output, transforms, batch_distance, element_stride, normalize); return; + case 7: dispatch_online_second_threads<128, Direction>(threads, ept, log_n, local_log_n, scratch, output, transforms, batch_distance, element_stride, normalize); return; + case 8: dispatch_online_second_threads<256, Direction>(threads, ept, log_n, local_log_n, scratch, output, transforms, batch_distance, element_stride, normalize); return; + case 9: dispatch_online_second_threads<512, Direction>(threads, ept, log_n, local_log_n, scratch, output, transforms, batch_distance, element_stride, normalize); return; + case 10: dispatch_online_second_threads<1024, Direction>(threads, ept, log_n, local_log_n, scratch, output, transforms, batch_distance, element_stride, normalize); return; + default: throw std::invalid_argument("cufftdx online second pass supports logN=3..10"); + } +} + +template +void launch_resident_4096(const Complex32* input, Complex32* output, const Complex32* twiddles, + std::uint64_t transforms, std::uint64_t batch_distance, std::uint64_t element_stride, + bool normalize, bool recurrence_twiddle) { + using FFT = Resident4096Fft; + constexpr std::size_t tile_bytes = 64 * 65 * sizeof(Complex32); + constexpr std::size_t shared_bytes = FFT::shared_memory_size > tile_bytes ? FFT::shared_memory_size : tile_bytes; + cufftdx_resident_4096_kernel<<(transforms), FFT::block_dim, shared_bytes>>>( + input, output, twiddles, transforms, batch_distance, element_stride, normalize, recurrence_twiddle); +} + +template +void launch_direct(const Complex32* input, Complex32* output, std::uint64_t transforms, + std::uint64_t batch_distance, std::uint64_t element_stride, bool normalize) { + using FFT = DirectFft; + if (FFT::shared_memory_size > 48U * 1024U) { + cudaFuncSetAttribute(cufftdx_block_kernel, cudaFuncAttributeMaxDynamicSharedMemorySize, + FFT::shared_memory_size); + cudaFuncSetAttribute(cufftdx_contiguous_block_kernel, cudaFuncAttributeMaxDynamicSharedMemorySize, + FFT::shared_memory_size); + cudaFuncSetAttribute(cufftdx_contiguous_block_kernel, cudaFuncAttributeMaxDynamicSharedMemorySize, + FFT::shared_memory_size); + } + if (batch_distance == Size && element_stride == 1) { + if (normalize) { + cufftdx_contiguous_block_kernel + <<(transforms), FFT::block_dim, FFT::shared_memory_size>>>(input, output); + } else { + cufftdx_contiguous_block_kernel + <<(transforms), FFT::block_dim, FFT::shared_memory_size>>>(input, output); + } + return; + } + cufftdx_block_kernel<<(transforms), FFT::block_dim, FFT::shared_memory_size>>>( + input, output, transforms, batch_distance, element_stride, normalize); +} + +template +void dispatch_direct_threads(std::uint32_t tile_threads, const Complex32* input, Complex32* output, + std::uint64_t transforms, std::uint64_t batch_distance, + std::uint64_t element_stride, bool normalize) { + switch (tile_threads) { + case 256: + launch_direct(input, output, transforms, batch_distance, + element_stride, normalize); + return; + case 512: + launch_direct(input, output, transforms, batch_distance, + element_stride, normalize); + return; + case 1024: + launch_direct(input, output, transforms, batch_distance, + element_stride, normalize); + return; + default: + throw std::invalid_argument("cufftdx-direct tile_threads must be 256, 512, or 1024"); + } +} + +template +void dispatch_direct_16384(std::uint32_t tile_threads, const Complex32* input, Complex32* output, + std::uint64_t transforms, std::uint64_t batch_distance, + std::uint64_t element_stride, bool normalize) { + switch (tile_threads) { + case 512: + launch_direct<16384, 32, Direction>(input, output, transforms, batch_distance, element_stride, normalize); + return; + case 1024: + launch_direct<16384, 16, Direction>(input, output, transforms, batch_distance, element_stride, normalize); + return; + default: + throw std::invalid_argument("cufftdx-direct logN=14 requires 512 or 1024 threads"); + } +} + +template +void dispatch_direct(std::uint32_t log_n, std::uint32_t tile_threads, const Complex32* input, + Complex32* output, std::uint64_t transforms, std::uint64_t batch_distance, + std::uint64_t element_stride, bool normalize) { + switch (log_n) { + case 11: + dispatch_direct_threads<2048, Direction>(tile_threads, input, output, transforms, batch_distance, + element_stride, normalize); + return; + case 12: + dispatch_direct_threads<4096, Direction>(tile_threads, input, output, transforms, batch_distance, + element_stride, normalize); + return; + case 13: + dispatch_direct_threads<8192, Direction>(tile_threads, input, output, transforms, batch_distance, + element_stride, normalize); + return; + case 14: + dispatch_direct_16384(tile_threads, input, output, transforms, batch_distance, + element_stride, normalize); + return; + default: + throw std::invalid_argument("cufftdx-direct supports logN=11..14"); + } +} + +template +void launch_persistent_16384(const Complex32* input, Complex32* output, Complex32* scratch, + const Complex32* twiddles, std::uint64_t transforms, std::uint64_t batch_distance, + std::uint64_t element_stride, bool normalize, bool recurrence_twiddle) { + using FFT = Persistent16384Fft; + constexpr std::size_t tile_bytes = 128 * 33 * sizeof(Complex32); + constexpr std::size_t shared_bytes = FFT::shared_memory_size > tile_bytes ? FFT::shared_memory_size : tile_bytes; + cufftdx_persistent_16384_kernel<<(transforms), FFT::block_dim, shared_bytes>>>( + input, output, scratch, twiddles, transforms, batch_distance, element_stride, normalize, recurrence_twiddle); +} + +} // namespace + +bool cufftdx_block_available(std::uint32_t log_n) noexcept { return log_n >= 3 && log_n <= 10; } + +bool cufftdx_online_available(std::uint32_t log_n, std::uint32_t threads, std::uint32_t ept) noexcept { + return generated_cufftdx_online_available(log_n, threads, ept); +} + +bool cufftdx_direct_available(std::uint32_t log_n) noexcept { return log_n >= 11 && log_n <= 14; } + +bool cufftdx_resident_available(std::uint32_t log_n, std::uint32_t local_log_n) noexcept { + return (log_n == 12 && local_log_n == 6) || (log_n == 14 && local_log_n == 7); +} + +void launch_cufftdx_block(std::uint32_t log_n, const Complex32* input, Complex32* output, std::uint64_t transforms, + std::uint64_t batch_distance, std::uint64_t element_stride, bool inverse, bool normalize) { + if (inverse) { + dispatch(log_n, input, output, transforms, batch_distance, element_stride, normalize); + } else { + dispatch(log_n, input, output, transforms, batch_distance, element_stride, false); + } +} + +void launch_cufftdx_direct(std::uint32_t log_n, const Complex32* input, Complex32* output, + std::uint64_t transforms, std::uint64_t batch_distance, std::uint64_t element_stride, + bool inverse, bool normalize, std::uint32_t tile_threads) { + if (!cufftdx_direct_available(log_n)) + throw std::invalid_argument("cufftdx-direct requires logN=11..14"); + if (inverse) { + dispatch_direct(log_n, tile_threads, input, output, transforms, + batch_distance, element_stride, normalize); + } else { + dispatch_direct(log_n, tile_threads, input, output, transforms, + batch_distance, element_stride, false); + } +} + +void launch_cufftdx_online_reorder(std::uint32_t log_n, std::uint32_t local_log_n, const Complex32* input, + Complex32* output, Complex32* scratch, const Complex32* twiddles, + std::uint64_t transforms, std::uint64_t batch_distance, + std::uint64_t element_stride, bool inverse, bool normalize, + CrossTwiddleMode cross_twiddle, std::uint32_t prefix_threads, + std::uint32_t suffix_threads, std::uint32_t prefix_ept, + std::uint32_t suffix_ept) { + const bool recurrence_twiddle = cross_twiddle == CrossTwiddleMode::Recurrence; + if (inverse) { + dispatch_online_first(log_n, local_log_n, input, scratch, twiddles, + transforms, batch_distance, element_stride, recurrence_twiddle, + prefix_threads, prefix_ept); + dispatch_online_second(log_n, local_log_n, scratch, output, transforms, + batch_distance, element_stride, normalize, suffix_threads, suffix_ept); + } else { + dispatch_online_first(log_n, local_log_n, input, scratch, twiddles, + transforms, batch_distance, element_stride, recurrence_twiddle, + prefix_threads, prefix_ept); + dispatch_online_second(log_n, local_log_n, scratch, output, transforms, + batch_distance, element_stride, false, suffix_threads, suffix_ept); + } +} + +void launch_cufftdx_resident(std::uint32_t log_n, std::uint32_t local_log_n, const Complex32* input, + Complex32* output, Complex32* scratch, const Complex32* twiddles, std::uint64_t transforms, + std::uint64_t batch_distance, std::uint64_t element_stride, bool inverse, + bool normalize, CrossTwiddleMode cross_twiddle, std::uint32_t tile_threads) { + if (!cufftdx_resident_available(log_n, local_log_n)) + throw std::invalid_argument("cufftdx-resident requires logN=12/6+6 or logN=14/7+7"); + const bool recurrence_twiddle = cross_twiddle == CrossTwiddleMode::Recurrence; + if (log_n == 14) { + if (inverse) { + if (tile_threads == 256) + launch_persistent_16384<16, cufftdx::fft_direction::inverse>(input, output, scratch, twiddles, transforms, + batch_distance, element_stride, normalize, + recurrence_twiddle); + else if (tile_threads == 512) + launch_persistent_16384<8, cufftdx::fft_direction::inverse>(input, output, scratch, twiddles, transforms, + batch_distance, element_stride, normalize, + recurrence_twiddle); + else if (tile_threads == 1024) + launch_persistent_16384<4, cufftdx::fft_direction::inverse>(input, output, scratch, twiddles, transforms, + batch_distance, element_stride, normalize, + recurrence_twiddle); + else + throw std::invalid_argument("cufftdx-resident tile_threads must be 256, 512, or 1024"); + } else { + if (tile_threads == 256) + launch_persistent_16384<16, cufftdx::fft_direction::forward>(input, output, scratch, twiddles, transforms, + batch_distance, element_stride, false, + recurrence_twiddle); + else if (tile_threads == 512) + launch_persistent_16384<8, cufftdx::fft_direction::forward>(input, output, scratch, twiddles, transforms, + batch_distance, element_stride, false, + recurrence_twiddle); + else if (tile_threads == 1024) + launch_persistent_16384<4, cufftdx::fft_direction::forward>(input, output, scratch, twiddles, transforms, + batch_distance, element_stride, false, + recurrence_twiddle); + else + throw std::invalid_argument("cufftdx-resident tile_threads must be 256, 512, or 1024"); + } + return; + } + if (inverse) { + if (tile_threads == 256) + launch_resident_4096<16, cufftdx::fft_direction::inverse>(input, output, twiddles, transforms, batch_distance, + element_stride, normalize, recurrence_twiddle); + else if (tile_threads == 512) + launch_resident_4096<8, cufftdx::fft_direction::inverse>(input, output, twiddles, transforms, batch_distance, + element_stride, normalize, recurrence_twiddle); + else if (tile_threads == 1024) + launch_resident_4096<4, cufftdx::fft_direction::inverse>(input, output, twiddles, transforms, batch_distance, + element_stride, normalize, recurrence_twiddle); + else + throw std::invalid_argument("cufftdx-resident tile_threads must be 256, 512, or 1024"); + } else { + if (tile_threads == 256) + launch_resident_4096<16, cufftdx::fft_direction::forward>(input, output, twiddles, transforms, batch_distance, + element_stride, false, recurrence_twiddle); + else if (tile_threads == 512) + launch_resident_4096<8, cufftdx::fft_direction::forward>(input, output, twiddles, transforms, batch_distance, + element_stride, false, recurrence_twiddle); + else if (tile_threads == 1024) + launch_resident_4096<4, cufftdx::fft_direction::forward>(input, output, twiddles, transforms, batch_distance, + element_stride, false, recurrence_twiddle); + else + throw std::invalid_argument("cufftdx-resident tile_threads must be 256, 512, or 1024"); + } +} + +} // namespace cuntt::detail diff --git a/src/cufftdx_fft_stub.cpp b/src/cufftdx_fft_stub.cpp new file mode 100644 index 0000000..c8dd11d --- /dev/null +++ b/src/cufftdx_fft_stub.cpp @@ -0,0 +1,35 @@ +#include + +#include "external_fft_units.cuh" + +namespace cuntt::detail { + +bool cufftdx_block_available(std::uint32_t) noexcept { return false; } +bool cufftdx_online_available(std::uint32_t, std::uint32_t, std::uint32_t) noexcept { return false; } + +void launch_cufftdx_block(std::uint32_t, const Complex32*, Complex32*, std::uint64_t, std::uint64_t, std::uint64_t, bool, bool) { + throw std::runtime_error("cufftdx-block was not enabled at build time"); +} + +bool cufftdx_direct_available(std::uint32_t) noexcept { return false; } + +void launch_cufftdx_direct(std::uint32_t, const Complex32*, Complex32*, std::uint64_t, std::uint64_t, + std::uint64_t, bool, bool, std::uint32_t) { + throw std::runtime_error("cufftdx-direct was not enabled at build time"); +} + +void launch_cufftdx_online_reorder(std::uint32_t, std::uint32_t, const Complex32*, Complex32*, Complex32*, + const Complex32*, std::uint64_t, std::uint64_t, std::uint64_t, bool, bool, + CrossTwiddleMode, std::uint32_t, std::uint32_t, std::uint32_t, std::uint32_t) { + throw std::runtime_error("cufftdx-block was not enabled at build time"); +} + +bool cufftdx_resident_available(std::uint32_t, std::uint32_t) noexcept { return false; } + +void launch_cufftdx_resident(std::uint32_t, std::uint32_t, const Complex32*, Complex32*, Complex32*, const Complex32*, + std::uint64_t, std::uint64_t, std::uint64_t, bool, bool, CrossTwiddleMode, + std::uint32_t) { + throw std::runtime_error("cufftdx-resident was not enabled at build time"); +} + +} // namespace cuntt::detail diff --git a/src/external_fft_units.cuh b/src/external_fft_units.cuh new file mode 100644 index 0000000..e4977e2 --- /dev/null +++ b/src/external_fft_units.cuh @@ -0,0 +1,35 @@ +#pragma once + +#include +#include + +#include "cuntt/butterfly.hpp" + +namespace cuntt::detail { + +bool cufftdx_block_available(std::uint32_t log_n) noexcept; +bool cufftdx_online_available(std::uint32_t log_n, std::uint32_t threads, std::uint32_t ept) noexcept; +void launch_cufftdx_block(std::uint32_t log_n, const Complex32* input, Complex32* output, std::uint64_t transforms, + std::uint64_t batch_distance, std::uint64_t element_stride, bool inverse, bool normalize); +bool cufftdx_direct_available(std::uint32_t log_n) noexcept; +void launch_cufftdx_direct(std::uint32_t log_n, const Complex32* input, Complex32* output, + std::uint64_t transforms, std::uint64_t batch_distance, std::uint64_t element_stride, + bool inverse, bool normalize, std::uint32_t tile_threads); +void launch_cufftdx_online_reorder(std::uint32_t log_n, std::uint32_t local_log_n, const Complex32* input, + Complex32* output, Complex32* scratch, const Complex32* twiddles, + std::uint64_t transforms, std::uint64_t batch_distance, + std::uint64_t element_stride, bool inverse, bool normalize, + CrossTwiddleMode cross_twiddle, std::uint32_t prefix_threads, + std::uint32_t suffix_threads, std::uint32_t prefix_ept, + std::uint32_t suffix_ept); +bool cufftdx_resident_available(std::uint32_t log_n, std::uint32_t local_log_n) noexcept; +void launch_cufftdx_resident(std::uint32_t log_n, std::uint32_t local_log_n, const Complex32* input, + Complex32* output, Complex32* scratch, const Complex32* twiddles, std::uint64_t transforms, + std::uint64_t batch_distance, std::uint64_t element_stride, bool inverse, + bool normalize, CrossTwiddleMode cross_twiddle, std::uint32_t tile_threads); + +bool turbofft_generated_available(std::uint32_t log_n) noexcept; +void launch_turbofft_generated(std::uint32_t log_n, const Complex32* input, Complex32* output, std::uint64_t transforms, + std::uint64_t batch_distance, std::uint64_t element_stride); + +} // namespace cuntt::detail diff --git a/src/turbofft_fft.cu b/src/turbofft_fft.cu new file mode 100644 index 0000000..ab0bbe4 --- /dev/null +++ b/src/turbofft_fft.cu @@ -0,0 +1,59 @@ +#include + +#include + +#include "external_fft_units.cuh" +#include "turbofft/macro_ops.h" +#include "code_gen/generated/float2/fft_radix_2_logN_7_upload_0.cuh" +#include "code_gen/generated/float2/fft_radix_2_logN_8_upload_0.cuh" +#include "code_gen/generated/float2/fft_radix_2_logN_9_upload_0.cuh" +#include "code_gen/generated/float2/fft_radix_2_logN_10_upload_0.cuh" + +namespace cuntt::detail { +namespace { + +struct TurboPoint { + int threadblock_batch; + int worker_fft_size; +}; + +constexpr TurboPoint point(std::uint32_t log_n) { + switch (log_n) { + case 7: return {1, 8}; + case 8: return {1, 16}; + case 9: return {1, 8}; + case 10: return {1, 16}; + default: return {0, 0}; + } +} + +template +void launch(Kernel kernel, const Complex32* input, Complex32* output, std::uint64_t transforms) { + constexpr TurboPoint selected = point(LogN); + constexpr int block_threads = (1 << LogN) * selected.threadblock_batch / selected.worker_fft_size; + constexpr int shared_bytes = (1 << LogN) * selected.threadblock_batch * sizeof(float2); + const std::uint64_t blocks = (transforms + selected.threadblock_batch - 1) / selected.threadblock_batch; + kernel<<(blocks), block_threads, shared_bytes>>>( + reinterpret_cast(const_cast(input)), reinterpret_cast(output), + selected.threadblock_batch); +} + +} // namespace + +bool turbofft_generated_available(std::uint32_t log_n) noexcept { return log_n >= 7 && log_n <= 10; } + +void launch_turbofft_generated(std::uint32_t log_n, const Complex32* input, Complex32* output, std::uint64_t transforms, + std::uint64_t batch_distance, std::uint64_t element_stride) { + if (batch_distance != (1ULL << log_n) || element_stride != 1) { + throw std::invalid_argument("turbofft-generated currently requires contiguous batches"); + } + switch (log_n) { + case 7: launch<7>(fft_7, input, output, transforms); return; + case 8: launch<8>(fft_8, input, output, transforms); return; + case 9: launch<9>(fft_9, input, output, transforms); return; + case 10: launch<10>(fft_10, input, output, transforms); return; + default: throw std::invalid_argument("turbofft-generated supports logN=7..10"); + } +} + +} // namespace cuntt::detail diff --git a/src/turbofft_fft_stub.cpp b/src/turbofft_fft_stub.cpp new file mode 100644 index 0000000..c61adab --- /dev/null +++ b/src/turbofft_fft_stub.cpp @@ -0,0 +1,13 @@ +#include + +#include "external_fft_units.cuh" + +namespace cuntt::detail { + +bool turbofft_generated_available(std::uint32_t) noexcept { return false; } + +void launch_turbofft_generated(std::uint32_t, const Complex32*, Complex32*, std::uint64_t, std::uint64_t, std::uint64_t) { + throw std::runtime_error("turbofft-generated was not enabled at build time"); +} + +} // namespace cuntt::detail diff --git a/tests/test_butterfly.cpp b/tests/test_butterfly.cpp index 59acc64..b4008e1 100644 --- a/tests/test_butterfly.cpp +++ b/tests/test_butterfly.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include #include "cuntt/butterfly.hpp" @@ -60,7 +61,10 @@ void test_fft(cuntt::ButterflyBackend backend, std::uint32_t stage_space, std::u bool inverse = false, bool normalize_inverse = true, std::uint32_t local_stages = 10, std::uint32_t reorder_columns = 1, cuntt::ComplexMultiply complex_multiply = cuntt::ComplexMultiply::FourMul, cuntt::FftCore fft_core = cuntt::FftCore::Scalar, - cuntt::ButterflyPrecision precision = cuntt::ButterflyPrecision::Fp32) { + cuntt::ButterflyPrecision precision = cuntt::ButterflyPrecision::Fp32, + cuntt::CrossTwiddleMode cross_twiddle = cuntt::CrossTwiddleMode::Table, + std::uint32_t prefix_threads = 0, std::uint32_t suffix_threads = 0, + std::uint32_t prefix_ept = 8, std::uint32_t suffix_ept = 8) { const std::size_t n = std::size_t{1} << log_n; std::mt19937 random(0xff70U + stage_space); std::uniform_real_distribution distribution(-1.0F, 1.0F); @@ -84,6 +88,11 @@ void test_fft(cuntt::ButterflyBackend backend, std::uint32_t stage_space, std::u config.reorder_columns = reorder_columns; config.fft_core = fft_core; config.precision = precision; + config.cross_twiddle = cross_twiddle; + config.prefix_threads = prefix_threads; + config.suffix_threads = suffix_threads; + config.prefix_ept = prefix_ept; + config.suffix_ept = suffix_ept; cuntt::ButterflyPlan plan(config); std::vector output; plan.execute(input, output, 0, 1); @@ -94,7 +103,11 @@ void test_fft(cuntt::ButterflyBackend backend, std::uint32_t stage_space, std::u for (std::size_t index = 0; index < n; ++index) { const auto& actual = output[transform * n + index]; const float error = std::hypot(expected[index].real - actual.real, expected[index].imag - actual.imag); - const float tolerance = precision == cuntt::ButterflyPrecision::Fp16Fp32 ? 1.0e-2F : 2.0e-4F; + const float tolerance = precision == cuntt::ButterflyPrecision::Fp16Fp32 + ? 1.0e-2F + : (fft_core == cuntt::FftCore::TurboFftGenerated && log_n == 10 + ? 3.0e-4F + : 2.0e-4F * std::sqrt(std::max(1.0F, static_cast(n) / 1024.0F))); if (error > tolerance) { throw std::runtime_error("FFT mismatch backend=" + std::string(cuntt::butterfly_backend_name(backend)) + " Us=" + std::to_string(stage_space) + " error=" + std::to_string(error)); @@ -199,7 +212,8 @@ void test_fp64(std::uint32_t log_n, bool inverse) { } } -void test_layout(cuntt::ButterflyBackend backend, std::uint32_t log_n, cuntt::ButterflyPlacement placement) { +void test_layout(cuntt::ButterflyBackend backend, std::uint32_t log_n, cuntt::ButterflyPlacement placement, + cuntt::FftCore fft_core = cuntt::FftCore::Scalar, std::uint32_t local_stages = 10) { const std::size_t n = std::size_t{1} << log_n; const std::size_t element_stride = 2; const std::size_t stride = (n - 1) * element_stride + 1 + 13; @@ -221,6 +235,10 @@ void test_layout(cuntt::ButterflyBackend backend, std::uint32_t log_n, cuntt::Bu config.element_stride = element_stride; config.placement = placement; config.inverse = placement == cuntt::ButterflyPlacement::InPlace; + config.fft_core = fft_core; + config.local_stages = local_stages; + if (fft_core == cuntt::FftCore::CufftDxResident || fft_core == cuntt::FftCore::CufftDxDirect) + config.tile_threads = 512; cuntt::ButterflyPlan plan(config); std::vector output; const bool repeated_in_place = placement == cuntt::ButterflyPlacement::InPlace; @@ -284,6 +302,69 @@ int main() { } } } +#ifdef CUBUTTERFLY_TEST_CUFFTDX + for (std::uint32_t log_n = 3; log_n <= 10; ++log_n) { + for (const bool inverse : {false, true}) { + test_fft(cuntt::ButterflyBackend::TemporalTile, 0, 0, 0, 32, cuntt::ComputeUnit::Auto, log_n, inverse, true, 0, 0, + cuntt::ComplexMultiply::FourMul, cuntt::FftCore::CufftDxBlock, cuntt::ButterflyPrecision::Fp32); + } + } + for (const auto placement : {cuntt::ButterflyPlacement::OutOfPlace, cuntt::ButterflyPlacement::InPlace}) { + test_layout(cuntt::ButterflyBackend::TemporalTile, 10, placement, cuntt::FftCore::CufftDxBlock); + test_layout(cuntt::ButterflyBackend::TemporalTile, 12, placement, cuntt::FftCore::CufftDxDirect); + test_layout(cuntt::ButterflyBackend::OnlineReorder, 12, placement, cuntt::FftCore::CufftDxBlock, 6); + test_layout(cuntt::ButterflyBackend::OnlineReorder, 12, placement, cuntt::FftCore::CufftDxResident, 6); + test_layout(cuntt::ButterflyBackend::OnlineReorder, 14, placement, cuntt::FftCore::CufftDxResident, 7); + } + for (const auto& point : {std::pair{12U, 6U}, std::pair{14U, 7U}}) { + for (const auto cross_twiddle : {cuntt::CrossTwiddleMode::Table, cuntt::CrossTwiddleMode::Recurrence}) { + for (const bool inverse : {false, true}) { + test_fft(cuntt::ButterflyBackend::OnlineReorder, 0, 0, 0, 512, cuntt::ComputeUnit::Auto, + point.first, inverse, true, point.second, 1, cuntt::ComplexMultiply::FourMul, + cuntt::FftCore::CufftDxResident, cuntt::ButterflyPrecision::Fp32, cross_twiddle); + } + } + } + for (std::uint32_t log_n = 11; log_n <= 14; ++log_n) { + for (const std::uint32_t tile_threads : {256U, 512U, 1024U}) { + if (log_n == 14 && tile_threads == 256) + continue; + test_fft(cuntt::ButterflyBackend::TemporalTile, 0, 0, 0, tile_threads, cuntt::ComputeUnit::Auto, + log_n, false, true, 0, 0, cuntt::ComplexMultiply::FourMul, + cuntt::FftCore::CufftDxDirect, cuntt::ButterflyPrecision::Fp32); + } + test_fft(cuntt::ButterflyBackend::TemporalTile, 0, 0, 0, 512, cuntt::ComputeUnit::Auto, + log_n, true, true, 0, 0, cuntt::ComplexMultiply::FourMul, + cuntt::FftCore::CufftDxDirect, cuntt::ButterflyPrecision::Fp32); + } + for (const auto& point : {std::pair{12U, 6U}, std::pair{16U, 6U}, std::pair{16U, 10U}}) { + for (const auto cross_twiddle : {cuntt::CrossTwiddleMode::Table, cuntt::CrossTwiddleMode::Recurrence}) { + for (const bool inverse : {false, true}) { + test_fft(cuntt::ButterflyBackend::OnlineReorder, 0, 0, 0, 32, cuntt::ComputeUnit::Auto, + point.first, inverse, true, point.second, 1, cuntt::ComplexMultiply::FourMul, + cuntt::FftCore::CufftDxBlock, cuntt::ButterflyPrecision::Fp32, cross_twiddle); + } + } + } + for (const auto& threads : {std::pair{128U, 1024U}, std::pair{1024U, 128U}}) { + test_fft(cuntt::ButterflyBackend::OnlineReorder, 0, 0, 0, 32, cuntt::ComputeUnit::Auto, + 16, false, true, 8, 1, cuntt::ComplexMultiply::FourMul, + cuntt::FftCore::CufftDxBlock, cuntt::ButterflyPrecision::Fp32, + cuntt::CrossTwiddleMode::Recurrence, threads.first, threads.second); + } + for (const auto& ept : {std::pair{4U, 16U}, std::pair{16U, 4U}}) { + test_fft(cuntt::ButterflyBackend::OnlineReorder, 0, 0, 0, 256, cuntt::ComputeUnit::Auto, + 18, false, true, 9, 1, cuntt::ComplexMultiply::FourMul, + cuntt::FftCore::CufftDxBlock, cuntt::ButterflyPrecision::Fp32, + cuntt::CrossTwiddleMode::Recurrence, 256, 256, ept.first, ept.second); + } +#endif +#ifdef CUBUTTERFLY_TEST_TURBOFFT + for (std::uint32_t log_n = 7; log_n <= 10; ++log_n) { + test_fft(cuntt::ButterflyBackend::TemporalTile, 0, 0, 0, 32, cuntt::ComputeUnit::Auto, log_n, false, false, 0, 0, + cuntt::ComplexMultiply::FourMul, cuntt::FftCore::TurboFftGenerated, cuntt::ButterflyPrecision::Fp32); + } +#endif for (std::uint32_t log_n = 1; log_n <= 10; ++log_n) { for (const auto unit : {cuntt::ComputeUnit::Radix2, cuntt::ComputeUnit::Radix4, cuntt::ComputeUnit::Radix8}) { for (const bool inverse : {false, true}) { diff --git a/tests/test_butterfly_design_space.py b/tests/test_butterfly_design_space.py new file mode 100644 index 0000000..5407aae --- /dev/null +++ b/tests/test_butterfly_design_space.py @@ -0,0 +1,165 @@ +#!/usr/bin/env python3 +import copy +import json +import pathlib +import sys +import tempfile +import unittest + + +ROOT = pathlib.Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT / "scripts")) + +from butterfly_design_space import ( + derive_architecture_point, + derive_multidimensional_point, + expand_design_choices, + load_space, + stage_partitions, + validate_fft_projection, + validate_hierarchy_factors, +) + + +class ButterflyDesignSpaceTest(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.space = load_space(ROOT / "config" / "butterfly_architecture_space.json") + cls.fft = json.loads((ROOT / "config" / "fft_architecture_space.json").read_text()) + + def test_all_operator_projections_and_fft_projection(self): + self.assertEqual(len(self.space["operator_projections"]), 6) + self.assertTrue(validate_fft_projection(self.space, self.fft)) + + def test_ordered_factorizations_are_complete(self): + self.assertEqual(stage_partitions(5, 1), [(5,)]) + self.assertEqual(stage_partitions(5, 2), [(1, 4), (2, 3), (3, 2), (4, 1)]) + self.assertEqual(len(stage_partitions(5, 3)), 6) + + def test_fixed_compute_budget_preserves_ideal_cycles(self): + points = [ + derive_architecture_point(self.space, "ntt", 16, us, 128 // us, 8, "shared", "shared") + for us in (1, 2, 4, 8, 16) + ] + self.assertEqual({point["spatial_butterfly_cells"] for point in points}, {128}) + self.assertEqual({point["ideal_body_cycles"] for point in points}, {4096}) + self.assertEqual([point["boundary_coefficient_words_per_cycle"] for point in points], + [256, 128, 64, 32, 16]) + self.assertEqual([point["interstage_coefficient_words_per_cycle"] for point in points], + [0, 128, 192, 224, 240]) + + def test_operator_traits_change_coefficient_demand(self): + fft = derive_architecture_point(self.space, "fft", 16, 8, 16, 8, "shared", "shared") + fwht = derive_architecture_point(self.space, "fwht", 16, 8, 16, 8, "shared", "shared") + self.assertEqual(fft["coefficient_streams_upper_bound"], 128) + self.assertEqual(fwht["coefficient_streams_upper_bound"], 0) + + def test_batch_unfolding_is_independent_of_stage_and_data_unfolding(self): + serial = derive_architecture_point( + self.space, "fft", 12, 4, 16, 8, "shared", "shared", batch=10, ub=1) + parallel = derive_architecture_point( + self.space, "fft", 12, 4, 16, 8, "shared", "shared", batch=10, ub=4) + for field in ("Us", "Ts", "Ud", "Td"): + self.assertEqual(serial[field], parallel[field]) + self.assertEqual((serial["Ub"], serial["Tb"]), (1, 10)) + self.assertEqual((parallel["Ub"], parallel["Tb"]), (4, 3)) + self.assertEqual(serial["ideal_body_cycles"], 10 * parallel["ideal_body_cycles"] // 3) + self.assertEqual(parallel["boundary_coefficient_words_per_cycle"], + 4 * serial["boundary_coefficient_words_per_cycle"]) + self.assertEqual(parallel["coefficient_streams_upper_bound"], + 4 * serial["coefficient_streams_upper_bound"]) + + def test_hierarchy_factors_compose_to_logical_unfolding(self): + factors = { + "lane": {"Ud": 4}, + "warp": {"Us": 2, "Ud": 2}, + "cta": {"Us": 4, "Ub": 2}, + } + self.assertTrue(validate_hierarchy_factors(8, 8, 2, factors)) + with self.assertRaisesRegex(ValueError, "do not match"): + validate_hierarchy_factors(4, 8, 2, factors) + + def test_each_factorized_dimension_has_its_own_two_axis_mapping(self): + point = derive_multidimensional_point( + 10, (4, 6), ({"Us": 2, "Ud": 4}, {"Us": 3, "Ud": 8})) + self.assertEqual(point["dimension_boundaries"], 1) + self.assertEqual(point["dimensions"][0]["Ts"], 2) + self.assertEqual(point["dimensions"][1]["Ts"], 2) + self.assertEqual(point["dimensions"][1]["Td"], 4) + + def test_runtime_backends_are_bound_to_architecture_families(self): + bindings = self.space["runtime_bindings"] + self.assertEqual(set(bindings["ntt_backends"]), + {"baseline", "tile256", "hybrid2d", "compact-stage", "stage-pipeline"}) + self.assertEqual(set(bindings["butterfly_backends"]), + {"temporal-tile", "hierarchical", "online-reorder", "warp-hybrid", "stage-pipeline", "cufft"}) + + def test_filtered_processing_layout_realization_product_is_enumerable(self): + choices = expand_design_choices(self.space, "fft", { + "operator_core": ["scalar-radix4", "cufftdx-block"], + "coefficient_form": ["native-table", "recurrence"], + "kernel_form": ["online-reorder"], + "threads_per_cta": [256], + }) + self.assertEqual(len(choices), 4) + self.assertEqual({point["kernel_form"] for point in choices}, {"online-reorder"}) + self.assertEqual({point["precision"] for point in choices}, {"fp32"}) + self.assertEqual({point["stage_group"] for point in choices}, {"radix4", "full-codelet"}) + self.assertTrue({ + "direction", "element_stride", "schedule", "coefficient_residence", + "elements_per_thread", "global_order", "bank_mapping", "pipeline_depth", + "selection_method", "candidate_status", "objective", + } <= set(choices[0])) + + def test_operator_projection_rejects_invalid_coefficient_choice(self): + with self.assertRaisesRegex(ValueError, "coefficient_form"): + expand_design_choices(self.space, "fwht", {"coefficient_form": ["native-table"]}) + + def test_core_precision_binding_rejects_invalid_cross_product(self): + with self.assertRaisesRegex(ValueError, "no legal choices"): + expand_design_choices(self.space, "fft", { + "operator_core": ["wmma-dft8"], "precision": ["fp64"]}) + + def test_every_declared_operator_core_has_a_legal_default_point(self): + for operator, projection in self.space["operator_projections"].items(): + for core in projection["cores"]: + with self.subTest(operator=operator, core=core): + points = expand_design_choices( + self.space, operator, {"operator_core": [core]}) + self.assertGreaterEqual(len(points), 1) + + def test_residence_changes_feedback_traffic_not_logical_factors(self): + shared = derive_architecture_point(self.space, "fft", 16, 8, 16, 8, "shared", "shared") + global_point = derive_architecture_point(self.space, "fft", 16, 8, 16, 8, "global", "global") + for field in ("Us", "Ts", "Ud", "Td", "ideal_body_cycles"): + self.assertEqual(shared[field], global_point[field]) + self.assertEqual(shared["stage_feedback_bytes_above_residence"], 0) + self.assertGreater(global_point["stage_feedback_bytes_above_residence"], 0) + + def test_invalid_fft_projection_is_rejected(self): + invalid = copy.deepcopy(self.fft) + invalid["axes"]["dimension"]["core"].append("unknown-core") + with self.assertRaisesRegex(ValueError, "core"): + validate_fft_projection(self.space, invalid) + + def test_incomplete_hierarchy_axis_is_rejected(self): + invalid = copy.deepcopy(self.space) + del invalid["objects"]["A_architecture"]["hierarchical_unfolding"] + with tempfile.TemporaryDirectory() as directory: + path = pathlib.Path(directory) / "invalid.json" + path.write_text(json.dumps(invalid)) + with self.assertRaisesRegex(ValueError, "hierarchical_unfolding"): + load_space(path) + + def test_unknown_runtime_family_is_rejected(self): + invalid = copy.deepcopy(self.space) + invalid["runtime_bindings"]["ntt_backends"]["invalid"] = "missing-family" + with tempfile.TemporaryDirectory() as directory: + path = pathlib.Path(directory) / "invalid.json" + path.write_text(json.dumps(invalid)) + with self.assertRaisesRegex(ValueError, "unknown families"): + load_space(path) + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/test_comprehensive_suite.py b/tests/test_comprehensive_suite.py new file mode 100644 index 0000000..dce227c --- /dev/null +++ b/tests/test_comprehensive_suite.py @@ -0,0 +1,117 @@ +#!/usr/bin/env python3 +import copy +import json +import pathlib +import sys +import tempfile +import unittest + + +ROOT = pathlib.Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT / "scripts")) + +from run_comprehensive_suite import build_command, load_manifest, ntt_prime, parse_csv_record, selected_cases +from summarize_comprehensive_suite import summarize + + +class ComprehensiveSuiteTest(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.path = ROOT / "config" / "v100_comprehensive_suite.json" + cls.document = load_manifest(cls.path) + + def test_manifest_has_quick_and_full_coverage(self): + quick = selected_cases(self.document, "quick", None) + full = selected_cases(self.document, "full", None) + self.assertGreaterEqual(len(quick), 20) + self.assertGreater(len(full), len(quick)) + self.assertEqual({case["operator"] for case in quick}, {"fft", "ntt", "fwht", "xor-zeta"}) + + def test_each_group_has_at_most_one_declared_reference(self): + groups = {} + for case in self.document["cases"]: + groups.setdefault(case["group"], []).append(case) + for group, cases in groups.items(): + with self.subTest(group=group): + self.assertLessEqual(sum(bool(case.get("reference")) for case in cases), 1) + semantics = {(case["operator"], case["precision"], case.get("direction", "forward"), case["logN"]) + for case in cases} + self.assertEqual(len(semantics), 1) + + def test_invalid_duplicate_case_is_rejected(self): + invalid = copy.deepcopy(self.document) + invalid["cases"].append(copy.deepcopy(invalid["cases"][0])) + with tempfile.TemporaryDirectory() as directory: + path = pathlib.Path(directory) / "invalid.json" + path.write_text(json.dumps(invalid)) + with self.assertRaisesRegex(ValueError, "unique"): + load_manifest(path) + + def test_mixed_semantic_group_is_rejected(self): + invalid = copy.deepcopy(self.document) + case = next(case for case in invalid["cases"] if case["id"] == "fft8_cub") + placement_index = case["args"].index("--placement") + 1 + case["args"][placement_index] = "out-of-place" + with tempfile.TemporaryDirectory() as directory: + path = pathlib.Path(directory) / "invalid.json" + path.write_text(json.dumps(invalid)) + with self.assertRaisesRegex(ValueError, "mixes semantic contracts"): + load_manifest(path) + + def test_ntt_prime_has_requested_contract(self): + value = ntt_prime(60, 20) + self.assertEqual(value.bit_length(), 60) + self.assertEqual(value % (1 << 20), 1) + + def test_command_builder_applies_protocol_and_layout(self): + case = next(case for case in self.document["cases"] if case["id"] == "fft8_stride_cub") + command = build_command(ROOT, self.document, case, self.document["protocols"]["full"], 17, False) + self.assertIn("--element-stride", command) + self.assertEqual(command[command.index("--element-stride") + 1], "2") + self.assertEqual(command[command.index("--batch") + 1], "17") + self.assertEqual(command[command.index("--repeat") + 1], "100") + + def test_csv_parser_ignores_non_csv_output(self): + output = "notice\ndevice,kernel_ms,correct\n\"V100\",0.125,1\n" + self.assertEqual(parse_csv_record(output)["kernel_ms"], "0.125") + + def test_summary_uses_declared_reference_and_group_fastest(self): + base = { + "suite_tier": "quick", "suite_runner": "butterfly", "trial": "1", + "performance_batch": "1", "preflight_correct": "1", "operator": "fft", + "precision": "fp32", "direction": "forward", "logN": "8", "N": "256", + } + rows = [ + {**base, "suite_case_id": "a", "suite_group": "with-ref", "implementation": "self", "reference": "0", "kernel_ms": "0.8"}, + {**base, "suite_case_id": "b", "suite_group": "with-ref", "implementation": "ref", "reference": "1", "kernel_ms": "1.0"}, + {**base, "suite_case_id": "c", "suite_group": "no-ref", "implementation": "fast", "reference": "0", "kernel_ms": "0.5"}, + {**base, "suite_case_id": "d", "suite_group": "no-ref", "implementation": "slow", "reference": "0", "kernel_ms": "1.0"}, + ] + summary = {row["case_id"]: row for row in summarize(rows)} + self.assertAlmostEqual(summary["a"]["throughput_vs_basis"], 1.25) + self.assertEqual(summary["a"]["performance_class"], "faster") + self.assertAlmostEqual(summary["a"]["million_transforms_s"], 0.00125) + self.assertAlmostEqual(summary["a"]["billion_points_s"], 0.00032) + self.assertAlmostEqual(summary["d"]["throughput_vs_basis"], 0.5) + self.assertEqual(summary["d"]["comparison_basis"], "group-fastest") + self.assertEqual(summary["d"]["stability_class"], "stable") + + def test_summary_reports_but_does_not_center_on_one_outlier(self): + rows = [] + for trial, kernel_ms in enumerate((1.0, 1.0, 1.01, 1.01, 1.20), 1): + rows.append({ + "suite_case_id": "outlier", "suite_group": "outlier-group", + "suite_tier": "full", "suite_runner": "butterfly", + "implementation": "self", "reference": "0", "trial": str(trial), + "performance_batch": "1", "preflight_correct": "1", "operator": "fwht", + "precision": "fp32", "direction": "forward", "logN": "8", "N": "256", + "kernel_ms": str(kernel_ms), + }) + result = summarize(rows)[0] + self.assertGreater(result["relative_range"], 0.1) + self.assertLess(result["central_relative_range"], 0.03) + self.assertEqual(result["stability_class"], "stable-with-outlier") + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/test_fft_design_space.py b/tests/test_fft_design_space.py new file mode 100644 index 0000000..b737247 --- /dev/null +++ b/tests/test_fft_design_space.py @@ -0,0 +1,95 @@ +#!/usr/bin/env python3 +import pathlib +import json +import sys +import tempfile +import unittest + + +ROOT = pathlib.Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT / "scripts")) + +from fft_design_space import classify_online_point, enumerate_online, load_codegen_points, load_space +from generate_fft_codegen import generate_dispatch, generate_header, load_selection + + +class FftDesignSpaceTest(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.space = load_space(ROOT / "config" / "fft_architecture_space.json") + cls.hardware = cls.space["hardware_profiles"]["v100-sm70"] + cls.compiled = load_codegen_points(ROOT / "config" / "v100_fft_codegen.json") + + def point(self, **overrides): + point = { + "prefix_log_n": 9, + "suffix_log_n": 9, + "prefix_threads": 256, + "suffix_threads": 256, + "prefix_ept": 8, + "suffix_ept": 8, + } + point.update(overrides) + return point + + def test_known_compiled_point_and_resources(self): + point = self.point() + status, reason = classify_online_point(point, self.hardware, self.compiled) + self.assertEqual((status, reason), ("compiled", "")) + self.assertEqual(point["prefix_units_per_cta"], 4) + self.assertEqual(point["suffix_units_per_cta"], 4) + self.assertEqual(point["prefix_tile_shared_bytes"], 16384) + + def test_selected_ept_is_compiled(self): + point = self.point(prefix_ept=4, prefix_threads=128) + status, reason = classify_online_point(point, self.hardware, self.compiled) + self.assertEqual((status, reason), ("compiled", "")) + + def test_large_dimension_requires_layout_kernel(self): + point = self.point(prefix_log_n=4, suffix_log_n=12, prefix_threads=128, + suffix_threads=512, suffix_ept=8) + status, reason = classify_online_point(point, self.hardware, self.compiled) + self.assertEqual(status, "requires-new-kernel") + self.assertEqual(reason, "large-dimension-layout") + + def test_invalid_coverage_is_hardware_infeasible(self): + point = self.point(prefix_threads=32, prefix_ept=4) + status, _ = classify_online_point(point, self.hardware, self.compiled) + self.assertEqual(status, "hardware-infeasible") + + def test_enumerator_contains_compiled_and_future_points(self): + rows = list(enumerate_online(self.space, "v100-sm70", [18], [256], [2, 4, 8], ["recurrence"], self.compiled)) + statuses = {row["status"] for row in rows} + self.assertIn("compiled", statuses) + self.assertIn("awaiting-codegen", statuses) + self.assertIn("requires-new-kernel", statuses) + + def test_codegen_selection_and_outputs(self): + target, log_ns, pairs = load_selection(ROOT / "config" / "v100_fft_codegen.json", self.space) + self.assertEqual(target, "v100-sm70") + self.assertIn((256, 16), pairs) + with tempfile.TemporaryDirectory() as directory: + directory = pathlib.Path(directory) + generate_header(directory / "config.cuh", target, log_ns, pairs) + generate_dispatch(directory / "dispatch.inc", target, pairs) + self.assertIn("threads == 256 && ept == 16", (directory / "config.cuh").read_text()) + self.assertIn("CUNTT_CUFFTDX_ONLINE_LAUNCH(256, 16)", (directory / "dispatch.inc").read_text()) + + def test_codegen_rejects_shared_memory_overflow(self): + invalid = { + "schema_version": 1, + "target": "v100-sm70", + "families": {"cufftdx-online": { + "dimension_log_n": [10], + "thread_ept_pairs": [[1024, 16]], + }}, + } + with tempfile.TemporaryDirectory() as directory: + path = pathlib.Path(directory) / "invalid.json" + path.write_text(json.dumps(invalid)) + with self.assertRaisesRegex(ValueError, "shared memory"): + load_selection(path, self.space) + + +if __name__ == "__main__": + unittest.main() From b0aa7ebe388336fd7cdf616d50dbf7cf64003991 Mon Sep 17 00:00:00 2001 From: TruNcat3 <31944766+TruNcat3@users.noreply.github.com> Date: Fri, 24 Jul 2026 12:56:03 +0800 Subject: [PATCH 2/2] Prepare v0.2.0 release --- CHANGELOG.md | 39 +++++++++++++++++++++++++++++++++++++++ CITATION.cff | 4 ++-- CMakeLists.txt | 2 +- README.md | 5 +++-- 4 files changed, 45 insertions(+), 5 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..69dcd58 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,39 @@ +# Changelog + +All notable repository and research-artifact changes are recorded here. + +## 0.2.0 - 2026-07-24 + +### Added + +- Operator-independent butterfly and FFT architecture-space specifications, + validation, exploration, and generated-code selection tools. +- Optional cuFFTDx, TurboFFT, and VkFFT integration boundaries. +- A controlled 37-case V100 comprehensive suite with correctness preflight, + randomized trials, stability classification, raw records, and detailed + length/batch tables. +- FFT architecture sweeps, processing-unit comparisons, and resident-kernel + Nsight Compute evidence. + +### Changed + +- Extended FFT, FWHT, NTT, and XOR-zeta configuration and capability coverage. +- Updated the architecture, hardware-mapping, processing-unit, experiment, and + reproducibility documentation to distinguish fresh comprehensive results + from focused historical protocols. +- Defined the next phase as an orthogonal length/batch scan, refreshed external + baselines, and targeted profiling of long FP32 and FP64 FFT gaps. + +### Current Evidence Boundary + +- V100 remains the only comprehensively measured GPU. +- Measured FP32 FFT reaches cuFFT parity at selected lengths, while FP32 + `logN=20` and FP64 `logN=16` remain open performance gaps. +- Dao-AILab FHT and GPU-NTT results were not rerun under the comprehensive + protocol and remain contextual evidence. + +## 0.1.0 - 2026-07-23 + +- Initial public cuButterfly research artifact with the common space-time + mapping model, NTT/FFT/FWHT/XOR-zeta kernels, V100 measurements, and + reproducibility documentation. diff --git a/CITATION.cff b/CITATION.cff index 9fee8e2..940c848 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -6,8 +6,8 @@ authors: - name: "TruNcat3" repository-code: "https://github.com/TruNcat3/cuButterfly" url: "https://github.com/TruNcat3/cuButterfly" -version: 0.1.0 -date-released: 2026-07-23 +version: 0.2.0 +date-released: 2026-07-24 keywords: - butterfly computation - GPU diff --git a/CMakeLists.txt b/CMakeLists.txt index 0e5970d..f8397de 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ if(NOT DEFINED CMAKE_CUDA_ARCHITECTURES) set(CMAKE_CUDA_ARCHITECTURES 70 CACHE STRING "CUDA architectures to compile for") endif() -project(cuButterfly VERSION 0.1.0 LANGUAGES CXX CUDA) +project(cuButterfly VERSION 0.2.0 LANGUAGES CXX CUDA) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/README.md b/README.md index ef1d82c..3f1472b 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![Release](https://img.shields.io/github/v/release/TruNcat3/cuButterfly)](https://github.com/TruNcat3/cuButterfly/releases/latest) [![License](https://img.shields.io/badge/license-BSD--3--Clause-blue.svg)](LICENSE) -cuButterfly is a CUDA research prototype that generalizes the +cuButterfly is a CUDA research prototype that generalizes the space-time parallel paradigm from NTT to regular layered transforms. It keeps the architecture-level mapping independent of the local arithmetic core, so FFT, NTT, FWHT, and XOR-zeta can share one mapping vocabulary while selecting @@ -174,6 +174,7 @@ units and future implementation paths are catalogued in [Candidate Implementations](docs/implementation_candidates.md). Development priorities are tracked in [`ROADMAP.md`](ROADMAP.md), and evidence requirements for contributions are in [`CONTRIBUTING.md`](CONTRIBUTING.md). +Versioned changes are recorded in [`CHANGELOG.md`](CHANGELOG.md). ## Evidence Boundary @@ -203,7 +204,7 @@ software release as: author = {TruNcat3}, title = {cuButterfly: Hardware-Mapped Space-Time Parallelism for Butterfly Computations on GPUs}, year = {2026}, - version = {0.1.0}, + version = {0.2.0}, url = {https://github.com/TruNcat3/cuButterfly} } ```