Skip to main content
. 2020 Nov 6;20(21):6335. doi: 10.3390/s20216335
Algorithm 1 FCM algorithm in GPU.
  • 1:

    init_u<<<bl,th>>>(states,fuzzy_u,clusters,rows);

  • 2:

    forstep=1;i<MAX_STEPS;i=i+1do

  • 3:

    cublasDgemm_configurationu(fuzzy_u,mf,vector_u_transform,clusters,rows,columns);

  • 4:

    numerator_Centroidi<<<bl,th>>>(numerator,mf,columns,rows,clusters)

  • 5:

    determinator_Centroidi<<<bl,th>>>(denominator,vector_u_transform,columns,rows,clusters)

  • 6:

    obtain_centers<<<bl,th>>>(center,numerator,denominator,mf,clusters,rows,columns)

  • 7:

    distance_matrix<<<bl,th>>>(distance,center,datamatrix,rows,columns)

  • 8:

    Error_stepi=thrust::reduce(mf);

  • 9:

    if (Error_stepiError_step_(i1))<error then

  • 10:

      break;

  • 11:

    end if

  • 12:

    new_u_for_next_iteration<<<bl,th>>>(fuzzy_u,distance,rows,columns,clusters);

  • 13:

    end for

  • 14:

    cudaMemcpy (u_host,fuzzy_u,clusterrowssizeof(FLOAT), cudaMemcpyDeviceToHost);